Spring MyBatis的核心配置

Spring MyBatis的介绍和一个基础案例可以参考

Spring MyBatis_m0_51457307的博客-CSDN博客什么是MyBatisMyBatis是当前主流的java持久层框架(对象持久化:是指将对象存储在可持久保存的存储介质上,例如主流的关系数据库中。)之一,与Hibernate一样,都是一种ORM框架(ORM:Object/Relational Mapping,即对象关系映射)。MyBatis(前身是iBatis)是一个支持普通SQL查询,存储过程和高级映射的持久层框架。MyBatis优点:性能优异,具有高度的灵活性,可优化性和易维护等特点。什么是ORM框架ORM是一种为了解决面向对象与关系型https://blog.csdn.net/m0_51457307/article/details/121595747接下来开始介绍MyBatis的核心配置。

SqlSessionFactory和SqlSession

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

SqlSessionFactory

SqlSessionFactory在MyBatis中的主要作用是创建SqlSession。而SqlSessionFactory对象的实例是通过SqlSessionFactoryBuilder对象来构建,SqlSessionFactoryBuilder则可以通过XML文件或者一个预先定义好的Configuration实例构建出SqlSessionFactory的实例。

通过XML文件构建SqlSessionFactory的代码如下:

//读取配置文件
InputStream inputStream  = Resources.getResourceAsStream("配置文件位置");
//根据配置文件构建SqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

SqlSessionFactory对象是线程安全的,一旦被创建,在整个应用执行期间都会存在,如果我们多次的创建同一个数据库的SqlSessionFactory,那么数据库的资源将很快被耗尽,为了解决此问题,通常每一个数据库都只对应一个SqlSessionFactory。

SqlSession

SqlSession是应用层与持久层之间执行交互操作的一个单线程对象,作用是执行持久化操作。它包含了数据库中所有执行sql操作的方法,因为它底层封装了jdbc,所以可以直接用SqlSession实例来执行已经映射的sql语句。

每一个线程都应该有一个自己的SqlSession实例,并且实例是不能被共享的。

SqlSession是线程不安全的,他的使用范围最好在一次请求或者一个方法中,使用完之后应将及时关闭,通常放在finally块中关闭。代码如下:

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

SqlSession对象中包含的常用方法:

【mybatis-SqlSession的方法总结】 - ProSayJ - 博客园 (cnblogs.com)

MyBatis配置文件中主要元素

 <properties>是一个配置属性的元素,通常用于将内部的配置外在化,意思就是通过外部的配置来动态的替换内部定义的属性。

一般用于数据库连接,在相同路径下创建一个db.properties的配置文件,编辑数据库的相关信息

jdbc.driver = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://localhost:3306/mybatis
jdbc.username = root
jdbc.password = 123456

然后在MyBatis配置文件中就可以通过该标签配置获得数据库的属性

<properties resource="db.properties"></properties>
<dataSource type="POOLED">
 	<property name="driver" value="${jdbc.driver}"/>
 	<property name="url" value="${jdbc.url}"/>
 	<property name="username" value="${jdbc.username}"/>
 	<property name="password" value="${jdbc.password}"/>
</dataSource>

<settings>元素用于改变MyBatis运行时的行为,例如开启二级缓存、开启延迟加载等。

<typeHandler>元素作用是将预处理语句中传入的参数从javaType(java类型)转换为jdbcType(jdbc类型),或者反之。

<environments>元素用于对环境进行配置。MyBatis环境配置实际上就是数据源的配置,可以通过该元素配置多种数据源,即配置多种数据库。

<!-- 配置环境,默认的环境id为mysql -->
 	<environments default="mysql">
 		<!-- 配置id为mysql的数据库环境 -->
 		<environment id="mysql">
 			<transactionManager type="JDBC"></transactionManager>
 			<dataSource type="POOLED">
 				<property name="driver" value="${jdbc.driver}"/>
 				<property name="url" value="${jdbc.url}"/>
 				<property name="username" value="${jdbc.username}"/>
 				<property name="password" value="${jdbc.password}"/>
 			</dataSource>
 		</environment>
 	</environments>

其中dataSource的type属性用于指定哪一种数据源,myBatis框架提供了UNPOOLED、POOLED、JNDI三种数据源类型。

三种数据源的区别:

Mybatis中的三类数据源 UNPOOLED、POOLED 和 JNDI 的区别 - 寻梦君 - 博客园

<mappers>元素,用于指定MyBatis映射文件的位置,一般有四种方法引入映射器文件

1、使用类路径引入

<mappers>
 		<mapper resource="类的全路径"/>
</mappers>

2、使用本地文件路径引入

<mappers>
 		<mapper url="file:///本地文件的全路径" />
</mappers>

3、使用接口类引入

<mappers>
 		<mapper calss="接口类的类路径" />
</mappers>

4、使用包名引入

<mappers>
         <package name="包名"/>
</mappers>

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
SpringMyBatis是两个非常流行的Java开发框架,它们可以很好地结合使用。 首先,你需要在你的项目中引入SpringMyBatis的相关依赖。 对于Spring,你可以使用Maven或者Gradle来管理依赖。在你的项目的pom.xml(或者build.gradle)文件中,添加以下依赖: ```xml <!-- Spring核心依赖 --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.3.9</version> </dependency> <!-- SpringMyBatis的集成依赖 --> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>2.0.7</version> </dependency> ``` 接下来,你需要配置SpringMyBatis的相关配置文件。 首先是Spring配置文件(比如applicationContext.xml),你可以在其中配置Spring的上下文和其他相关的Bean。 ```xml <!-- 配置Spring的上下文 --> <context:annotation-config/> <context:component-scan base-package="com.example"/> <!-- 配置数据源 --> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mydatabase"/> <property name="username" value="root"/> <property name="password" value="password"/> </bean> <!-- 配置事务管理器 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean> <!-- 配置MyBatis的SqlSessionFactory --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"/> <property name="mapperLocations" value="classpath:mapper/*.xml"/> </bean> <!-- 扫描MyBatis的Mapper接口 --> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.example.mapper"/> </bean> ``` 在上面的配置中,你需要根据你的数据库设置正确的数据源和连接信息。 接下来是MyBatis配置文件(比如mybatis-config.xml),你可以在其中配置MyBatis的相关设置。 ```xml <configuration> <settings> <!-- 开启驼峰命名转换 --> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings> </configuration> ``` 在上面的配置中,我们开启了MyBatis的驼峰命名转换,这样可以方便地将数据库中的下划线命名转换为Java中的驼峰命名。 最后,你需要创建Mapper接口和对应的Mapper XML文件来定义SQL语句和映射关系。 这样,你就完成了SpringMyBatis配置。在你的代码中,你可以使用Spring的依赖注入来获取MyBatis的Mapper接口,并使用它来进行数据库操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值