声明:这个项目搭建只是个人一时兴起,对于一些文件的位置,没有过多的注意是否放在标准的位置(人和代码有一个会跑就行)。
所以这个项目搭建,我就直接上代码了,不会作过多的讲解,对于mybatis的配置文件和工具类后面有时间会系统的讲解。
第一步:搭建一个web工程(idea根据自己的版本来,有些是按照maven的步骤来)第二步导入依赖
pom.xml
第三步,创建各种包和配置文件junit junit3.8.1 test mysql mysql-connector-java8.0.29 javax.servlet javax.servlet-api4.0.1 provided org.mybatis mybatis3.5.4 org.projectlombok lombok1.18.24 jstl jstl1.2 javax.servlet.jsp jsp-api2.2
userServlet类
@WebServlet("/toUserList") public class userServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); response.setContentType("text/html; charset=UTF-8"); PrintWriter out = response.getWriter(); IUserService iUserService=new UserService(); ListuserList = iUserService.findUserAll(); //方便控制台查看返回数据 for (User user : userList) { System.out.println(user); } request.setAttribute("userlist", userList); //转发 request.getRequestDispatcher("hello.jsp").forward(request, response); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
userMapper类
public interface UserMapper { ListselectList(); }
User实体类
@Data @AllArgsConstructor @NoArgsConstructor public class User { private Integer id; private String username; private String password; private Integer status; }
UserService类
public class UserService implements IUserService { @Override public ListfindUserAll() throws IOException { //第一步 SqlSession sqlSession = MyBatisUtils.getSqlSession(); //第二步骤:获取调用类对象 UserMapper mapper = sqlSession.getMapper(UserMapper.class); //第三步:直接开始调用 return mapper.selectList(); } }
IUserService接口
public interface IUserService { ListfindUserAll() throws IOException; }
MyBatisUtils工具类
public class MyBatisUtils { private static Reader resourceAsReader; private static SqlSessionFactory build; private static ThreadLocalsqlSessionThreadLocal; static { try { resourceAsReader = Resources.getResourceAsReader("mybatis.xml"); build = new SqlSessionFactoryBuilder().build(resourceAsReader); sqlSessionThreadLocal=new ThreadLocal (); } catch (IOException e) { e.printStackTrace(); } } public static SqlSession getSqlSession() throws IOException { SqlSession sqlSession1 = sqlSessionThreadLocal.get(); if(null!=sqlSession1){ return sqlSession1; } //程序执行到这里 说明不是一个sqlsession对象 //打开了我们的会话 操作数据库 SqlSession sqlSession = build.openSession(); sqlSessionThreadLocal.set(sqlSession); return sqlSession; } public static void close(){ SqlSession sqlSession = sqlSessionThreadLocal.get(); if(null!=sqlSession){ sqlSession.commit(); sqlSession.close(); sqlSessionThreadLocal.remove(); } } }
UserMapper.xml
mybatis.xml
hello.jsp
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" %>添加用户
序号 | 姓名 | 密码 | 操作 |
${user.id} | ${user.username} | ${user.password} | 删除修改 |
index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
数据库:
效果:
以上就是servlet整合mybatis的web项目搭建的过程,我这里只不过实现了简单的查询功能,其他的业务逻辑,哪位有兴趣就去写吧