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包不兼容或者缺包导致项目无法正常 ...
随机推荐
- Kubernetes Ingress简单入门
作者:Nick Ramirez 原文链接:https://thenewstack.io/kubernetes-ingress-for-beginners/ 本文转载自Rancher Labs 不知道你 ...
- 继承性与super的使用练习
练习1: Account: package com.aff.sup; public class Account { private int id;// 账号 private double balanc ...
- idea 开发 webpack项目时,只要已加入SVN 版本控制 一直 updating 问题解决
场景描述,这是一个困扰我很久的一个问题,一直百度,都解决不了,今天自己通过设置终于解决了,慢慢的都是辛酸泪,赶快写个笔记记录一下. 对于idea 开发 vue-cli+webpack 项目,idea ...
- Rocket - diplomacy - LazyModuleImpLike
https://mp.weixin.qq.com/s/gDbUto1qd7uWbpnxovr5pg 介绍LazyModuleImpLike类的实现. 1. wrapper LazyMo ...
- Rocket - config - View
https://mp.weixin.qq.com/s/b5o3s2DgqOz3-iK8FqPeLQ 介绍配置相关的基础类及其继承关系. 参考链接: https://github.com/fre ...
- Java实现 LeetCode 628 三个数的最大乘积(暴力大法)
628. 三个数的最大乘积 给定一个整型数组,在数组中找出由三个数组成的最大乘积,并输出这个乘积. 示例 1: 输入: [1,2,3] 输出: 6 示例 2: 输入: [1,2,3,4] 输出: 24 ...
- Java实现 LeetCode 470 用 Rand7() 实现 Rand10()
470. 用 Rand7() 实现 Rand10() 已有方法 rand7 可生成 1 到 7 范围内的均匀随机整数,试写一个方法 rand10 生成 1 到 10 范围内的均匀随机整数. 不要使用系 ...
- Java实现 LeetCode 98 验证二叉搜索树
98. 验证二叉搜索树 给定一个二叉树,判断其是否是一个有效的二叉搜索树. 假设一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数. 节点的右子树只包含大于当前节点的数. 所有左子树和右 ...
- 运行ABP(asp.net core 3.X+Vue)提示'OFFSET' 附近有语法错误。 在 FETCH 语句中选项 NEXT 的用法无效。
创建ASP.NET Boilerplate,还原数据库和启动客户端 这里就略过,具体参考 ABP框架(asp.net core 2.X+Vue)模板项目学习之路(一) ASP.NET Boilerpl ...
- 3.keras-简单实现Mnist数据集分类
keras-简单实现Mnist数据集分类 1.载入数据以及预处理 import numpy as np from keras.datasets import mnist from keras.util ...