
声明:这个项目搭建只是个人一时兴起,对于一些文件的位置,没有过多的注意是否放在标准的位置(人和代码有一个会跑就行)。
所以这个项目搭建,我就直接上代码了,不会作过多的讲解,对于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();
List userList = 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 {
List selectList();
}
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 List findUserAll() throws IOException {
//第一步
SqlSession sqlSession = MyBatisUtils.getSqlSession();
//第二步骤:获取调用类对象
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
//第三步:直接开始调用
return mapper.selectList();
}
}
IUserService接口
public interface IUserService {
List findUserAll() throws IOException;
}
MyBatisUtils工具类
public class MyBatisUtils {
private static Reader resourceAsReader;
private static SqlSessionFactory build;
private static ThreadLocal sqlSessionThreadLocal;
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项目搭建的过程,我这里只不过实现了简单的查询功能,其他的业务逻辑,哪位有兴趣就去写吧