MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级 映射。 MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。 MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象) 映射成数据库中的记录。mybatis执行过程
1.根据全局配置文件(mybatis-config.xml)创建SqlSessionFactory对象
String resource = "MyBatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory =new SqlSessionFactoryBuilder().build(inputStream);
2.创建sql映射文件.xml、查询返回结果对应的JavaBean
sql映射文件,在该文件里写sql语句,配置查询返回的结果如何
与自己写的JavaBean对应起来
select from where 属性= #{ }
该文件要在全局配置文件中注册,初始化时要用。
3.通过sqlSessionFactory 获得sqlSession对象
SqlSession sqlSession = sqlSessionFactory.openSession(); sqlSession有一些方法,调用时传入参数,这些参数与第二步中配置的sql语句 综合得出完整的sql语句执行,将结果封装为对应的JavaBean. //获得sqlSession就可以用它去执行sql. 用完要关闭。接口式编程(重点掌握)
流程:
1.创建一个接口,接口中创建一些抽象方法。sql语句的查询结果对应这些
方法的返回类型。
2.sql映射文件中的namespace改为接口全类名,sql语句标签
select、update等的id改为接口中的方法名字,sql语句就可以用#{}取
方法的形参。
3.不再通过sqlession对象的方法直接执行sql语句,而是调用他的
getMapper(接口名.class)返回一个代理对象mapper,通过mapper
直接调用接口中的方法来执行sql语句。
@Test
public void test2() throws IOException {
//1.获取sqlSessionFactory
InputStream resourceAsStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(resourceAsStream);
//2.获取sqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
//获取接口的实现类对象
//会为接口自动的创建一个代理对象,代理对象去执行增删改查方法
EmployeeMapperDap mapper = sqlSession.getMapper(EmployeeMapperDap.class);
try {
Employee empById = mapper.getEmpById(1);
System.out.println(mapper.getClass());
System.out.println(empById);
}finally {
sqlSession.close();
}
}
}



