MyBatis HelloWorld
1 HelloWorld简单版
创建一张测试表创建对应的javaBean创建mybatis配置文件,sql映射文件测试
MyBatis操作数据库
1、创建MyBatis全局配置文件
MyBatis 的全局配置文件包含了影响 MyBatis 行为甚深的设置(settings)和属性(properties)信息、如数据库连接池信息等。指导着MyBatis进行工作。我们可以参照官方文件的配置示例。
2、创建SQL映射文件
映射文件的作用就相当于是定义Dao接口的实现类如何工作。这也是我们使用MyBatis时编写的最多的文件。
测试
根据全局配置文件,利用SqlSessionFactoryBuilder创建SqlSessionFactory
String resource
= "mybatis-config.xml";
InputStream inputStream
= Resources
.getResourceAsStream(resource
);
SqlSessionFactory factory
= new SqlSessionFactoryBuilder().build(inputStream
);
使用SqlSessionFactory获取sqlSession对象。一个SqlSession对象代表和数据库的一次会话
SqlSession openSession
= factory
.opSession();
使用SqlSession根据方法id进行操作
SqlSession openSession
= factory
.openSession();
try {
Object one
= openSession
.selectOne("com.atguigu.mybatis.dao.EmployeeMapper.getEmpById", 1);
System
.out
.println(one
);
} finally {
openSession
.close();
}
2 HelloWorld-接口式编程
创建一个Dao接口修改Mapper文件测试
使用SqlSession获取映射器进行操作
SqlSession openSession
= factory
.openSession();
try {
EmployeeMapper mapper
= openSession
.getMapper(EmployeeMapper
.class);
Employee empById
= mapper
.getEmpById(1);
System
.out
.println(empById
);
} finally {
openSession
.close();
}
SqlSession
SqlSession 的实例不是线程安全的,因此是不能被共享的。SqlSession每次使用完成后需要正确关闭,这个关闭操作是必须的SqlSession可以直接调用方法的id进行数据库操作,但是我们一般还是推荐使用SqlSession获取到Dao接口的代理类,执行代理对象的方法,可以更安全的进行类型检查操作
总结
接口式编程 原生: Dao ====> DaoImpl mybatis: Mapper ====> xxMapper.xmlSqlSession代表和数据库的一次会话;用完必须关闭;SqlSession和connection一样她都是非线程安全。每次使用都应该去获取新的对象。mapper接口没有实现类,但是mybatis会为这个接口生成一个代理对象。 (将接口和xml进行绑定)EmployeeMapper empMapper = sqlSession.getMapper(EmployeeMapper.class);两个重要的配置文件: mybatis的全局配置文件:包含数据库连接池信息,事务管理器信息等…系统运行环境信息 sql映射文件:保存了每一个sql语句的映射信息: 将sql抽取出来。