Mybatis框架-CRUD
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的更多相关文章
- MyBatis之CRUD
		1 mybatis框架介绍 1.1回顾jdbc操作数据库的过程 1.2 mybatis开发步骤 A.提供一个SqlMapperConfig.xml(src目录下),该文件主要配置数据库连接,事务,二级 ... 
- MyBatis框架
		MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装.MyBatis可以使用简单的xml或者注解用于 ... 
- 深入理解MyBatis框架的的配置信息
		面对一个框架,最重要的不是说回用其代码就可以了,我们需要了解其思想,这样才能更快更好的掌握这个框架.而对于一个框架,最重要的就是其配置文件的作用及功能了.下面,我就来谈一谈我今天遇到的这个MyBati ... 
- SSM(Spring + Springmvc + Mybatis)框架面试题
		JAVA SSM框架基础面试题https://blog.csdn.net/qq_39031310/article/details/83050192 SSM(Spring + Springmvc + M ... 
- MyBatis框架入门之(二)
		在本篇文章中,没有对细节进行处理的很好,有很多晓得细节的遗漏,本文只是一个简单的快速的入门 MyBatis的快速入门 导入MyBatis框架jar包 配置文件 SqlSessionFactoryBui ... 
- 初识Mybatis框架
		mybatis框架 主要是对数据库进行操作的 编写sql语句 使我们对数据库的crud操作更加简洁方便!! 1.使用mybatis框架 进行第一个项目 查询数据库 并返回数据 :(简单) (1)搭建 ... 
- MyBatis框架的使用及源码分析(二) 配置篇 SqlSessionFactoryBuilder,XMLConfigBuilder
		在 <MyBatis框架中Mapper映射配置的使用及原理解析(一) 配置与使用> 的demo中看到了SessionFactory的创建过程: SqlSessionFactory sess ... 
- Mybatis框架-1
		1.Mybatis框架: Mybatis是一个半自动的对象关系映射(ORM),实现结果集的自动封装,sql写到配置文件中: Mybatis使用的是DTD约束. 2.Mybatis模块调用: 3.Sql ... 
- ssm(spring、springmvc、mybatis)框架整合
		第一次接触这3大框架,打算一个一个慢慢学,参照网上资料搭建了一个ssm项目,作为新手吃亏在jar包的导入上,比如jdbc DataSource配置的时候由于导入的jar包不兼容或者缺包导致项目无法正常 ... 
随机推荐
- ATX-UI自动化环境搭建
			基础环境准备(以下都是在Mac机上搭建的) 1.android sdk安装&配置 很完美的一个资源下载网:tools.android-studio.org,下载所需的包(我下的zip包直接解压 ... 
- 0507 构造代码块和static案例,接口interface
			0507构造代码块和static案例,接口interface [重点] 1.局部变量,成员变量,静态变量的特点 2.接口 接口语法:interface A {} 接口内的成员变量[缺省属性]publi ... 
- Spring MVC介绍和第一个例子
			1.Spring mvc概述 spring mvc是spring提供给web应用框架设计,实际上MVC框架是一个设计理念.它不仅存在java世界中而且广泛在于各类语言和开发中,包括web的前端应用.对 ... 
- PreparedStatement实现针对不同表的通用查询操作
			PreparedStatement实现针对不同表的通用查询操作:查询一样和多行 PreparedStatementQueryTest package com.aff.PreparedStatement ... 
- 【算法】单元最短路径之Bellman-Ford算法和SPFA算法
			SPFA是经过对列优化的bellman-Ford算法,因此,在学习SPFA算法之前,先学习下bellman-Ford算法. bellman-Ford算法是一种通过松弛操作计算最短路的算法. 适用条件 ... 
- ArcCore重构-打通Can各层ID配置
			https://mp.weixin.qq.com/s/JX7VZwyMqk_9iVMm_N2pxA https://mp.weixin.qq.com/s/5Y8Dt9j1-NQmnjfYhE19dg ... 
- 蓝桥杯(Java方法、详细解法分析)基础练习 阶乘计算
			问题描述 给定n和len,输出n!末尾len位. 输入格式 一行两个正整数n和len. 输出格式 一行一个字符串,表示答案.长度不足用前置零补全. 样例输入 6 5 样例输出 00720 数据规模和约 ... 
- Java实现 蓝桥杯 算法提高 GPA(暴力)
			试题 算法提高 GPA 问题描述 输入A,B两人的学分获取情况,输出两人GPA之差. 输入格式 输入的第一行包含一个整数n表示A的课程数,以下n行每行Si,Ci分别表示第i个课程的学分与A的表现. G ... 
- Java实现 LeetCode 363 矩形区域不超过 K 的最大数值和
			363. 矩形区域不超过 K 的最大数值和 给定一个非空二维矩阵 matrix 和一个整数 k,找到这个矩阵内部不大于 k 的最大矩形和. 示例: 输入: matrix = [[1,0,1],[0,- ... 
- tensorflow2.0学习笔记第二章第三节
			2.3激活函数sigmoid函数 f(x)= 1/(1 + e^-x)tf.nn.sigmoid(x)特点:(1)求导后的数值在0-0.25之间,链式相乘之后容易使得值趋近于0,形成梯度消失 (2)输 ... 
