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>
<settings>
<!--配置LOG4J-->
<setting name="logImpl" value="LOG4J"/>
</settings>
<typeAliases>
<package name="zzuli.zw.learnSpringMVC.domain"/>
</typeAliases>
</configuration>
说明
在settings中可以配置延迟加载,缓存,日志等信息。
log4j配置文件
log4j.rootCategory=DEBUG,CONSOLE
log4j.logger.zzuli.zw.learnSpringMVC.mapper=DEBUG
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%C %p %d{yyyy-MM-dd HH:mm:ss} %m %n
#以下为输出到文件中的格式
#log4j.appender.LOGFILE=org.apache.log4j.FileAppender
#log4j.appender.LOGFILE.File=C:/my.log
#log4j.appender.LOGFILE.Append=true
#log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
#log4j.appender.LOGFILE.layout.ConversionPattern=%C %m %L %n
说明:
#这一句第一个代表的是输出级别,第二个是表示在什么位置输出,第二个要和后面的保持一致(log4j.appender.CONSOLE=...)
log4j.rootCategory=DEBUG,CONSOLE
log4j的maven坐标
-
2.0之前版本
<dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency>
-
2.0之后版本
<dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.10.0</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.10.0</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-web</artifactId> <version>2.9.1</version> </dependency>
参考:https://www.jianshu.com/p/ccafda45bcea
Spring与Mybatis整合
<context:property-placeholder location="classpath*:c3p0.properties"/>
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="jdbcUrl" value="${jdbc.url}"/>
<property name="driverClass" value="${jdbc.driver}"/>
<property name="user" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<!--配置mybatis的SqlSessionFactory-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!--配置数据源-->
<property name="dataSource" ref="dataSource"/>
<!--mybatis配置文件的位置-->
<property name="configLocation" value="classpath:mybatis/mybatis.xml"/>
<property name="mapperLocations" value="classpath:zzuli.zw.learnSpringMVC.mapper/*.xml"/>
</bean>
<!--配置mybatis扫描器-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!--SqlSessionFactory的名字-->
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
<!--配置要扫描的包,如果有多个要扫描的包,需要使用半角逗号隔开-->
<property name="basePackage" value="zzuli.zw.learnSpringMVC.mapper"/>
</bean>
<context:component-scan base-package="zzuli.zw.learnSpringMVC.mapper"/>
步骤详解
-
如果数据库账号等信息写在独立的properties配置文件中,就先使用下述方式引入文件
<context:property-placeholder location="classpath*:c3p0.properties"/>
-
配置数据源(数据库连接池)
-
配置mybatis的SqlSessionFactory
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!--配置数据源--> <property name="dataSource" ref="dataSource"/> <!--mybatis配置文件的位置--> <property name="configLocation" value="classpath:mybatis/mybatis.xml"/> <property name="mapperLocations" value="classpath:zzuli.zw.learnSpringMVC.mapper/*.xml"/> </bean>
注意:
<!--映射文件的位置--> <property name="mapperLocations" value="classpath:zzuli.zw.learnSpringMVC.mapper/*.xml"/>
如果将mapper的xml文件放在resource文件夹下不配置这一句可能会出现错误
-
配置mybatis扫描器(在原来的xml文件中可以使用mapper标签配置)
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <!--SqlSessionFactory的名字--> <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/> <!--配置要扫描的包,如果有多个要扫描的包,需要使用半角逗号隔开--> <property name="basePackage" value="zzuli.zw.learnSpringMVC.mapper"/> </bean>
web.xml中加载配置文件
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:applicationContext-*.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
需要注意这两个标签的位置不能变