mybatis入门dao方式写URUD(二)
2017-09-18 23:59
197 查看
在上一篇博客中已经搭建好环境了,就不再说了,这次主要使用dao的方式写mybatis的CRUD,提高代码的可重用性。
目录结构:
目录结构:
创建entity: package pojo; public class Stu { private long id; private String name; public long getId() { return id; } public void setId(long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return "Stu [id=" + id + ", name=" + name + "]"; } } 创建dao: package Dao; import pojo.Stu; /** * 相当于接口 * @author lenovo * */ public interface stuDao { //查询 Stu findStuById(int id); //添加 void insertStu(Stu stu); //删除 void deletestu(int id); } 创建实现层: package Dao.impl; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import Dao.stuDao; import pojo.Stu; public class stuDaoImpl implements stuDao { //通过构造方法注入sqlsessionfactory private SqlSessionFactory sqlSessionFactory; //sqlsession是线程不安全的 public stuDaoImpl(SqlSessionFactory sqlSessionFactory2) { this.sqlSessionFactory= sqlSessionFactory2; } @Override public Stu findStuById(int id) { SqlSession sqlSession = sqlSessionFactory.openSession(); Stu stu = sqlSession.selectOne("test.findStuById", id); //释放资源 sqlSession.close(); return stu; } @Override public void insertStu(Stu stu) { SqlSession sqlSession = sqlSessionFactory.openSession(); sqlSession.insert("test.insertStu", stu); //提交事务 sqlSession.commit(); sqlSession.close(); } @Override public void deletestu(int id) { SqlSession sqlSession = sqlSessionFactory.openSession(); sqlSession.delete("test.updatestu", id); //提交事务 sqlSession.commit(); sqlSession.close(); } } 创建mapper映射文件: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper SYSTEM "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace="test"> <select id="findStuById" parameterType="int" resultType="pojo.Stu"> select * from stu where id=#{id} </select> <!-- 添加用户 --> <insert id="insertStu" parameterType="pojo.Stu"> insert into stu(id,name) VALUES (#{id},#{name}); </insert> <!--删除用户 --> <delete id="deleteStu" parameterType="java.lang.Integer"> delete from stu where id=#{id} </delete> </mapper> 创建测试类: package tests; import static org.junit.Assert.*; import java.io.InputStream; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.junit.Before; import org.junit.Test; import pojo.Stu; import Dao.stuDao; import Dao.impl.stuDaoImpl; public class stuDaoImplTest { private SqlSessionFactory sqlSessionFactory; /** * 此方法是在testFindStuById()之前执行 * @throws Exception */ @Before public void setup() throws Exception{ // 创建sqlsessionfactory //1.创建会话工厂 String resource= "SqlMapConfig.xml"; //得到文件流 InputStream inputStream = Resources.getResourceAsStream(resource); sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); } @Test public void testFindStuById() { //创建dao对象 stuDao dao = new stuDaoImpl(sqlSessionFactory); //调用dao方法 Stu stu = dao.findStuById(1); System.out.println(stu); } } <!-- 加载mapper配置文件--> <mappers> <mapper resource="sqlmap/stu.xml"/> </mappers> |
相关文章推荐
- Mybatis入门及Dao开发方式
- Mybatis入门开发之dao方式(三)
- mybatis--开发Dao--原始dao方式和Mapper代理方式
- mybatis源码学习--spring+mybatis注解方式为什么mybatis的dao接口不需要实现类
- Mybatis的基本使用与企业常用MyBatis开发Dao方式
- Mybatis入门基础(二)--原始dao的开发和mapper代理开发
- Mybatis入门:(2)接口方式编程
- 后台(36)——MyBatis的原始Dao开发方式
- MyBatis入门【二】入门项目-原始DAO开发
- mybatis源码学习--spring+mybatis注解方式为什么mybatis的dao接口不需要实现类
- MyBatis--单表的CURD操作(原始dao方式)
- mybatis入门基础(二)----原始dao的开发和mapper代理开发
- mybatis之入门到开发(四)之 Mapper动态代理方式
- mybatis教程--原始方式和mapper方式开发dao详解
- 原始dao和Mapper动态代理的开放方式---Mybatis学习笔记(六)
- mybatis入门基础(二)----原始dao的开发和mapper代理开发
- MyBatis+Spring在注解@Autowried后通过反射的方式调用方法获取注入的Service或DAO对象为空
- mybatis 用接口的方式实例化dao的缺点
- MyBatis动态代理的方式DAO开发设置
- Mybatis基于接口代理的方式来开发Dao(一)