30Mybatis_mybatis和spring整合-原始dao开发

时间:2024-01-20 09:11:33

这篇文章很重要,

第一步:我们讲一下整合的思路:

我们以前要用Mybatis是需要sqlMapConfig.xml(这个配置文件需要配置dataource,以及mapper.xml文件。)sqlMapConfig.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> <!-- properties的配置必须写在typeAliases的上面 -->
<properties resource="db.properties"></properties>
<settings>
<setting name="lazyLoadingEnabled" value="true"/>
<setting name="aggressiveLazyLoading" value="false"/>
</settings> <!-- 和spring整合后 environments配置将废除-->
<environments default="development">
<environment id="development">
<!-- 使用jdbc事务管理-->
<transactionManager type="JDBC" />
<!-- 数据库连接池-->
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</dataSource> </environment> </environments> <!-- 把映射文件(sqlmap/user.xml)加载进sqlMapConfig.xml-->
<mappers> <!-- 把mapper.xml加载进sqlMapConfig.xml-->
<!--
遵循一些规范:需要将mapper接口类名和mapper.xml映射文件名称保持一致
且在一个目录中。
当着这个规范的前提是:使用mapper代理方法。 -->
<mapper class="cn.itcast.mybatis.mapper.OrdersMapperCustom"/> </mappers> </configuration>

现在我们加入spring之后,database就要交给spring的配置文件applicationContext.xml来处理了。而且我们以前在用Dao时,传统的做法是要在Dao类中有SqlSessionFactory,现在用Spring之后,最主要的改变就是这里了。

需要spring通过单例方式管理SqlSessionFactory。

spring和mybatis整合生成代理对象,使用SqlSessionFactory创建SqlSession。(spring和mybatis整合自动完成)

久层的mapper都需要由spring进行管理。

第二步:给出具体案例:

案例结构如下:

aaarticlea/png;base64,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" alt="" />

1.lib里面的jar包如下:

aaarticlea/png;base64,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" alt="" />

aaarticlea/png;base64,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" alt="" />

2.我介绍下每个包里面的含义:

三个sourcefile:

src:有两个包:

cn.itcast.ssm.Dao包下面放着Dao和Dao继承类;

cn.itcast.ssm.po包下面放着pojo类;

config:是放配置文件的。

mybatis/sqlMapConfig.xml:mybatis总的配置文件。

spring/applicationContext.xml:spring的配置文件。

sqlmap/user.xml:mapper.xml文件

db.properties:数据库的配置文件。

log4j.properties:日志文件。

test:放置测试文件:TestSpringMybatis.java.

下面给出每个文件的具体代码:

UserDao:

package cn.itcast.ssm.Dao;

public interface UserDao {
public void findUserById(int id);
}

UserDaoImpl:

package cn.itcast.ssm.Dao;

import org.apache.ibatis.session.SqlSession;
import org.mybatis.spring.support.SqlSessionDaoSupport; import cn.itcast.ssm.po.User;
//这个类继承了SqlSessionDaoSupport,可以通过this.getSqlSession()来得到SqlSession
//通过这种方式来注入。
public class UserDaoImpl extends SqlSessionDaoSupport implements UserDao{ @Override
public void findUserById(int id) {
SqlSession session=this.getSqlSession();
User user=session.selectOne("test.findUserById",id);
System.out.println(user.getUsername()); } }

User.class:

package cn.itcast.ssm.po;

import java.io.Serializable;
import java.util.Date;
import java.util.List; public class User implements Serializable {
private int id;//对应数据库中主键
private String username;//对应数据库中用户的名称
private Date birthday;//对应数据库中的生日
private String sex;//性别
private String address;//地址 public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
} }

SqlMapConfig.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> <!-- 把映射文件(sqlmap/user.xml)加载进sqlMapConfig.xml-->
<mappers> <mapper resource="sqlmap/user.xml"/> </mappers> </configuration>

applicationContext.xml

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.2.xsd "> <!-- 加载配置文件 -->
<context:property-placeholder location="classpath:db.properties" />
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${jdbc.driver}"></property>
<property name="url" value="${jdbc.url}"></property>
<property name="password" value="${jdbc.password}"></property>
<property name="username" value="${jdbc.username}"></property>
<property name="maxActive" value="10"></property>
<property name="maxIdle" value="5"></property>
</bean>
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="configLocation" value="mybatis/SqlMapConfig.xml"></property>
<!-- 配置数据源 -->
<property name="dataSource" ref="dataSource"></property>
</bean> <bean id="UserDao" class="cn.itcast.ssm.Dao.UserDaoImpl">
<property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
</bean> </beans>

User.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">
<!-- nanmespace:命名空间。 作用就是对sql进行分类话管理,理解Sql分离 注意:使用mapper代理方式,namespace有特殊重要的作用
--> <mapper namespace="test"> <!-- 根据id获取用户信息 -->
<!-- 在映射文件中配置很多sql语句 -->
<!--
id:标识映射文件中的sql;
将sql语句封装到mappedStatement对象中,所以将id称为statement的id;parmenterType:指定输入的参数的类型,这里指定的int型
#{}表示一个占位符号;
#{id}:其中的id表示接收输入的参数,参数名称就是id,如果输入参数就是简单类型,#{}中的参数名可以任意,可以value或其它名称
resultType:指定的sql输出结果的所映射的java对象类型,select指定resultType表示将单条记录映射成的java对象; -->
<select id="findUserById" parameterType="int" resultType="cn.itcast.ssm.po.User">
select * from user where id = #{id}
</select> </mapper>

dp.properties:

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybaits
jdbc.username=root
jdbc.password=root

log4j.properties:

# Global logging configuration
#\u5728\u5f00\u53d1\u73af\u5883\u4e0b\u65e5\u5fd7\u7ea7\u522b\u8981\u8bbe\u7f6e\u6210DEBUG\uff0c\u751f\u4ea7\u73af\u5883\u8bbe\u7f6e\u6210info\u6216error
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

TestSpringMybatis.java

package springmvc_mybatis_shen;

import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import cn.itcast.ssm.Dao.UserDao; public class TestSpringMybatis {
ApplicationContext applicationContext;
@Before
public void setup()
{//spring的方式加载配置文件
applicationContext=new ClassPathXmlApplicationContext("classpath:spring/applicationContext.xml"); }
@Test
public void testSpringMyabtis()
{UserDao userDao=(UserDao) applicationContext.getBean("UserDao");
userDao.findUserById(1); } }

运行结果:正确。

DEBUG [main] - Searching for key 'spring.liveBeansView.mbeanDomain' in [systemProperties]
DEBUG [main] - Searching for key 'spring.liveBeansView.mbeanDomain' in [systemEnvironment]
DEBUG [main] - Could not find key 'spring.liveBeansView.mbeanDomain' in any property source. Returning [null]
DEBUG [main] - Returning cached instance of singleton bean 'UserDao'
DEBUG [main] - Creating a new SqlSession
DEBUG [main] - SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@30e07209] was not registered for synchronization because synchronization is not active
DEBUG [main] - Fetching JDBC Connection from DataSource
DEBUG [main] - JDBC Connection [jdbc:mysql://localhost:3306/mybaits, UserName=root@localhost, MySQL-AB JDBC Driver] will not be managed by Spring
DEBUG [main] - ==>  Preparing: select * from user where id = ?
DEBUG [main] - ==> Parameters: 1(Integer)
DEBUG [main] - <==      Total: 1
DEBUG [main] - Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@30e07209]
DEBUG [main] - Returning JDBC Connection to DataSource
王五