在Spring+Mybatis组合中使用事务,以及常见的xml文件

195 阅读1分钟

Mybatis+Spring配置

<?xml version='1.0' encoding='UTF-8' ?>
<!-- was: <?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:p="http://www.springframework.org/schema/p"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:context="http://www.springframework.org/schema/context"
	xsi:schemaLocation="http://www.springframework.org/schema/beans 
	   http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
       http://www.springframework.org/schema/aop 
       http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
       http://www.springframework.org/schema/tx 
       http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
       http://www.springframework.org/schema/context 
       http://www.springframework.org/schema/context/spring-context-4.0.xsd">
	<!--启用扫描机制,并指定扫描对应的包-->
	<context:annotation-config />
	<context:component-scan base-package="com.ssm.chapter13.*" />
	<!-- 数据库连接池 -->
	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
		<property name="driverClassName" value="com.mysql.jdbc.Driver" />
		<property name="url" value="jdbc:mysql://localhost:3306/chapter13"/>
		<property name="username" value="root" />
		<property name="password" value="123456" />
		<property name="maxActive" value="255" />
		<property name="maxIdle" value="5" />
		<property name="maxWait" value="10000" />
	</bean>

	<!-- 集成MyBatis -->
	<bean id="SqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		<property name="dataSource" ref="dataSource" />
         <!--指定MyBatis配置文件-->
		<property name="configLocation" value="classpath:/mybatis/mybatis-config.xml" />
	</bean>

	<!-- 事务管理器配置数据源事务 -->
	<bean id="transactionManager"
		class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource" />
	</bean>

	<!-- 使用注解定义事务 -->
	<tx:annotation-driven transaction-manager="transactionManager" />

	<!-- 采用自动扫描方式创建mapper bean -->
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
	   <property name="basePackage" value="com.ssm.chapter13" />
	   <property name="SqlSessionFactory" ref="SqlSessionFactory" />
	   <property name="annotationClass" value="org.springframework.stereotype.Repository" />
	</bean>
	
</beans>

定义log4j的文件

#Appender 生成器
#org.apache.log4j.ConsoleAppender(控制台)
#org.apache.log4j.FileAppender(文件)
#org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
#org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
#org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{6}:%L - %m%n

### direct messages to file hibernate.log ###
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=/Users/zycloud/Desktop/meeting_film/log4j/18mybaits_pattern.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

#org.apache.log4j.HTMLLayout(以HTML表格形式布局)
#org.apache.log4j.PatternLayout(可以灵活地指定布局模式)(推荐)
#org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)
#org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等信息)
log4j.appender.file2 = org.apache.log4j.FileAppender
log4j.appender.file2.File=/Users/zycloud/Desktop/meeting_film/log4j/mybatis.html
log4j.appender.file2.layout=org.apache.log4j.TTCCLayout
#log4j.appender.file2.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
### DEBUG、INFO、WARN、ERROR和FATAL
#日志级别+输出appender
log4j.rootLogger=debug ,file,stdout,file2

Mybatis文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!--properties 全局变量-->
    <properties resource="db.properties">
        <property name="driver" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://192.168.123.102:3306/guns_rest?useUnicode=true&amp;characterEncoding=utf-8"/>
    </properties>
    <typeAliases>
        <!--单个类型配置别名-->
        <!--<typeAlias type="com.cskaoyan.bean.Account" alias="accountz"/>-->
        <!--包目录下的全部类均配置别名,使用类名纯小写的形式即可-->
        <package name="com.cskaoyan.bean"/>
    </typeAliases>
<!--    <typeHandlers>-->
<!--        <typeHandler handler="com.cskaoyan.typehandler.String2StringArrayTypeHandler"/>-->
<!--        &lt;!&ndash;<typeHandler handler="com.cskaoyan.typehandler.String2UserDetailTypeHandler"/>&ndash;&gt;-->
<!--    </typeHandlers>-->

    <!--丐版 青春版-->
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${db.username}"/>
                <property name="password" value="${db.password}"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <!--resource对应classpath下的文件路径-->
        <!--<mapper resource="com/cskaoyan/AccountMapper.xml"/>-->
        <!--url配置文件的真实路径-->
        <!--<mapper url="file:///D:\Coding Workspace\j18_workspace\codes\mybatis2\demo1_config\src\main\resources\com\cskaoyan\AccountMapper.xml"/>-->
        <!--class配置的是接口:接口是和映射文件一一对应的-->
        <!--对应关系:
        1、接口要和映射文件放在同一级目录
        2、接口要和映射文件同名
        3、映射文件的命名空间等于接口的全类名
        4、接口中的方法名 和映射文件中的标签的id一致; 方法一定要有标签与之对应,标签不一定需要方法与之对应
        -->
        <!--<mapper class="com.cskaoyan.mapper.AccountMapper"/>-->
        <!--package:批量配置class-->
        <package name="com.cskaoyan.mapper"/>
    </mappers>
</configuration>