1.编写接口

2.编写对应的mapper种的sql语句

3.测试

接口

public interface UserDao {
List<User> getUserList(); //根据ID查询用户
User getUserId(int id); //增加一个用户
int addUser(User user); //修改一个用户
int update_User(User user); //删除一个用户
int deleteUser(int id);
}

创建相关的实体类的时候,属性要和数据库对应的字段相同(一一对应),方便后面 传入对象 对数据库进行更改

比如数据库字段id name age, 创建的实体类User 属性就包括 int id , String name , int age 也包括相关的set get 方法

增删改查用特有的方式写到xml文件中

<?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接口-->
<mapper namespace="com.ljm.dao.UserDao(接口路径)"> </mapper>

增

 <insert id="addUser" parameterType="com.ljm.pojo.User" >
insert into mybatis.user(name,age) value (#{name},#{age});
</insert>

    public void test_addUser(){
SqlSession sqlSession=MybatisUtils.getSqlSession();
UserDao mapper=sqlSession.getMapper(UserDao.class);
int number = mapper.addUser(new User("韩红",21));
System.out.println(number);
//必须要提交事务
sqlSession.commit();
sqlSession.close();

删

   <delete id="deleteUser" parameterType="int">
delete from mybatis.user where id=#{id}
</delete> <!-- 这里实测 对象属性中没有id这一项 , 仅仅传递一个值(不是对象)的话
这样也能成功删除 -->

    public void test_deleteUser(){
SqlSession sqlSession=MybatisUtils.getSqlSession();
UserDao mapper=sqlSession.getMapper(UserDao.class);
int number = mapper.deleteUser(5);
System.out.println(number);
//必须要提交事务
sqlSession.commit();
sqlSession.close();
}

改

    <update id="update_User" parameterType="com.ljm.pojo.User">
update mybatis.user
set age =#{age},name =#{name}
where id=6
</update> <!-- update: where id=6 是对象中的属性缺少与数据库字段对应(比如自增ID),可以直接再此写上数值 ,不推荐 ,还是对象属性全部覆盖字段会比较好 如 where id=#{id}
-->

    public void test_updateUser(){
SqlSession sqlSession=MybatisUtils.getSqlSession();
UserDao mapper=sqlSession.getMapper(UserDao.class);
int number = mapper.update_User(new User("韩跑跑",28));
System.out.println(number);
//必须要提交事务
sqlSession.commit();
sqlSession.close(); }

查(传入是对象的时候,也依然使用#{属性值}来取值)

<!--    parameterType 输入参数的类型-->

 <select id="getUserId" resultType="com.ljm.pojo.User" parameterType="int" >
select * from mybatis.user where id =#{id}
</select> <!-- 单传一个值的话(不是对象),对象中没有id这个属性也行-->

    public void test_getUserbyID(){
SqlSession sqlSession=MybatisUtils.getSqlSession();
UserDao mapper=sqlSession.getMapper(UserDao.class);
User user = mapper.getUserId(3);
System.out.println(user);
sqlSession.close();
}

模糊查询

自动提交事务:true

    public static SqlSession getSqlSession(){
// SqlSession sqlSession= sqlSessionFactory.openSession();
// return sqlSession;
//优化 true自动提交()增删改
return sqlSessionFactory.openSession(true);
}

万能的Map

当实体类或者数据库中的表,字段过多, 需要传递多个参数, 就可以使用Map(或者注解)

遇到查询的时候,标签属性加上返回类型 resultMap=""

int getUserCount(Map<String, String> map);

    <insert id="addUser2" parameterType="map" >
insert into mybatis.user(name,age) value (#{n},#{a});
</insert> <!-- value (#{n},#{a} 里面的n a 对应传的参里面的 n a -->

    public void test_addUser2(){
SqlSession sqlSession=MybatisUtils.getSqlSession();
UserDao mapper=sqlSession.getMapper(UserDao.class);
Map<String, Object> map = new HashMap<>();
map.put("n","卫龙");
map.put("a","18");
//对应XML里面的n a
int number = mapper.addUser2(map);
System.out.println(number);
//必须要提交事务
sqlSession.commit();
sqlSession.close(); }

模糊查询

1.在JAVA代码中传递通配符% %

List<User> userList = mapper.getUserLike("%卫%");

2.在SQL拼接使用通配符(推荐)

    <select id="getUserLike" resultType="com.ljm.pojo.User" >
select * from mybatis.user where name like "%"#{s}"%"
</select> <!-- <select id="getUserLike" resultType="com.ljm.pojo.User" >-->
<!-- select * from mybatis.user where name like CONCAT('%',#{s},'%')-->
<!-- </select>-->

增删改查- 万能map- 模糊查询的更多相关文章

  1. JavaWeb系统(增删改查、多条件查询功能)

    该系统是一个简单的青年服务管理系统,主要包括了较完整的常用的增删改查以及多条件查询功能,对于初学者有很大帮助. 下面是相关的Java代码.jsp页面.以及数据库的创建和相关表的设计 java代码 首先 ...

  2. oracle初试、函数、增删改查、多表查询

      安装oracle后的测试以及解锁账户                  安装后打开命令行,输入 sqlplus 回车后会提示输入用户名,输入 sys或者system 回车后输入密码,密码为安装or ...

  3. Django中多表的增删改查操作及聚合查询、F、Q查询

    一.创建表 创建四个表:书籍,出版社,作者,作者详细信息 四个表之间关系:书籍和作者多对多,作者和作者详细信息一对一,出版社和书籍一对多 创建一对一的关系:OneToOne("要绑定关系的表 ...

  4. PHP-----练习-------租房子-----增删改查,多条件查询

    练习-------租房子-----增删改查,多条件 一 .题目要求: 二 .做法: [1]建立数据库 [2]封装类文件------DBDA.class.php <?php class DBDA ...

  5. 潭州课堂25班:Ph201805201 django框架 第六课 模型类增删改查,常用 的查询矣查询条件 (课堂笔记)

    在视图函数中写入增删改查的方法 增: 在 urls 中配置路径 : 查: 1: 在后台打印数据 在模型类中添加格式化输出 : QuerySet,反回的是个对象,可以按索引聚会,用 for 循环,, 找 ...

  6. mysql增删改查、连表查询、常用操作

    一.建表 1.最简单的建表CREATE TABLE user(id int,name char(20),age int); 2.带主键带注释和默认值创建表CREATE TABLE  user(id I ...

  7. mybatis:开发环境搭建--增删改查--多表联合查询(多对一)

    什么是mybatisMyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索.MyBatis使用简单的XML或 ...

  8. MySQL:记录的增删改查、单表查询、约束条件、多表查询、连表、子查询、pymysql模块、MySQL内置功能

    数据操作 插入数据(记录): 用insert: 补充:插入查询结果: insert into 表名(字段1,字段2,...字段n) select (字段1,字段2,...字段n) where ...; ...

  9. MyBatis的使用增删改查(两种分页查询)

    文件目录 写一下每个文件的代码  UserDao.java package cn.zys.dao; import java.io.IOException; import java.util.List; ...

随机推荐

  1. Collection框架中实现比较要实现什么接口?

    Java集合框架中需要比较大小的集合包括TreeMap.TreeSet,其中TreeMap会根据key-value对中key的大小进行排序,而TreeSet则会对集合元素进行排序. 因此TreeMap ...

  2. C printf格式化输出

    转载:https://blog.csdn.net/wucz122140729/article/details/98434702 格式化输出       格式化输出的函数有printf.sprintf和 ...

  3. 什么是 bean 装配?

    装配,或 bean 装配是指在 Spring 容器中把 bean 组装到一起,前提是容器需要 知道 bean 的依赖关系,如何通过依赖注入来把它们装配到一起.

  4. java的泛型hei

    泛型是一种未知的数据类型,当我们不知道使用什么数据类型的时候就可以使用泛型 泛型也可以看出是一个变量,用来接受数据类型 E e :Element 元素 T t: Type 类型 /* Collecti ...

  5. 打败算法 —— 删除链表的倒数第n个结点

    本文参考 出自LeetCode上的题库 -- 删除链表的倒数第n个结点,官方的双指针解法没有完全符合"只遍历一遍链表"的要求,本文给出另一种双指针解法 https://leetco ...

  6. Java根路径设置(在获取本地路径时会获取到这个文件夹,,这样就可以专门放配置文件了)

    在获取本地路径时会获取到这个文件夹,,这样就可以专门放配置文件了

  7. 视觉SLAM十四讲:从理论到实践 两版 PDF和源码

    视觉SLAM十四讲:从理论到实践 第一版电子版PDF 链接:https://pan.baidu.com/s/1SuuSpavo_fj7xqTYtgHBfw提取码:lr4t 源码github链接:htt ...

  8. JS+CSS实现数字滚动

    最近在实现一个显示RGB颜色数值的动画效果时,尝试使用了writing-mode(书写模式)及 text-orientation来实现文字的竖直方向的排列,并借助CSS的transition(过渡)来 ...

  9. 破界!Omi生态omi-mp发布,用小程序开发生成Web

    omi-mp 是什么 Omi 框架是微信支付线研发部和 AlloyTeam 开源的通用 Web 组件化框架,基于 Web Components,用来开发 PC.手机浏览器或者微信.手Q webview ...

  10. JavaScript 小技巧 数组去重

    const array = [1, 2, 3, 3, 5, 5, 1]; const uniqueArray = [...new Set(array)]; console.log(uniqueArra ...