上一节说了Mybatis的框架搭建和简单查询,这次我们来说一说用Mybatis进行基本的增删改操作;

 一、 插入一条数据

1、首先编写USER.XML(表的xml)使用insert元素,元素写在mapper中:

<insert id="insertitem" parameterType="cn.qkp.po.user">
INSERT INTO user(username,birthday,sex,address) VALUES(#{username},#{ birthday},#{sex},#{address})
</insert>

注意:这里的parameterType使用了实体对象的类型。因为#{}和${}可以接收pojo数据,可以使用OGNL解析出pojo的属性值;如:#{username}为获取pojo中username的属性值,切记使用实体对象类型,在大括号中要保持数据一致;

2、在运行java文件中的代码(MybatisFrist.java中):

    @Test
public void start3(){
SqlSession session = sqlsessionfactory.openSession();//打开SqlSession
User user = new User();//创建实体对象
user.setUsername("mylydg");
user.setSex("1");
user.setBirthday(new Date());
session.insert("test.insertUser", user);//执行插入
session.commit();//提交事务
session.close();//关闭连接
}

以上便是基本的数据插入操作,使用对象来操作Mybatis进行插入;

PS:拓展(如何获得插入数据的主键返回)?

看如下代码操作:

1.1、在insert元素中使用selectKey元素

<insert id="insertitem" parameterType="cn.qkp.pojo.user">
<!-- 1、语句select LAST_INSERT_ID()为查找最后插入元素的id
2、order属性表示相对insert语句在什么时候执行,有两个参数"AFTER"之后和"BEFORE"之前
3、resultType属性表示返回值的类型
4、keyProperty表示返回到的属性,切记要与insert中的parameterType类型的值相同,它会把值返回给parameterType对象
-->
<selectKey order="AFTER" resultType="int" keyProperty="id">
select LAST_INSERT_ID()
</selectKey>

1.2、在运行java文件中的代码(MybatisFrist.java中)直接通过之前传入的对象的user.Id获得即可

    @Test
public void start3(){
SqlSession session = sqlsessionfactory.openSession();//打开SqlSession
User user = new User();//创建实体对象
user.setUsername("mylydg");
user.setSex("1");
user.setBirthday(new Date());
session.insert("test.insertUser", user);//执行插入
session.commit();//提交事务
session.close();//关闭连接
System.out.println("the id ="+user.getId());//获得主键并打印
}

二、更新数据操作

1、在表xml(user.xml,写在mapper中):

    <update id="update" parameterType="cn.qkp.mybatis.po.User">
update user set username = #{username},sex = #{sex},birthday = #{birthday},address = #{address} where id=#{id}
</update>

2、在运行java文件中的代码(MybatisFrist.java中):

    @Test
public void update(){
//通过工厂类打开数据接口
SqlSession sqlsession = sqlsessionfactory.openSession();
//设置接收对象
User user = new User();;
user.setUsername("mylydg");
user.setSex("1");
user.setBirthday(new Date());
user.setAddress("the address");
user.setId(27);
try {
//查询数据selectOne为查询一条的方法第一个参数是user.xml中的namespace.id;第二个参数是user配置文件中的#{id}
sqlsession.update("test.update", user);
sqlsession.commit();
} catch (Exception e) {
// TODO: handle exception
}finally{
sqlsession.close();//读完要关闭sqlsession
}
System.out.println("the id ="+user.getId());//打印输出
}

运行方法后,则可以更新指定id的一条数据

三、删除一条数据的操作

1、在表xml文件(user.xml,写在mapper中):

    <delete id="delete" parameterType="int">
delete from user where id = #{id}
</delete>

2、在运行java文件中的代码(MybatisFrist.java中):

    @Test
public void delete(){
//通过工厂类打开数据接口
SqlSession sqlsession = sqlsessionfactory.openSession();
try {
//查询数据selectOne为查询一条的方法第一个参数是user.xml中的namespace.id;第二个参数是user配置文件中的#{id}
sqlsession.delete("test.delete", 27);
sqlsession.commit();
} catch (Exception e) {
// TODO: handle exception
}finally{
sqlsession.close();//读完要关闭sqlsession
}

运行方法后便可以删除指定id的一条数据。

以上就是Mybatis简单的增删改操作代码。谢谢!

JAVA之Mybatis基础入门二 -- 新增、更新、删除的更多相关文章

  1. JAVA之Mybatis基础入门--框架搭建与简单查询

    JAVA中,操作数据库有JDBC.hibernate.Mybatis等技术,今天整理了下,来讲一讲下Mybatis.也为自己整理下文档: hibernate是一个完全的ORM框架,是完全面向对象的.但 ...

  2. MyBatis基础入门《二十》动态SQL(foreach)

    MyBatis基础入门<二十>动态SQL(foreach) 1. 迭代一个集合,通常用于in条件 2. 属性 > item > index > collection : ...

  3. MyBatis基础入门《十二》删除数据 - @Param参数

    MyBatis基础入门<十二>删除数据 - @Param参数 描述: 删除数据,这里使用了@Param这个注解,其实在代码中,不使用这个注解也可以的.只是为了学习这个@Param注解,为此 ...

  4. MyBatis基础入门《二》Select查询

    MyBatis基础入门<二>Select查询 使用MySQL数据库,创建表: SET NAMES utf8mb4; ; -- ---------------------------- -- ...

  5. MyBatis基础入门《十三》批量新增数据

    MyBatis基础入门<十三>批量新增数据 批量新增数据方式1:(数据小于一万) xml文件 接口: 测试方法: 测试结果: =============================== ...

  6. MyBatis基础入门《六》Like模糊查询

    MyBatis基础入门<六>Like模糊查询 描述: 未改动的文件,不再粘贴出来.项目中SQL的xml映射文件重要标签如下: mapper namespace cache 配置给定命令空间 ...

  7. MyBatis基础入门《三》Select查询集合

    MyBatis基础入门<三>Select查询集合 描述: 代码新增了一个MybatisUtil工具类,查询数据库返回集合的时候,接收数据的三种方式.由于代码会渐渐增多,未涉及改动过的文件不 ...

  8. MyBatis基础入门《十九》动态SQL(set,trim)

    MyBatis基础入门<十九>动态SQL(set,trim) 描述: 1. 问题 : 更新用户表数据时,若某个参数为null时,会导致更新错误 2. 分析: 正确结果: 若某个参数为nul ...

  9. MyBatis基础入门《十五》ResultMap子元素(collection)

    MyBatis基础入门<十五>ResultMap子元素(collection) 描述: 见<MyBatis基础入门<十四>ResultMap子元素(association ...

随机推荐

  1. Codeforces 977D: Divide by three, multiply by two(暴力)

    题意 有nnn个无序的数,对这些数进行排列,要求ai=3×ai+1a_i=3\times a_{i+1}ai​=3×ai+1​或2×ai=ai+12\times a_i=a_{i+1}2×ai​=ai ...

  2. NSURLConnectionDataDelegate

    #pragma mark-NSURLConnectionDataDelegate //收到回应 - (void)connection:(NSURLConnection *)connection did ...

  3. 常见JS倒计时

    https://www.jb51.net/Special/356.htm  //JS倒计时  <button onclick="resetTime(60)">启动倒计时 ...

  4. flume安装配置

    1 下载安装包并解压 下载地址:http://flume.apache.org/download.html 解压:tar zxvf apache-flume-1.8.0-bin.tar.gz 2 配置 ...

  5. python leetcode 颠倒二进制数

    我的做法,,这个题在于必须补0 def reverseBits(n): num=32-len(bin(n)[2:]) m = bin(n)[2:][::-1] if num > 0: for i ...

  6. 交换排序-C#实现

    交换排序包括:冒泡排序和快速排序 具体代码如下: 冒泡排序: /// <summary> /// 冒泡排序 /// 稳定性:稳定 /// 时间复杂度:O(n2) /// </summ ...

  7. java web(六):mybatis之一对一、一对多、多对多映射

    前言: 百度百科: MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可 ...

  8. java_oop_三大特性

    继承    概念    优点    语法    使用        有些父类成员不能被继承        private成员变量和方法        子类与父类不在同包,使用默认访问权限的成员     ...

  9. [转]在ASP.NET Core中使用百度在线编辑器UEditor

    原文地址:https://www.cnblogs.com/durow/p/6116393.html 0x00 起因 最近需要一个在线编辑器,之前听人说过百度的UEditor不错,去官网下了一个.不过服 ...

  10. MongoDB Sharding分片 shell 脚本

    #!/bin/sh CONFIG_NAME=$ CONFIG_PORT=$ SERIAL_NUM=$ STORAGE_HOME=$ if [ ! -n "$CONFIG_NAME" ...