SqlSessionFactory
SqlSessionFactory是单个数据库映射关系经过编译后的内存镜像。SqlSessionFactory一旦被创建,在应用执行期间一直存在,建议使用单例模式。SqlSessionFactory是创建SqlSession的工厂。
SqlSession openSession() 创建SqlSession对象
SqlSession
SqlSession是执行持久化操作的对象,类似于JDBC中的Connection。它是应用程序与持久存储层之间执行交互操作的一个单线程对象,也是MyBatis执行持久化操作的关键对象。SqlSession对象完全包含以数据库为背景的所有执行SQL操作的方法,它底层封装了JDBC连接,可以用SQLSession实例直接执行已映射的SQL语句。每个线程都有自己的SqlSession,SqlSession不能被共享,线程也不安全,使用完全之后需要关闭。
方法: 参数statement:在配置文件中定义的<insert />元素的id;
参数parameter:插入所需的参数,通常是对象或Map;
参数rowBounds:RowBounds对象用于分页,它的两个属性:offset指查询的当前页数,limit指当前页数显示多少条数据;
参数mapKey:返回数据的其中一个列名;
参数handler:ResultHandler对象用来处理查询返回的复杂结果集,通常用于多表查询;
int insert(String statement) 插入方法
int insert(String statement,Object parameter) 插入方法,返回执行sql语句影响的行数
int update(String statement) 更新方法,返回执行sql语句影响的行数
int update(String statement,Object parameter) 更新方法,返回执行sql语句影响的行数
int delete(String statement) 删除方法,返回执行sql语句影响的行数
int delete(String statement,Object parameter) 删除方法,返回执行sql语句影响的行数
<T> T selectOne(String statement) 查询方法,通常查询结果只有一条数据时才使用
<T> T selectOne(String statement,Object parameter) 查询方法,通常查询结果只有一条数据时才使用
<E> List<E> selectList(String statement) 查询方法,返回sql语句查询结果的泛型对象的集合
<E> List<E> selectList(String statement,Object parameter) 查询方法,返回sql语句查询结果的泛型对象的集合
<E> List<E> selectList(String statement,Object parameter,RowBounds rowBounds) 查询方法,返回sql语句查询结果的泛型对象的集合
<K,V> Map<K,V> selectMap(String statement,String mapKey) 查询方法,返回一个Map集合,key是参数mapKey,value是封装的对象
<K,V> Map<K,V> selectMap(String statement,Object parameter,String mapKey) 查询方法,返回一个Map集合,key是参数mapKey,value是封装的对象
<K,V> Map<K,V> selectMap(String statement,Object parameter,String mapKey,RowBounds rowBounds) 查询方法,返回一个Map集合,key是参数mapKey,value是封装的对象
void select(String statement,ResultHandler handler) 查询方法,通常用于多表查询
void select(String statement,Object parameter,ResultHandler handler) 查询方法,通常用于多表查询
void select(String statement,Object parameter,RowBounds rowBounds,ResultHandler handler)查询方法,通常用于多表查询
void commit() 提交事务
void rollback() 回滚事务
void close() 关闭SqlSession对象
Connection getConnection() 获得JDBC的数据库连接对象
<T> T getMapper(Class<T> type) 返回mapper接口的代理对象,该对象关联了SQLSession对象,开发者可以通过该方法直接调用方法操作数据库,参数type是Mapper的接口类型。