本文主要是介绍spring-dao.xml+mybatis.-config.xml,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1. resources 下数据库配置文件database.properties
jdbc.driver=com.mysql.cj.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/ssm?useSSL=false&serverTimezone=Asia/Shanghai
&zeroDateTimeBehavior=CONVERT_TO_NULL
&useUnicode=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=truejdbc.username=root
jdbc.password=root
resources下的spring-dao.xml
1.bean约束
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsd">
2.标题关联配置文件
<context:property-placeholder location="classpath:database.properties"/>
3. 从连接池获取数据源
不同的数据源的属性会有细微差别比如驱动名driverClassName driverClass
下面两个都不同
spring自带jdbc数据源
<!--配置数据源:数据源有非常多,可以使用第三方的,也可使使用Spring的-->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"><property name="driverClassName" value="${jdbc.driver}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/>
</bean>
c3p0连接池
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><!-- 配置连接池属性 --><property name="driverClass" value="${jdbc.driver}"/><property name="jdbcUrl" value="${jdbc.url}"/><property name="user" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/></bean>
4.配置SqlSessionFactoryBean对象
<!--配置SqlSessionFactory-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><property name="dataSource" ref="dataSource"/><!--关联Mybatis--><property name="configLocation" value="classpath:mybatis-config.xml"/><property name="mapperLocations" value="classpath:com/kuang/dao/*.xml"/>
</bean>
5.配置扫描Dao接口包,动态实现Dao接口注入到spring容器中
帮助同时生成sqlsessionTemplate和注入mapper接口的实现类
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><!-- 注入sqlSessionFactory --><property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/><!-- 给出需要扫描Dao接口包 --><property name="basePackage" value="com.kuang.mapper"/></bean>
用于批量处理的sqlsessionTemplate
其中Batch就代表批量
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"></constructor-arg>
<constructor-arg name="executorType" value="BATCH"></constructor-arg></bean>
通过sqlsession.getMapper()获得的mapper是能进行批量操作的 尽管我们已经通过扫描器在ioc容器中生成了mapper接口的mapper对象 但是这个mapper不能进行批量操作 我们通过再从ioc中取出sqlseesion可以批量
UUID
事物
- 配置事务管理器 它能操控数据源 用于开启关闭提交回滚等
- 配置切面aop 选择事物要切入的切入点
- 配置增强的通知
解释:aop负责切入点 ----> 通知adivice负责关联事务管理器
设置都哪些方法需要事物管理 比如切入点
中以delete update insert find get select等开始命名的方法都是事物方法 我们可以进行增强
<!-- 对mybatis操作数据事务控制,具体的Ref看你用什么数据库连接池 --><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><!-- 数据源dataSource在spring-mybatis.xml中配置了 --><property name="dataSource" ref="dataSource"/></bean><aop:config><aop:advisor advice-ref="txAdvice" pointcut="execution(* com.liuyanzhao.ssm.blog.service.impl.*.*(..))"/></aop:config><!-- 通知 --><tx:advice id="txAdvice" transaction-manager="transactionManager"><tx:attributes><tx:method name="save*" propagation="REQUIRED"/><tx:method name="delete*" propagation="REQUIRED"/><tx:method name="update*" propagation="REQUIRED"/><tx:method name="insert*" propagation="REQUIRED"/><tx:method name="find*" propagation="SUPPORTS" read-only="true"/><tx:method name="get*" propagation="SUPPORTS" read-only="true"/><tx:method name="select*" propagation="SUPPORTS" read-only="true"/></tx:attributes></tx:advice>
resources下的mybatis-config.xml
全局设置+别名
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><!-- 全局配置 --><settings><!--允许 JDBC 支持自动生成主键--><setting name="useGeneratedKeys" value="false"/><!--是否开启自动驼峰命名规则(camel case)映射,即从经典数据库列名 A_COLUMN 到经典Java 属性名 aColumn 的类似映射。 --><setting name="mapUnderscoreToCamelCase" value="true"/><setting name="logImpl" value="STDOUT_LOGGING"/></settings><typeAliases><package name="com.kuang.pojo"></package></typeAliases>
</configuration>
mapper.xml的约束
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.kuang.mapper.BooksMapper"><select id="selectAll" resultType="Books">select * from ssm.book</select>
</mapper>
这篇关于spring-dao.xml+mybatis.-config.xml的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!