Javaweb学习笔记(MyBatis的核心配置)
MyBatis的核心对象
SqlSessionFactory
SqlSessionFactory是单个数据库映射关系经过编译后的内存镜像,主要功能是创建SqlSession。SqlSessionFactory对象的实例可以通过SqlSessionFactoryBuilder对象来创建,而SqlSessionFactoryBuilder则可以通过XML配置文件或预先定义好的Configuration实例构建出SqlSessionFactory实例。
SqlSessionFactory是线程安全的,一旦被创建,在整个应用执行期间都会存在,通常每一个数据库都会只对应一个SqlSessionFactory,所以在构建SqlSession实例时建议使用单列模式
SqlSession
SqlSession是应用程序与持久层之间执行操作的一个单线程对象,主要功能是执行持久化操作,每一个线程都有自己的SqlSession实例,并且该实例时不能被共享的,SqlSession实例也是线程不安全的因此在其使用范围最好在一次请求或一个方法中决不能将其放在一个类的静态字段、实例字段或任何类型的管理范围。实例代码:
SqlSession sqlSession=sqlSessionFactory.openSession();
try{
//此处执行持久化操作
}finally{
sqlSession.close();
}
SqlSession包含了很多方法常用方法为:
1.< T>T selectOne(String statement):
查询方法,参数statement是在配置文件中定义的< select>元素的id,执行该方法会返回SQL语句查询结果der一条泛型对象
2.< T>T selectOne(String statement,Object parameter):
查询方法,参数statement是在配置文件中定义的< select>元素的id 、parameter是查询所需的参数,使用该方法会返回执行SQL语句查询结果的一条泛型对象。
3.< E> List< E>selectList(String statement):
查询方法,参数statement是在配置文件中定义< select>的id,使用该方法,会返回执行SQL语句查询结果的泛型对象的集合。
4.< E>List< E> selectList(String statement,Object parameter):
查询方法。参数statement是在配置文件中定义的< select>元素的id,parameter是查询所需的参数,使用该方法会返回执行SQL语句查询结果的泛型对象的集合
5.< E>List < E> selectList(String statement,Object parameter,RowBounds rowBounds):
查询方法。参数statement是在配置文件中定义的< select>元素的id,parameter是查询所需的参数,rowBounds是用于分页的参数对象。使用该方法会返回执行SQL语句查询结果的泛型对象的集合
6.void select(String statement,Object parameter,ResultHandler handler);
查询方法。参数statement是在配置文件中定义的< select>元素的id,parameter是查询所需的参数,ResultHandler对象是用于处理查询返回的复杂结果集,通常用于多表查询
7.int insert(String statement)
插入方法,参数statement是在配置文件中定义的< insert>元素的id,使用该方法后悔返回执行SQL语句所影响的行数
8.int insert(String statement,Object parameter)
插入方法,参数statement是在配置文件中定义< insert>元素的id,parameter是插入所需的参数,使用该方法后会返执行SQL语句所影响的行数
9.int update(String statement)
更新方法,参数statement是在配置文件红定义的< update>元素的id,使用该方法后会返执行SQL语句所影响的行数
10.int delete(String statement)
删除方法,参数statement是在配置文件中定义的< delete>元素的id,使用该方法后会返回执行SQL语句所影响的行数
11.int delete(String statement,Object parameter)
删除方法,参数statement是在配置文件中定义的< delete>元素的id,parameter删除所需要的参数,使用该方法会返回执行SQL语句所影响的行数
12.void commit()
提交事务的方法
13.void rollback()
回滚事务的方法
14.void close()
关闭SqlSession对象
15.Connection getConnection();
获取JDBC数据库连接对象的方法
16.< T>T getMapper(Class< T> type)
该方法会返回Mapper接口的代理对象,该对象关联了SqlSession对象。
配置文件
主要元素
< properties>元素
< properties>元素是一个配置属性的元素,钙元素通常用于将内部的配置外在化,级通过外部的配置来动态的替换内部定义的属性。示例:
(1)在项目src目录下添加一个全名为db.properties的配置文件,编辑后代码为
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:33069mybatis
jdbc.username=root
jdbc.username=123456
(2)在MyBatis配置文件mybatis-config.xml中配置< properties…/>元素,具体如下:
<properties resource="db.properties"/>
(3