一次Mybatis的尝试


今天聊一聊Mybatis的使用吧
描述一下我是用mybatis的步骤吧

  1. 引入mybatis的jar包
  
       org.mybatis
       mybatis
       3.4.5
 
  1. 数据源特性文件--datasource.properties
  driver=com.mysql.cj.jdbc.Driver
  url=jdbc:mysql://localhost:3306/user?characterEncoding=utf-8&serverTimezone=Asia/Shanghai
  username=root
  password=123456
  1. 框架配置文件--mybatis.xml
  <?xml version="1.0" encoding="UTF-8"?>
  
  
	
	


	
	
		
			
			
			
				
				
				
				
				
			
		
	
	
	
		
	
	
  
  1. 映射接口文件--UserMapper
  import org.apache.ibatis.annotations.Insert;
  import org.apache.ibatis.annotations.Param;
  import org.apache.ibatis.annotations.Select;

  import entity.User;

  public interface UserMapper {
	//根据用户名及密码查找(包含多个参数的查询,必须使用@param注解参数),应用于用户根据用户名及密码的登录
	@Select("select * from userlist where name=#{un} and password=#{pwd}") 
	public User getUserByUsernameAndPassword(@Param("un") String un, @Param("pwd") String pwd);
	
	//下面的增加——删除——修改,均不需要注解参数
	@Insert("insert ignore into userlist(name,password) values(#{name},#{password})")
	//关键字ignore:忽略主键重复
	public int addUser(User user);
  }
  1. 封装MyBatis工具类MyBatisUtil
    /*
   * MyBatis工具类MyBatisUtil
   * 获取访问数据库的会话对象
   * 使用方法:MyBatisUtil.getSqlSession()
   */

  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 java.io.IOException;
  import java.io.InputStream;

  public class MyBatisUtil {
	private static SqlSessionFactory factory;
	static {
		try {
			//加载Mybatis配置、获取资源流
			InputStream is = Resources.getResourceAsStream("mybatis/mybatis.xml");
			//构建会话工厂(连接池)
			factory = new SqlSessionFactoryBuilder().build(is);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	public static SqlSession getSqlSession() {
		//返回访问数据库的会话对象
		return factory.openSession();
	}
	public static void closeSqlSession(SqlSession session) {
		if (null != session)
			session.close();
	}
  }
  1. 在Servlet(Controller层)中使用Dao层方法,Dao层(会使用到工具类MyBatisUtil)调用映射接口文件(Mapper)的方法