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.注意事项

  • 标签不要匹配错误,对应的idparameterTyperesultType不可以错误
  • 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("张");

上述两种操作,都可以查出对姓名中含有的进行查询。

%的不同含义:

  1. %abc 表示以abc结尾的所有字符串;
  2. abc% 表示以abc 开头的所有字符串;
  3. %abc% 表示所有包含abc的字符串;

个人博客为:

MoYu's Github Blog

MoYu's Gitee Blog

Mybatis-02 CRUD的更多相关文章

  1. MyBatis:CRUD功能

    在前面已经自动生成了mapper和pojo,接下来我们实现mybatis的CRUD功能,先新建service.controller层的方法. 这里的sid是一个开源的id生成类,写完后,我们还需要在启 ...

  2. Mybatis的CRUD案例

    一.Mybatis增删改查案例 上一节<Mybatis入门和简单Demo>讲了如何Mybatis的由来,工作流程和一个简单的插入案例,本节主要继上一讲完整的展示Mybatis的CRUD操作 ...

  3. 【MyBatis】MyBatis实现CRUD操作

    1.实现基本CRUD功能 使用MyBatis对数据完整的操作,也就是CRUD功能的实现.根据之前的内容,要想实现CRUD,只需要进行映射文件的配置. 范例:修改EmpMapper.xml文件,实现CR ...

  4. SpringBoot 整合 Mybatis 进行CRUD测试开发

    今天来和大家分享下 Spring Boot 整合 MyBatis 的 CRUD 测试方法开发.因为 MyBaits 有两种开发形式,一种基于注解,一种基于 xml . SpringBoot配置文件也有 ...

  5. 基于mybatis的CRUD

    u  基于Mybatis的CRUD u  掌握MyBatis的结果类型-resultMap和resultType u  掌握MyBatis的参数类型 u  掌握#和$两种语法 1      基于myb ...

  6. 05 Mybatis的CRUD操作和Mybatis连接池

    1.CRUD的含义 CRUD是指在做计算处理时的增加(Create).读取(Retrieve)(重新得到数据).更新(Update)和删除(Delete)几个单词的首字母简写.主要被用在描述软件系统中 ...

  7. 03 Mybatis:05.使用Mybatis完成CRUD

    mybatis框架:共四天 明确:我们在实际开发中,都是越简便越好,所以都是采用不写dao实现类的方式.不管使用XML还是注解配置. 第二天:mybatis基本使用 mybatis的单表crud操作 ...

  8. mybatis(CRUD)

    3.mybatis(CRUD) 有了mybatis,我们要对数据库进行增删改查只需要操作接口和mapper.xml文件,然后进行测试就可以了. 实例代码如下: 接口 public interface ...

  9. Hello Mybatis 02 mybatis generator

    接着上一篇文章通过Mybatis完成了一个User的CRUD的功能之后,这篇开始还需要建立一个Blog类,这样就可以模拟一个简单的微博平台的数据库了. 数据库准备 首先我们,还是需要在数据库中新建一个 ...

  10. MyBatis之CRUD

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

随机推荐

  1. jmeter-并发及常数吞吐量定时器设定

  2. 编码占用的字节数 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 ...

  3. Redis 底层数据结构设计

    10万+QPS 真的只是因为单线程和基于内存?_Howinfun的博客-CSDN博客_qps面试题 https://blog.csdn.net/Howinfun/article/details/105 ...

  4. Apache HTTP Server 映射URL到文件系统(翻译)

    div.example { background-color: rgba(229, 236, 243, 1); color: rgba(0, 0, 0, 1); padding: 0.5em; mar ...

  5. C# 8.0 可空(Nullable)给ASP.NET Core带来的坑

    Nullable reference types(可为空引用类型) 可为空引用类型不讲武德 C#8.0 引入了"可为空引用类型"和"不可为空引用类型",使我们能 ...

  6. 【Azure Developer】使用Microsoft Graph API创建用户时候遇见“401 : Unauthorized”“403 : Forbidden”

    问题描述 编写Java代码调用Mircrosoft Graph API创建用户时,分别遇见了"401 : Unauthorized"和"403 : Forbidden&q ...

  7. Python学习【第6篇】:集合的定义和基本方法

    1.概念 (1)不同元素组成 例: s = {1,2,3,4,4,4,4,4,4}print(s)运行结果:{1, 2, 3, 4}因为是不同元素组成,因此去重了 (2)无序 例: s = {&quo ...

  8. LOJ10159旅游规划

    题目描述 W 市的交通规划出现了重大问题,市政府下定决心在全市各大交通路口安排疏导员来疏导密集的车流.但由于人员不足,W 市市长决定只在最需要安排人员的路口安排人员. 具体来说,W 市的交通网络十分简 ...

  9. http、https比较

    HTTP 超文本传输协议,是一个基于请求与响应,无状态的,应用层的协议,常基于TCP/IP协议传输数据, 互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准. 设计HTTP的初衷是 ...

  10. MySQL按照(windows)及常用命令

    MySQL语法规则 关键字与函数名称全部大写 数据库名称.表名称.字段名称全部小写 SQL 语句必须以分号结尾 MySQL安装 MySQL配置: 在cmd中输入 mysql,提示['mysql' 不是 ...