Mybatis入门教程之新增、更新、删除功能

上一节说了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入门教程之新增、更新、删除功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

(0)

相关推荐

  • Mybatis 插入和删除批处理操作

    在操作数据库时,经常会碰到批量插入.批量删除的情况,直接执行SQL语句还好做一点,当使用Mybatis进行批量插入.批量删除时会有一些问题.下面对使用Mybatis批量插入,批量删除进行介绍. 1. 批量插入 Java代码: // Model: Test.java @Data public class Test { private String x; private String y; private String z; } // Mapper: TestMapper.java public v

  • MyBatis批量添加、修改和删除

    废话不多说了,直接步入正题了. 1.批量添加元素session.insert(String string,Object o) public void batchInsertStudent(){ List<Student> ls = new ArrayList<Student>(); for(int i = 5;i < 8;i++){ Student student = new Student(); student.setId(i); student.setName("

  • Mybatis批量删除数据操作方法

    MyBatis的作用我想不用多说,今天说说MyBatis中的批量删除操作.废话不多说,先给大家一段代码片段! <delete id="deleteByStandardIds"> delete from t_standard_catalog where standard_id in <foreach collection="array" item="standardId" open="(" close=&quo

  • Mybatis批量删除多表

    一. 这里主要考虑两种参数类型:数组或者集合. 而这点区别主要体现在EmpMapper.xml文件中标签的collection属性: 当collection="array"时,表名参数为数组; 当collection="list"时,表名参数为集合. 二. 注意: 无论Mybatis是与mysql数据库结合,还是与Oracle数据库,都同样适合如下设置与操作. 三. 具体示例如下: EmpMapper.xml: <!-- 批量删除员工信息 --> <

  • Mybatis入门教程之新增、更新、删除功能

    上一节说了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},

  • PHP操作redis实现的分页列表,新增,删除功能封装类与用法示例

    本文实例讲述了PHP操作redis实现的分页列表,新增,删除功能封装类与用法.分享给大家供大家参考,具体如下: <?php /* * redis 分页数据类库 */ class redisPage{ protected $_redis; protected $_redis_ip = '127.0.0.1'; //ip protected $_redis_port = 6379; //端口 protected $_redis_db = 0; //数据库号 protected $_hash_pref

  • Mybatis入门教程(四)之mybatis动态sql

    推荐阅读: MyBatis入门学习教程(一)-MyBatis快速入门  什么是动态SQL? 动态SQL有什么作用? 传统的使用JDBC的方法,相信大家在组合复杂的的SQL语句的时候,需要去拼接,稍不注意哪怕少了个空格,都会导致错误.Mybatis的动态SQL功能正是为了解决这种问题, 其通过 if, choose, when, otherwise, trim, where, set, foreach标签,可组合成非常灵活的SQL语句,从而提高开发人员的效率. 下面就去感受Mybatis动态SQL

  • 使用Bootstrap + Vue.js实现表格的动态展示、新增和删除功能

    一.写在前面 1. Bootstrap是一个由 Twitter 开发和维护的前端框架,目前很受欢迎,Bootstrap中文网点击这里. 2. Vue.js 是一套构建用户界面的渐进式框架,点这里访问官网. 二.实现效果: 三.页面引入bootstrap.vue资源 <link rel="stylesheet" href="//cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.css" rel="e

  • mybatis原理概述入门教程

    本文我将要介绍一下mybatis的框架原理,以及mybatis的入门程序,实现用户的增删改查,她有什么优缺点以及mybatis和hibernate之间存在着怎么样的关系,希望对小伙伴们有帮助,不足之处,还请多多指教. 什么是mybatis? MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis .2013年11月迁移到Github. MyBatis 是支持定

  • Mybatis实战教程之入门到精通(经典)

    什么是mybatis MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架.MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索.MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录. orm工具的基本思想 无论是用过的hibernate,mybatis,你都可以法相他们有一个共同点: 1. 从配置文件(通常是XML配置文件中)得到 ses

  • MyBatis入门学习教程-MyBatis快速入门

    目录 Mybatis 一.快速开始 1.创建 Maven 项目 2.导入 Maven 依赖 3.配置 Maven 插件 4.新建数据库,导入表格 5.编写 Mybatis 配置文件 6.编写实体类 7.编写 mapper 接口 8.编写 mapper 实现 9.Mybatis 配置文件中,添加 mapper 映射 10.编写 Mybatis 工具类 11.测试 二.日志添加 1.添加 Maven 依赖 2.添加 log4j 配置 3.Mybatis 中配置 LOG 4.执行测试 三.Mybati

  • ThinkPHP框架实现用户信息查询更新及删除功能示例

    本文实例讲述了ThinkPHP框架实现用户信息查询更新及删除功能.分享给大家供大家参考,具体如下: 一 代码 1.配置文件 <?php return array( 'APP_DEBUG' => false, // 关闭调试模式 'DB_TYPE'=> 'mysql', // 数据库类型 'DB_HOST'=> 'localhost', // 数据库服务器地址 'DB_NAME'=>'db_database30', // 数据库名称 'DB_USER'=>'root',

  • MyBatis映射器mapper快速入门教程

    目录 通用mapper简介 通用mapper快速入门(文档) 添加依赖 和Spring集成 XML 配置 1.使用 MapperScannerConfigurer 2.XML配置使用 Configuration 实体类映射 创建Mapper接口 通用mapper简介 通用 Mapper 是一个可以实现任意 MyBatis 通用方法的框架,项目提供了常规的增删改查操作以及Example相关的单表操作,与mybatisplus相似,对mybatis制作增强不做修改.为什么要用通用mapper?我们这

  • JavaWeb入门教程之分页查询功能的简单实现

    一.MySql实现分页查询的SQL语句 1.分页需求: 客户端通过传递pageNo(页码),counter(每页显示的条数)两个参数去分页查询数据库表中的数据,那我们知道MySql数据库提供了分页的函数limit m,n,但是该函数的用法和我们的需求不一样,所以就需要我们根据实际情况去改写适合我们自己的分页语句,具体的分析如下: 比如: 查询第1条到第10条的数据的sql是:select * from table limit 0,10;   ->对应我们的需求就是查询第一页的数据:select

随机推荐