1 

2 

3 

传统dao开发实现CRUD

3.1    传统dao开发实现crud

使用 Mybatis 开发 Dao,通常有两个方法,即原始 Dao开发方式和 Mapper 接口代理开发方式。而现在主流的开发方式是接口代理开发方式,这种方式总体上更加简便。

本次课来了解一下传统dao开发方式:编写dao接口的实现类。

3.2    开发步骤、核心代码和配置

1.        创建项目,导包,导入日志配置文件

2.        创建实体类

3.        创建dao接口

public List<Users> findAllUsers();

    List<Users> findAllUsers();

    Users findById(intid);

    void insertUser(Users users);

    void updateUser(Users users);

    void deleteUser(intid);

配置开发环境,配置别名,配置sql映射文件注入

4.        配置核心配置文件

5.        创建dao接口的实现类

publicclass UserDaoImpl implements IUsersDao{

    private SqlSessionFactory factory;

    public UserDaoImpl(SqlSessionFactory factory) {

       this.factory = factory;

    }

    //查询所有用户

    @Override

    public List<Users> findAllUsers() {

       SqlSession sqlsession = factory.openSession();

       //参数值为:映射文件中的namespace属性值+select标签的id值

       List<Users> users = sqlsession.selectList("com.hebi.dao.IUsersDao.findAllUsers");

       sqlsession.close();

       returnusers;

    }

    //根据id查询用户

    @Override

    public Users findById(intid) {

       SqlSession sqlsession = factory.openSession();

       //参数值为:映射文件中的namespace属性值+select标签的id值

       Users users = sqlsession.selectOne("com.hebi.dao.IUsersDao.findById",id);

       sqlsession.close();

       returnusers;

    }

    //添加用户

    @Override

    publicvoid insertUser(Users users) {

       SqlSession sqlsession = factory.openSession();

       //参数值为:映射文件中的namespace属性值+select标签的id值

        sqlsession.insert("com.hebi.dao.IUsersDao.insertUser",users);

       sqlsession.commit();

       sqlsession.close();

    }

    //修改用户

    @Override

    publicvoid updateUser(Users users) {

       SqlSession sqlsession = factory.openSession();

       //参数值为:映射文件中的namespace属性值+select标签的id值

        sqlsession.update("com.hebi.dao.IUsersDao.updateUser",users);

       sqlsession.commit();

       sqlsession.close();

    }

    //删除用户

    @Override

    publicvoid deleteUser(intid) {

       SqlSession sqlsession = factory.openSession();

       //参数值为:映射文件中的namespace属性值+select标签的id值

       sqlsession.delete("com.hebi.dao.IUsersDao.deleteUser",id);

       sqlsession.commit();

       sqlsession.close();

    }  

}

6.        配置映射配置文件

配置namespace和select,  insert   update   delete标签

7.        编写测试类进行测试

publicclass Test01 {

    InputStream in;

    SqlSessionFactory factory;

    IUsersDao userDao;

@Before//测试方法执行前执行

    publicvoid init() throws IOException {

       //1)读取核心配置文件

       in = Resources.getResourceAsStream("mybatis-config.xml");

       //2)创建sqlSessionFactory

       factory = new SqlSessionFactoryBuilder().build(in);

       //3)创建userDao对象

       userDao = new UserDaoImpl(factory);

    }

    @After//测试方法执行后执行

    publicvoid destory() throws IOException {

       in.close();

    }

    //测试查询所有用户

    @Test

    publicvoid testAllUser() throws IOException {

       //调用dao实现类中的方法

       List<Users> users = userDao.findAllUsers();

       for(Users u:users) {

           System.out.println(u);

       }      

    }

    //测试根据id查询用户

    @Test

    publicvoid testFindById() throws IOException {

       //调用dao实现类中的方法

       Users user = userDao.findById(2);          

       System.out.println(user);

    }

    //测试添加用户

    @Test

    publicvoid testInsertUser() throws IOException {

       Users users = new Users();

       users.setUserName("天空");

       users.setAge(16);

       userDao.insertUser(users);

       System.out.println(users);

    }

    //测试修改用户

    @Test

    publicvoid testUpdateUser() {

       Users users = new Users();

       users.setUserName("tiank");

       users.setAge(18);

       users.setId(18);

       userDao.updateUser(users);

    }

    //测试删除用户

    @Test

    publicvoid testDeleteUser() {     

       userDao.deleteUser(23);

    }  

}

Mybatis框架-CRUD的更多相关文章

  1. MyBatis之CRUD

    1 mybatis框架介绍 1.1回顾jdbc操作数据库的过程 1.2 mybatis开发步骤 A.提供一个SqlMapperConfig.xml(src目录下),该文件主要配置数据库连接,事务,二级 ...

  2. MyBatis框架

    MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的xml或者注解用于 ...

  3. 深入理解MyBatis框架的的配置信息

    面对一个框架,最重要的不是说回用其代码就可以了,我们需要了解其思想,这样才能更快更好的掌握这个框架.而对于一个框架,最重要的就是其配置文件的作用及功能了.下面,我就来谈一谈我今天遇到的这个MyBati ...

  4. SSM(Spring + Springmvc + Mybatis)框架面试题

    JAVA SSM框架基础面试题https://blog.csdn.net/qq_39031310/article/details/83050192 SSM(Spring + Springmvc + M ...

  5. MyBatis框架入门之(二)

    在本篇文章中,没有对细节进行处理的很好,有很多晓得细节的遗漏,本文只是一个简单的快速的入门 MyBatis的快速入门 导入MyBatis框架jar包 配置文件 SqlSessionFactoryBui ...

  6. 初识Mybatis框架

    mybatis框架  主要是对数据库进行操作的 编写sql语句 使我们对数据库的crud操作更加简洁方便!! 1.使用mybatis框架 进行第一个项目 查询数据库 并返回数据 :(简单) (1)搭建 ...

  7. MyBatis框架的使用及源码分析(二) 配置篇 SqlSessionFactoryBuilder,XMLConfigBuilder

    在 <MyBatis框架中Mapper映射配置的使用及原理解析(一) 配置与使用> 的demo中看到了SessionFactory的创建过程: SqlSessionFactory sess ...

  8. Mybatis框架-1

    1.Mybatis框架: Mybatis是一个半自动的对象关系映射(ORM),实现结果集的自动封装,sql写到配置文件中: Mybatis使用的是DTD约束. 2.Mybatis模块调用: 3.Sql ...

  9. ssm(spring、springmvc、mybatis)框架整合

    第一次接触这3大框架,打算一个一个慢慢学,参照网上资料搭建了一个ssm项目,作为新手吃亏在jar包的导入上,比如jdbc DataSource配置的时候由于导入的jar包不兼容或者缺包导致项目无法正常 ...

随机推荐

  1. 【C++】VS Code配置

    0.前言 本文已配置C++环境为例,本文主要是面向刚开始接触VS Code的朋友,采用生成默认配置任务的方法,在编写本文过程中大量参考了官方文档,感兴趣的朋友可直接前往传送门. 环境: win10 + ...

  2. SpringBoot—自定义线程池及并发定时任务模板

    介绍   在项目开发中,经常遇到定时任务,今天通过自定义多线程池总结一下SpringBoot默认实现的定时任务机制. 定时任务模板 pom依赖 <dependencies> <dep ...

  3. 基于Python豆瓣自动化测试【2】

    -- Pytest基础使用教程[2] 从测试报告说起 承接上一篇中最后的测试结果图,使用过的pytest-html 插件原生态的报告的话.可能会发现 内容样式都有些不同.其实是做了些扩展相关设置所呈现 ...

  4. python常见面试题讲解(八)提取不重复的整数

    题目描述 输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数. 输入描述: 输入一个int型整数 输出描述: 按照从右向左的阅读顺序,返回一个不含重复数字的新的整数 示例1 ...

  5. Hadoop Yarn REST API未授权漏洞利用

    Hadoop Yarn REST API未授权漏洞利用 Hadoop是一个由Apache基金会所开发的分布式系统基础架构,YARN是hadoop系统上的资源统一管理平台,其主要作用是实现集群资源的统一 ...

  6. GNS3--cisco路由器NAT配置

    一.基础 Cisco路由器配置中NAT的主要命令: 静态NAT: 1.指定NAT内部接口 在内网相应接口的接口配置模式下执行:ip nat inside 2.指定NAT外部接口 在外网相应接口的接口配 ...

  7. AES实现财务数据的加密解密存储

    需求背景 众所周知,金融行业有各种各样的财务报表,有些报表涉及到公司财务或经营相关的敏感数据,需要进行加密存储,只有掌握密钥的用户才能看到解密后的数据.注意,这里所说的加密并不是针对整个数据库或者表全 ...

  8. Splay代码简化版

    皆さん.こんにちは.上一篇文章,我们讲了Splay如何实现.这一篇我们来让我们的伸展树短一点. 上一篇Splay讲解的链接:リンク. 首先还是变量的定义,在这里呢,我把一些小函数也用Define来实现 ...

  9. cmd 启动mysql,发生系统错误5

    在运行cmd的时候,使用管理员身份运行.

  10. Qcom平台RTC驱动分析

    相关文件list: pm8998.dtsi ---RTC dts配置 qpnp-rtc.c ---qcom RTC驱动 class.c ---RTC相关class interface.c ---相关R ...