spring(二) MY batis的核心配置 1

1.Mybatis的核心对象
使用MyBatis框架时,主要涉及两个核心对象:SqlSessionFactory和SqlSession。

1.1.1 SqlSessionFactory
S
通过XML配置文件构建出的SqlSessionFactory实例现代码如下:

InputStream inputStream = Resources.getResourceAsStream("配置文件位置");
SqlSessionFactory sqlSessionFactory = 
                              new SqlSessionFactoryBuilder().build(inputStream);

1.1.2 SqlSession
SqlSession是MyBatis框架中另一个重要的对象,它是应用程序与持久层之间执行交互操作的一个单线程对象,其主要作用是执行持久化操作。
每一个线程都应该有一个自己的SqlSession实例,并且该实例是不能被共享的。同时,SqlSession实例也是线程不安全的,因此其使用范围最好在一次请求或一个方法中,
绝不能将其放在一个类的静态字段、实例字段或任何类型的管理范围(如Servlet的HttpSession)中使用。
使用完SqlSession对象后要及时关闭,通常可以将其放在finally块中关闭。

SqlSession sqlSession = sqlSessionFactory.openSession();
try {
       // 此处执行持久化操作
} finally {
      sqlSession.close();
}

SqlSession 中常用的方法
查询方法:

T selectOne(String statement);参数statement是在配置文件中定义的 元素的id。使用该方法会返回查询结果的一条泛型对象。

**<T>** T selectOne(String statement, Object parameter);参数statement是在配置文件中定义的 元素的id,parameter是查询所需的参数。使用该方法会返回查询结果的一条泛型对象。

List<E> selectList(String statement);参数statement是在配置文件中定义的 元素的id。使用该方法,会返回查询结果的泛型对象的集合。

<E> List<E> selectList(String statement, Object parameter);参数statement是在配置文件中定义的 元素的id,parameter是查询所需的参数。使用该方法,会返回查询结果的泛型对象的集合。

<E> List<E> selectList(String statement, Object parameter, RowBounds rowBounds);参数statement是在配置文件中定义的 元素的id,parameter是查询所需的参数,rowBounds是用于分页的参数对象。
使用该方法,会返回查询结果的泛型对象的集合。

void select(String statement, Object parameter, ResultHandler handler);参数statement是在配置文件中定义的 元素的id,parameter是查询所需的参数,ResultHandler 是用于处理查询返回的复杂结果集,通常用于多表查询。

插入、更新和删除方法:

int insert(String statement);参数statement是在配置文件中定义的

int insert(String statement, Object parameter);参数statement是在配置文件中定义的 元素的id,parameter是插入所需要参数。返回SQL语句所影响的行数。

int update(String statement);参数statement是在配置文件中定义的

int update(String statement, Object parameter);参数statement是在配置文件中定义的 元素的id,parameter是更新所需要的参数。返回SQL语句所影响的行数。

int delete(String statement);参数statement是在配置文件中定义的 元素的id,返回SQL语句所影响的行数。

int delete(String statement, Object parameter);参数statement是在配置文件中定义的 元素的id,parameter是删除所需要的参数。返回SQL语句所影响的行数。

其他方法:

void commit(); 提交事务的方法。

void rollback(); 回滚事务的方法。

<T> T getMapper(Class<T> type); 返回Mapper接口的代理对象。

Connection getConnection(); 获取JDBC数据库连接对象的方法。

2.配置文件
*在MyBatis框架的核心配置文件中,元素是配置文件的根元素,其他元素都要在元素内配置。MyBatis配置文件中的主要元素如下图所示:

2.1.1 元素
是一个配置属性的元素,该元素通常用来将内部的配置外在化,即通过外部的配置来动态的替换内部定义的属性。
例如,数据库的连接等属性,就可以通过典型的Java属性文件中的配置来替换,具体方式如下:
1.编写db.properties

jdbc.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbc.url=jdbc:sqlserver://1localhost:1433;DatabaseName=mybatis
jdbc.username=sa
jdbc.password=123456

2.配置属性

<properties resource="db.properties" />

3.修改配置文件中数据库连接的信息

<

dataSource type="POOLED">
    <!-- 数据库驱动 -->
    <property name="driver" value="${jdbc.driver}" />
    <!-- 连接数据库的url -->
    <property name="url" value="${jdbc.url}" />
    <!-- 连接数据库的用户名 -->
    <property name="username" value="${jdbc.username}" />
    <!-- 连接数据库的密码 -->
    <property name="password" value="${jdbc.password}" />
</dataSource>

2.1.2 元素
元素主要用于改变MyBatis运行时的行为,例如开启二级缓存、开启延迟加载等。这些配置只需要了解,有很多就不列出来了。

2.1.3 元素
元素用于为配置文件中的Java类型设置一个简短的名字,即设置别名。别名的设置与XML配置相关,其使用的意义在于减少全限定类名的冗余。

2.1.4 元素
typeHandler的作用就是将预处理语句中传入的参数从javaType(Java类型)转换为jdbcType(JDBC类型),或者从数据库取出结果时将jdbcType转换为javaType。
元素可以在配置文件中注册自定义的类型处理器,它的使用方式有两种。
1.注册一个类的类型处理器

 <typeHandlers> 
      <typeHandler handler="com.itheima.type.CustomtypeHandler" />
 </typeHandlers>

2.注册一个包中所有的类型处理器

 <typeHandlers> 
      <package name="com.itheima.type" />
 </typeHandlers>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值