Mybatis框架搭建(续)
4.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>
- mybatis-config.xml
代码如下:
<?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>
5.src下面创建新包,添加UserDao.xml和UserDao.java
- UserDao.xml
Xml头部约束
<?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=“com.zq.dao.UserDao”>
sql语句
<select id ="list" parameterType="user" resultType="user">
select * from user
where username =#{username} and pwd =#{pwd}
</select>
</mapper>
- UserDao.java
package com.xx.dao;
import java.util.List;
import com.za.model.User;
public interface UserDao {
public List<User> list(User user);
}
6. log4J和事务配置
- src下面创建:log4j.properties
# 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
- 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>
7.在数据库添加数据,设置属性,在src下建包并新建User.java
代码举例:
package com.xx.model;
public class User {
private Integer id;
private String username;
private String pwd;
private String realname;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getRealname() {
return realname;
}
public void setRealname(String realname) {
this.realname = realname;
}
}
8.src下面创建新包,添加UserService.java 和UserServiceImpl.java
- UserService.java
package com.xx.service;
import java.util.List;
import com.xx.model.User;
public interface UserService {
public List<User> list(User user);
}
- UserServiceImpl.java
package com.xx.service;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.xx.model.User;
import com.xx.dao.UserDao;
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Override
public List<User> list(User user) {
return userDao.list(user);
}
}