电商项目开发之开发环境搭建(二)
搭建SSM框架-配置文件
mybatis
在applicationContext.xml中添加mybatis配置
<!-- 配置 MyBatis的工厂 -->
<bean class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 数据源 -->
<property name="dataSource" ref="dataSource" />
<!-- 配置MyBatis的核心配置文件所在位置 -->
<property name="configLocation" value="classpath:mybatis-config.xml" />
</bean>
<!-- 接口开发,扫描 com.zq.dao包 ,写在此包下的接口即可被扫描到 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.zq.dao" />
</bean>
4、mybatis-mybatis-config.xml(mybatis.pdf P3、P14)
<?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>
<!-- 别名定义,自动将报下面的类命名别名,首字母小写 -->
<typeAliases>
<package name="com.zq.model" />
</typeAliases>
</configuration>
搭建SSM框架-UserDao.xml
1、Xml头部约束(mybatis.pdf P4)
<?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”
2、命名空间要与接口一一对应
3、sql语句-查询
搭建SSM框架-mybatis内置别名
对常用的java 类型,已经内置了一些别名支持。这些别名都是不区分大小写的。注意java的基本数据类型,它们进行了特别处理,加了“_”前缀。
3、sql语句
log4J配置
src下面创建:log4j.properties
将mybatis-3.4.2.zip中的pdf中Logging中的配置直接拷贝
添加一下对自己代码的日志打印级别,完整代码如下:
#Global logging configuration
log4j.rootLogger=ERROR, stdout
#stdout为输出模式的名字
#MyBatis logging configuration...
log4j.logger.com.zq=DEBUG
#日志打印的位置:控制台
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#打印日志的形式、格式
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
测试下:启动项目,访问:
http://localhost:8080/shop/user/list.do
Eclipse的console控制台就可以打印日志了
事务配置
applicationContext.xml将事务改成xml配置的,完整的事务相关代码如下:
<!-- 配置事务管理器 -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
<!-- 注册一下事务管理器的驱动 -->
<tx:annotation-driven transaction-manager="transactionManager" />
<!– 下面是新加的代码: -->
<!– 通知 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<!-- 传播行为 -->
<tx:method name="create*" />
<tx:method name="delete*" />
<tx:method name="update*" />
</tx:attributes>
</tx:advice>
<!-- 切面 -->
<aop:config>
<aop:advisor advice-ref="txAdvice“ pointcut="execution(* com.zq.service.*.*(..))" />
</aop:config>
搭建SSM框架-UserDao.xml
测试,create方法:http://localhost:8080/shop/user/create.do
(故意让service中间报错,可以看出来事务是否起作用了)
1、applicationContext.xml配置了service包下面的类中create开头的方法都添加了事务机制,运行–结果数据库无数据添加
2、注释掉xml中的create*的配置,看下结果,插入一条数据
3、在service的create方法或者serviceImpl类上加上注解,如下,再运行,发现无数据添加成功