配置文件共4类:mapper,database-conf,mybatis-conf,spring-conf
database-conf:
配置数据源(c3p0)
c3p0.properties:
c3p0.jdbcUrl=jdbc:mysql://LOCALHOST:3306/ssm_sms?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
c3p0.driverClass=com.mysql.cj.jdbc.Driver
c3p0.user=
c3p0.password=
###### C3P0 configuration information ######
c3p0.maxPoolSize=100
c3p0.minPoolSize=1
c3p0.initialPoolSize=5
c3p0.maxIdleTime=1800
mybatis-conf:
<?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>
<!-- 为sql映射文件中的输入/输出参数设置类型别名 -->
<!-- 当设置后,该包下的实体类都会注册别名,并且类名就是别名,且大小写不敏感 -->
<typeAliases>
<package name="pers.huangyuhui.sms.bean"/>
</typeAliases>
</configuration>
mapper:
mapper接口映射文件,有admin,clazz,student,grade,teacher
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="pers.huangyuhui.sms.dao.AdminMapper">
<select id="方法名" parameterType="参数类型" resultType="返回类型">
<!-- 返回类型指单个元素的类型,如返回列表则指列表元素的类型 -->
动态sql:
<!-- name为Admin中的属性名(在Controller层中已将输入的查询的姓名封装到了Admin中的name属性中) -->
SELECT ...
<where>
<if test="name!=null and name!=''"> <!-- 为真则拼接sql -->
AND name LIKE concat(concat('%',#{name}),'%')
</if>
</where>
UPDATE ...
<set> <!-- 分情况动态更新 -->
<if test="name!=null and name!=''">name=#{name},</if>
<if test="gender!=null and gender!=''">gender=#{gender},</if>
<if test="email!=null and email!=''">email=#{email},</if>
<if test="telephone!=null and telephone!=''">telephone=#{telephone},</if>
<if test="address!=null and address!=''">address=#{address},</if>
<if test="portrait_path!=null and portrait_path!=''">portrait_path=#{portrait_path},</if>
</set>
DELETE ...
<foreach collection="array" item="ids" open="(" separator="," close=")">
#{ids} <!-- 批量删除 -->
</foreach>
spring-conf:
springmvc-config.xml:
...
<!-- 启用注解扫描器: 扫描被@Controller注解的类 -->
<context:component-scan base-package="pers.huangyuhui.sms.controller"/>
<!-- 加载注解驱动 -->
<mvc:annotation-driven/>
<!-- 处理静态资源 -->
<!-- 生成一个检查员,对进入DispatcherServlet的URL进行筛查,如果发现是静态资源的请求,就将该请求转由Web应用服务器默认的Servlet处理,如果不是静态资源的请求,才由DispatcherServlet继续处理 -->
<mvc:default-servlet-handler/>
<!-- 配置拦截器 -->
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/**"/>
<mvc:exclude-mapping path="/static/h-ui/**"/>
<mvc:exclude-mapping path="/static/easyui/**"/>
<mvc:exclude-mapping path="/system/login"/>
<mvc:exclude-mapping path="/system/getVerifiCodeImage"/>
<bean class="pers.huangyuhui.sms.interceptor.LoginInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>
<!-- 配置文件上传解析器 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 指定请求编码格式 -->
<property name="defaultEncoding" value="UTF-8"/>
<!-- 指定指定允许上传文件的最大值(20MB) -->
<property name="maxUploadSize" value="20971520"/>
</bean>
<!-- 配置视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/view/"/>
<property name="suffix" value=".jsp"/>
</bean>
applicationContext.xml:
<!-- 读取c3p0.properties中的数据库配置信息 -->
<context:property-placeholder location="classpath:database-conf/c3p0.properties"/>
<!-- 配置数据源 -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<!-- 数据库驱动 -->
<property name="driverClass" value="${c3p0.driverClass}"/>
<!-- 连接数据库的url -->
<property name="jdbcUrl" value="${c3p0.jdbcUrl}"/>
<!-- 连接数据库的用户名 -->
<property name="user" value="${c3p0.user}"/>
<!-- 连接数据库的密码 -->
<!-- 初始化连接数 -->
<!-- 最大连接数 -->
<!-- 最小连接数 -->
<!-- 连接的生存时间 -->
</bean>
<!-- 配置Spring事务管理器 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<!-- 原理:控制数据源 -->
<property name="dataSource" ref="dataSource"/>
</bean>
<!-- 开启事务注解扫描 -->
<tx:annotation-driven transaction-manager="transactionManager"/>
<!-- MyBatis与Spring整合 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 注入数据源 -->
<property name="dataSource" ref="dataSource"/>
<!-- 指定Mapper映射文件位置 -->
<property name="mapperLocations" value="classpath:mapper/*.xml"/>
<!-- 指定MyBatis核心配置文件位置 -->
<property name="configLocation" value="classpath:/mybatis-conf/mybatis-config.xml"/>
<!-- 引入插件 -->
<property name="plugins">
<array>
<!-- 引入MyBaits分页插件 -->
<bean class="com.github.pagehelper.PageInterceptor">
<property name="properties">
<!-- 指定数据库类型 -->
<value>helperDialct=mysql</value>
</property>
</bean>
</array>
</property>
</bean>
<!-- 开启Mapper接口扫描器: 扫描Dao层 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="pers.huangyuhui.sms.dao"/>
</bean>
<!-- 开启Spring IOC注解扫描器: 扫描Servie层-->
<context:component-scan base-package="pers.huangyuhui.sms.service"/>