Mybatis-02 CRUD
Mybatis-02 CRUD
CRUD
先来简单回顾一下之前的准备步骤:
- 创建一个
数据库
,并加入数据 - 创建一个
Maven
项目 - 导入对应的
依赖
- 创建
Pojo
类和Dao
类 - 写出
Mybatis
工具类 - 配置
mybatis.xml
完成以上步骤之后,就可以进行测试了。
具体可以查看本博客文章:Mybatis-01
1.select
查询
操作
1.1 Dao类
public interface UserDao {
//通过id查user
public List<user> getUserByID(int id);
}
<?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="com.Dao.UserDao">
<select id="getUserByID" resultType="pojo.user" parameterType="int">
select * from mybatis.user where id=#{id}
</select>
</mapper>
1.2 测试
public class Test {
@org.junit.Test
public void test(){
//第一步:获得SqlSession对象
SqlSession sqlSession = mybatis_util.getSqlSession();
//执行SQL
UserDao mapper = sqlSession.getMapper(UserDao.class);
List<user> userList = mapper.getUserByID(1); //查询id=1的user
for (user user : userList) {
System.out.println(user);
}
//关闭SqlSession
sqlSession.close();
}
}
查看id=1
的user:
2.Insert
插入
操作
2.1 Dao类
public interface UserDao {
public int insertuser(user user);
}
<?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="com.Dao.UserDao">
<insert id="insertuser" parameterType="pojo.user">
insert into mybatis.user(id,name,pwd) values (#{id},#{name},#{pwd})
</insert>
</mapper>
2.2 测试
public class Test {
@org.junit.Test
public void test(){
//第一步:获得SqlSession对象
SqlSession sqlSession = mybatis_util.getSqlSession();
//执行SQL
UserDao mapper = sqlSession.getMapper(UserDao.class);
user user1 = new user(4, "李", "1456");
int i = mapper.insertuser(user1);
System.out.println(i);
sqlSession.commit(); //不同于查询 增删改都需要提交事务
List<user> userList = mapper.getUserList();
for (user user : userList) {
System.out.println(user);
}
//关闭SqlSession
sqlSession.close();
}
}
创建一个新user
,id:1、name:李、pwd:1456,通过sql操作,加入数据库。
i
输出1
,说明成功。
最后输出全部,查看数据库中全部user
。
3.delete
3.1 Dao类
public interface UserDao {
public int deluser(int id);
}
<?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="com.Dao.UserDao">
<delete id="deluser" parameterType="int">
delete from mybatis.user where id = #{id}
</delete>
</mapper>
3.2测试
public class Test {
@org.junit.Test
public void test(){
//第一步:获得SqlSession对象
SqlSession sqlSession = mybatis_util.getSqlSession();
//执行SQL
UserDao mapper = sqlSession.getMapper(UserDao.class);
int i = mapper.deluser(2);
System.out.println(i);
sqlSession.commit(); //不同于查询 增删改都需要提交事务
List<user> userList = mapper.getUserList();
for (user user : userList) {
System.out.println(user);
}
//关闭SqlSession
sqlSession.close();
}
}
删除id=2
的user。
i
输出1
,说明成功。
最后输出全部,查看数据库中全部user
。
4.update
4.1 Dao类
public interface UserDao {
public int updateuser(user user);
}
<?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="com.Dao.UserDao">
<update id="updateuser" parameterType="pojo.user">
update mybatis.user set name = #{name},pwd=#{pwd} where id = #{id}
</update>
</mapper>
4.2测试
public class Test {
@org.junit.Test
public void test(){
//第一步:获得SqlSession对象
SqlSession sqlSession = mybatis_util.getSqlSession();
//执行SQL
UserDao mapper = sqlSession.getMapper(UserDao.class);
user user1 = new user(4, "李1", "145600");
int i = mapper.updateuser(user1);
System.out.println(i);
sqlSession.commit();
List<user> userList = mapper.getUserList();
for (user user : userList) {
System.out.println(user);
}
//关闭SqlSession
sqlSession.close();
}
}
更新id=4
的user。
i
输出1
,说明成功。
最后输出全部,查看数据库中全部user
。
5.注意事项
标签
不要匹配错误,对应的id
、parameterType
、resultType
不可以错误- resource中的
mybatis配置文件
一定要绑定mapper
- 程序配置文件必须
符合规范
- 依赖没有成功加入,可以
手动加入
资源文件
未打开,配置文件中加入<build></build>
内容
万能Map
实体类,或者数据库中的表,字段或者参数过多,我们应当考虑使用Map
即:parameterType="map"
insert
操作进行举例:
1.Dao类
public interface UserDao {
public int insertuser(Map<String,Object> map);
}
<?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="com.Dao.UserDao">
<insert id="insertuser" parameterType="map">
insert into mybatis.user(id,name,pwd) values (#{id},#{name},#{pwd})
</insert>
</mapper>
2.测试
public class Test {
@org.junit.Test
public void test(){
//第一步:获得SqlSession对象
SqlSession sqlSession = mybatis_util.getSqlSession();
//执行SQL
UserDao mapper = sqlSession.getMapper(UserDao.class);
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("id",5);
map.put("name","map");
map.put("pwd","1111");
int i = mapper.insertuser(map);
System.out.println(i);
sqlSession.commit();
List<user> userList = mapper.getUserList();
for (user user : userList) {
System.out.println(user);
}
//关闭SqlSession
sqlSession.close();
}
}
创建一个Map
,在其中加入对应的数据
,通过sql操作,加入数据库。
i
输出1
,说明成功。
最后输出全部,查看数据库中全部user
。
模糊查询
在此,不进行具体操作,再次举例两中方式:
1.传值时加入%
该功能只是更改sql语句
,并在传值时加入%
即可。
sql语句:
<select id="getUserByID" resultType="pojo.user" parameterType="string">
select * from mybatis.user where name like #{name}
</select>
Test类:
List<user> userList = mapper.getUserByName("%张%");
2.sql语句时加入%
该功能只是更改sql语句
,在语句中加入%
,并正常传值时即可。
sql语句:
<select id="getUserByID" resultType="pojo.user" parameterType="string">
select * from mybatis.user where name like "%"#{name}"%"
</select>
Test类:
List<user> userList = mapper.getUserByName("张");
上述两种操作,都可以查出对姓名中含有张
的进行查询。
%
的不同含义:
- %abc 表示以
abc结尾
的所有字符串; - abc% 表示以
abc 开头
的所有字符串; - %abc% 表示
所有包含abc
的字符串;
个人博客为:
MoYu's Github Blog
MoYu's Gitee Blog
Mybatis-02 CRUD的更多相关文章
- MyBatis:CRUD功能
在前面已经自动生成了mapper和pojo,接下来我们实现mybatis的CRUD功能,先新建service.controller层的方法. 这里的sid是一个开源的id生成类,写完后,我们还需要在启 ...
- Mybatis的CRUD案例
一.Mybatis增删改查案例 上一节<Mybatis入门和简单Demo>讲了如何Mybatis的由来,工作流程和一个简单的插入案例,本节主要继上一讲完整的展示Mybatis的CRUD操作 ...
- 【MyBatis】MyBatis实现CRUD操作
1.实现基本CRUD功能 使用MyBatis对数据完整的操作,也就是CRUD功能的实现.根据之前的内容,要想实现CRUD,只需要进行映射文件的配置. 范例:修改EmpMapper.xml文件,实现CR ...
- SpringBoot 整合 Mybatis 进行CRUD测试开发
今天来和大家分享下 Spring Boot 整合 MyBatis 的 CRUD 测试方法开发.因为 MyBaits 有两种开发形式,一种基于注解,一种基于 xml . SpringBoot配置文件也有 ...
- 基于mybatis的CRUD
u 基于Mybatis的CRUD u 掌握MyBatis的结果类型-resultMap和resultType u 掌握MyBatis的参数类型 u 掌握#和$两种语法 1 基于myb ...
- 05 Mybatis的CRUD操作和Mybatis连接池
1.CRUD的含义 CRUD是指在做计算处理时的增加(Create).读取(Retrieve)(重新得到数据).更新(Update)和删除(Delete)几个单词的首字母简写.主要被用在描述软件系统中 ...
- 03 Mybatis:05.使用Mybatis完成CRUD
mybatis框架:共四天 明确:我们在实际开发中,都是越简便越好,所以都是采用不写dao实现类的方式.不管使用XML还是注解配置. 第二天:mybatis基本使用 mybatis的单表crud操作 ...
- mybatis(CRUD)
3.mybatis(CRUD) 有了mybatis,我们要对数据库进行增删改查只需要操作接口和mapper.xml文件,然后进行测试就可以了. 实例代码如下: 接口 public interface ...
- Hello Mybatis 02 mybatis generator
接着上一篇文章通过Mybatis完成了一个User的CRUD的功能之后,这篇开始还需要建立一个Blog类,这样就可以模拟一个简单的微博平台的数据库了. 数据库准备 首先我们,还是需要在数据库中新建一个 ...
- MyBatis之CRUD
1 mybatis框架介绍 1.1回顾jdbc操作数据库的过程 1.2 mybatis开发步骤 A.提供一个SqlMapperConfig.xml(src目录下),该文件主要配置数据库连接,事务,二级 ...
随机推荐
- jmeter-并发及常数吞吐量定时器设定
- 编码占用的字节数 1 byte 8 bit 1 sh 1 bit 中文字符编码 2. 字符与编码在程序中的实现 变长编码 Unicode UTF-8 转换 在网络上传输 保存到磁盘上 bytes
小结: 1.UNICODE 字符集编码的标准有很多种,比如:UTF-8, UTF-7, UTF-16, UnicodeLittle, UnicodeBig 等: 2 服务器->网页 utf-8 ...
- Redis 底层数据结构设计
10万+QPS 真的只是因为单线程和基于内存?_Howinfun的博客-CSDN博客_qps面试题 https://blog.csdn.net/Howinfun/article/details/105 ...
- Apache HTTP Server 映射URL到文件系统(翻译)
div.example { background-color: rgba(229, 236, 243, 1); color: rgba(0, 0, 0, 1); padding: 0.5em; mar ...
- C# 8.0 可空(Nullable)给ASP.NET Core带来的坑
Nullable reference types(可为空引用类型) 可为空引用类型不讲武德 C#8.0 引入了"可为空引用类型"和"不可为空引用类型",使我们能 ...
- 【Azure Developer】使用Microsoft Graph API创建用户时候遇见“401 : Unauthorized”“403 : Forbidden”
问题描述 编写Java代码调用Mircrosoft Graph API创建用户时,分别遇见了"401 : Unauthorized"和"403 : Forbidden&q ...
- Python学习【第6篇】:集合的定义和基本方法
1.概念 (1)不同元素组成 例: s = {1,2,3,4,4,4,4,4,4}print(s)运行结果:{1, 2, 3, 4}因为是不同元素组成,因此去重了 (2)无序 例: s = {&quo ...
- LOJ10159旅游规划
题目描述 W 市的交通规划出现了重大问题,市政府下定决心在全市各大交通路口安排疏导员来疏导密集的车流.但由于人员不足,W 市市长决定只在最需要安排人员的路口安排人员. 具体来说,W 市的交通网络十分简 ...
- http、https比较
HTTP 超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据, 互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准. 设计HTTP的初衷是 ...
- MySQL按照(windows)及常用命令
MySQL语法规则 关键字与函数名称全部大写 数据库名称.表名称.字段名称全部小写 SQL 语句必须以分号结尾 MySQL安装 MySQL配置: 在cmd中输入 mysql,提示['mysql' 不是 ...