使用mybatis与Servlet中doget用法的结合使用
首先创建User类与tb_user的表
package com.pojo;
public class User {
private Integer id;
private String username;
private String password;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", password='" + password + '\'' +
'}';
}
}
登录
package com.web;
import com.mapper.UserMapper;
import com.pojo.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
@WebServlet("/loginServlet")//配置访问路径
public class LoginServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
//1.接受用户名与密码
String username=request.getParameter("username");
String password=request.getParameter("password");
//2.调用mabatis完成查询
String resource="mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream("resource");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
//调用select语句
User user=userMapper.select(username,password);
//释放资源
sqlSession.close();
//response响应字符数据
response.setContentType("text/html;charset=utf-8");
PrintWriter writer=response.getWriter();
//3.判断user释放为null
if(user !=null) {
//登录成功
writer.write("登陆成功");
}else{
writer.write("登陆失败");
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
this.doGet(request,response);
}
}
注册
package com.web;
import com.mapper.UserMapper;
import com.pojo.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
@WebServlet("/registerServlet")
public class RegisterServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//1.接受用户数据
String username=request.getParameter("username");
String password=request.getParameter("password");
//封装用户对象
User user=new User();
user.setUsername(username);
user.setPassword(password);
//调用mapper,根据用户名查询对象
String resource="mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream("resource");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
//调用方法
User u=userMapper.selectByUsername(username);
//判断用户对象是否为null
if(u==null)
{
//说明用户名不存在,添加要用户名
userMapper.add(user);
//提交事务
sqlSession.commit();
sqlSession.close();
}else{
//用户存在,不添加
response.setContentType("text/html;charset=utf-8");
response.getWriter().write("用户已存在");
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{
this.doGet(request,response);
}
}
对应的UserMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mapper.UserMapper">
<select id="select" resultType="com.pojo.User"></select>
<insert id="add"></insert>
</mapper>
对应的接口
package com.mapper;
import com.pojo.User;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
public interface UserMapper {
//查询用户
@Select("select * from tb_user where username=#{username} and password =#{password}")
User select(@Param("username") String username,@Param("password") String password);
@Select("select * from tb_user where username=#{username}")
User selectByUsername(String username);
//因为只有一个参数,所以不需要加一个@Param注解
@Insert("insert into tb_user values(null,#{username},#{password})")
//因为主键id是自动增长的,所以设为null
void add(User user);
}