今天写写spring-mybatis整合吧,先写个原始dao类的整合,下一节在写个动态代理的整合,我就不写太详细了,因为前面的章节基本上都有了,我直接就一口气都写出来需要那些文件然后在直接贴代码,首先创建一个java项目,。

首先导入jar包,jar地址下载

目录结构

1.db.properties数据连接池

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

2.applicationContext.xml,spring的xml映射文件

<?xml version="1.0" encoding="UTF-8"?>
<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 "> <!-- 数据源配置 dbcp -->
<context:property-placeholder location="classpath:db.properties"/> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${jdbc.driver}"></property>
<property name="url" value="${jdbc.url}"></property>
<property name="username" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
<property name="maxActive" value="10"></property>
<property name="maxIdle" value="5"></property>
</bean>
<!-- 创建sqlsessionfactory -->
<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.my.sm.dao.UserDao" >
<property name="sqlSessionFactory" ref="sqlSessionFactory"></property>
</bean>
</beans>

3.SqlMapConfig.xml:mybatis的映射文件

<?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>
<mappers>
<mapper resource="sqlmap/User.xml"/>
</mappers>
</configuration>

4.User.xml:实体类的映射文件,为了简便我就只写一个findById方法的映射了

<?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="cn.my.sm.mapper.UserDaoMapper">
<select id="findById" parameterType="int" resultType="cn.my.sm.po.User">
select * from user where id=#{id}
</select>
</mapper>

5.创建User.java实体类

package cn.my.sm.po;

import java.util.Date;

public class User {

    private int id;
private String username;// 用户姓名
private String sex;// 性别
private Date birthday;// 生日
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 String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "User [id=" + id + ", username=" + username + ", sex=" + sex + ", birthday=" + birthday + ", address="
+ address + "]";
}
}

6.创建UserDao.java数据访问类

package cn.my.sm.dao;

import org.apache.ibatis.session.SqlSession;
import org.mybatis.spring.support.SqlSessionDaoSupport; import cn.my.sm.po.User;
//原始dao层需要继承SqlSessionDaoSupport类,或者自己声明一个sqlsessionfactory对象,添加setget方法,然后自己根据sqlsessionfactory工厂获取sqlsession
public class UserDao extends SqlSessionDaoSupport {
public User findById(int id){
SqlSession session = this.getSqlSession();
User user = session.selectOne("cn.my.sm.mapper.UserDaoMapper.findById", id);
return user;
}
}

7.创建测试类

package cn.my.sm.test;

import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; import cn.my.sm.dao.UserDao;
import cn.my.sm.po.User; @SuppressWarnings("resource")
public class TestUser {
ApplicationContext context;
@Before
public void setUp(){
context = new ClassPathXmlApplicationContext("classpath:spring/applicationContext.xml");
}
@Test
public void testFindById(){
UserDao userdao = (UserDao) context.getBean("userDao");
User user = userdao.findById(1);
System.out.println(user);
}
}

允许结果:

User [id=1, username=王五, sex=2, birthday=null, address=null]

这样就原始整合完了,今天写得比较草率,如果大家有疑问的可以加群号581591235或者留言。也可以加微信群

最新文章

  1. c++ 成员函数
  2. Android利用Fiddler进行网络数据抓包
  3. 配置cas
  4. VC中常用的宏
  5. onCreateOptionsMenu 和 onPrepareOptionsMenu 的区别
  6. Retrofit分析-漂亮的解耦套路
  7. BZOJ 1588 营业额统计 Splay
  8. 最简单的基于Flash的流媒体示例:网页播放器(HTTP,RTMP,HLS)
  9. VSS迁移
  10. VS2012编译Snmp++ v3.2.25
  11. 基于 Groovy 的自动化构建工具 Gradle 入门(转)
  12. rebar
  13. Python package install血泪史
  14. swiper.js 碰到的坑
  15. c++用类写栈和队列的简单基本操作(实验)
  16. Linux下使用MD5加密BASE64加密
  17. awk小例子_2_数值统计脚本
  18. Rank of Tetris 拓扑排序+并查集
  19. gulp打包工具
  20. sqlserver 通过日志恢复误删的数据

热门文章

  1. vue调试工具之 vue-devtools的安装
  2. Navicat Mac 快捷键详解
  3. 解决PhpStorm卡顿的问题
  4. Lua内存分析工具
  5. 微信小程序 页面跳转传递数据
  6. Qt 如何使用 QImage 设置指定的颜色为透明色?
  7. python开发concurent.furtrue模块:concurent.furtrue的多进程与多线程&amp;协程
  8. hihoCoder1319 岛屿周长 (bfs)
  9. poj1011 && uva307 DFS + 剪枝
  10. 四级地址插件升级改造(京东商城地址选择插件)city-picker