在此之前编写dao层接口,pojo层:详细看代码:
一.spring的配置(需要命名空间aop;beans;context;tx)
applicationContext.xml文件:
<!--扫描包 -->
<context:component-scan base-package="com.pan.web" use-default-filters="true">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
<!--数据源配置 -->
<context:property-placeholder location="classpath:dbconfig.properties"/>
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="jdbcUrl" value="${jdbc.url}"></property>
<property name="driverClass" value="${jdbc.driver}"></property>
<property name="user" value="${jdbc.uname}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean>
<!-- 配置mybatis整合 -->
<bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<!-- mybatis 全局配置-->
<property name="configLocation" value="classpath:mybatis-config.xml"></property>
<!--mybatis 接口映射配置 -->
<property name="mapperLocations" value="classpath:mapper/*.xml"></property>
</bean>
<!-- 配置可以批量操作的sqlsessiondactory
<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
支持批量操作,成功返回-2147482646
<constructor-arg name="sqlSessionFactory" ref="sqlSessionFactoryBean"></constructor-arg>
<constructor-arg name="executorType" value="BATCH"></constructor-arg>
</bean> -->
<!-- 扫描器,将mybatis下的dao接口配置到IOC容器中 -->
<bean id="MapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.pan.web.dao"></property>
</bean>
<!--事务管理器 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
<aop:config>
<!-- 配置切入点 -->
<aop:pointcut expression="execution(* csom.pan.web.service..*(..))" id="txPoint"/>
<!--配置事务增强 -->
<aop:advisor advice-ref="txAdvice" pointcut-ref="txPoint"/>
</aop:config>
<!-- 事务如何切入 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<!-- 所有方法都是事务方法 -->
<tx:method name="*"/>
<!-- 以get开始的所有方法 -->
<tx:method name="get*" read-only="true"/>
</tx:attributes>
</tx:advice>
二.mybatis的配置
1.dbconfig.properties数据源
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/dvdsystem?useSSL=true
jdbc.uname=你的用户名
jdbc.password=你的密码
2.mybatis-config.xml全局配置
<configuration>
<!-- mapUnderscoreToCamelCase驼峰命名法 -->
<!-- aggressiveLazyLoading 所有属性是否一开始全部加载-->
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
<setting name="lazyLoadingEnabled" value="true"/>
<setting name="aggressiveLazyLoading" value="false"/>
</settings>
<typeAliases>
<!-- package为某个包下的所有批量取别名,别名为类名,不区分大小写 -->
<package name="com.pan.web.ben"/>
</typeAliases>
<plugins>
<!-- com.github.pagehelper为PageHelper类所在包名 -->
<plugin interceptor="com.github.pagehelper.PageInterceptor">
<property name="reasonable" value="true"/>
</plugin>
</plugins>
3.映射文件mapper(DVDDao;RecordDao;UserDao)详情看代码