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目录下),该文件主要配置数据库连接,事务,二级 ...
随机推荐
- Ansible自动化运维工具的使用
Ansible自动化运维工具的使用 host lnventory 管理主机 ip root账号密码 ssh端口 core mod ...
- Uber三代API 生命周期管理平台实现 Uber
Uber三代API 生命周期管理平台实现 - InfoQ https://www.infoq.cn/article/H8Ml6L7vJGQz0efpWvyJ Uber 三代 API 生命周期管理平台实 ...
- MySQL的sql_mode模式 解决数据Incorrect DECIMAL value: ‘0’ for column ” at row -1问题
https://blog.csdn.net/weiwoyonzhe/article/details/85177294?depth_1-utm_source=distribute.pc_relevant ...
- C#编写一个在asp.net core 3.1下的简单的corn模式的计划任务和一个更简单的定时器类
asp.net core 下,新增了一个BackgroundService用来实现能在后台跑一个长久运行的任务,因此,也可以用来替换掉原来使用的static的Timer组件, Timer组件主要有以下 ...
- 最简单直接地理解Java软件设计原则之单一职责原则
理论性知识 定义 单一职责原则, Single responsibility principle (SRP): 一个类,接口,方法只负责一项职责: 不要存在多余一个导致类变更的原因: 优点 降低类的复 ...
- PL/SQL 学习分享(续)
事务 事务的概述 事务的特性 回滚点 事务实例练习 动态SQL 动态SQL概述 动态SQL应用场合 动态SQL的执行语法 绑定变量 动态SQL创建表 动态SQL绑定变量 动态SQL综合案例添加数据 使 ...
- java+js正则表达式获取URL(带端口)域名
function isPassUrl(remoteLoginUrl){ var flag = false; var passUrlStr = document.getElementById(" ...
- linux常用命令(shell脚本常用命令)(grep、cut、sort、uniq、seq、tr、basename、dirname)
本章命令: 1 2 3 4 5 6 grep cut sort uniq seq tr 1.grep 作用:过滤文本内容 选项 描述 -E :--extended--regexp 模式是扩展正则表达式 ...
- phpstorm如何设置字体
最近上手了一款轻量级IDE phpStorm,可是就在调整编辑器字体大小时却遇到问题了, 发现字体大小无法调整,另外还有字体大小往左还有个"√",始终无法去掉,这个勾限制了字体系列 ...
- C++ 标准模板库(STL):map
目录 4. map 4.1 map的定义 4.2 map容器内元素的访问 4.3 map常用函数实例解析 4.4 map的常见用途 4. map map翻译为映射,也是常用的STL容器. 在定义数组时 ...