文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习

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

原文地址是:http://www.piaodoo.com/thread-13247-1-2.html 丝袜控www.txdah.com 131www.buzc.org学习之外可赏心悦目有助更好地学习!

Mybatis入门教程之新增、更新、删除功能_java - JAVA的更多相关文章

  1. (整理)MyBatis入门教程(一)

    本文转载: http://www.cnblogs.com/hellokitty1/p/5216025.html#3591383 本人文笔不行,根据上面博客内容引导,自己整理了一些东西 首先给大家推荐几 ...

  2. MYSQL-JDBC批量新增-更新-删除

    目录 1 概述 2 开启MYSQL服务端日志 3 深入MYSQL/JDBC批量插入 3.1 从一个例子出发 3.2 JDBC的批量插入操作 3.3 两个常被忽略的问题 3.5 误区 4 MYSQL/J ...

  3. .net core 对dapper 新增 更新 删除 查询 的扩展

    早期的版本一直用的是EF,但是EF一直有个让人很不爽的东西需要mapping 实体对象:如果没有映射的情况下连查询都没办法: 所以后来开始使用dapper 但是dapper都是直接用的是sql,这个对 ...

  4. Flask + flask_sqlalchemy + jq 完成书籍展示、新增、删除功能

    后端代码 from flask import Flask, render_template, request, jsonify from flask_wtf.csrf import CSRFProte ...

  5. MyBatis入门教程(基于Mybatis3.2)

    MyBatis和Hibernate一样都是基于ORM的关系型数据库框架 ORM工具的基本思想: 1.从配置文件(通常是XML配置文件中)得到 sessionfactory. 2. 由sessionfa ...

  6. mybatis入门教程之搭建一个简单的mybatis项目并启动它

    一.准备条件: 1.依赖jar包:mybatis核心包(必须).lombok插件包(非必须)以及MySQL数据库连接驱动包(必须) <dependency> <groupId> ...

  7. java实现网页验证码功能_java - JAVA

    文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 本文实例为大家分享了java网页验证码的实现代码,供大家参考,具体内容如下 Servlet: package cn.bd ...

  8. ABP入门教程13 - 更新菜单

    点这里进入ABP入门教程目录 菜单更新 在展示层(即JD.CRS.Web.Mvc)的Startup下打开CRSNavigationProvider.cs //用以存放菜单相关信息 修改如下 using ...

  9. MYSQL基础01(新增,修改,删除)

    首先说明一下,本人之前一直都是用MSSQL,由于工作原因,每天写上百条sql语句,并持续了几年;由于换了工作目前主要接触的MYSQL;所以现在开始学习MYSQL. 我的学习计划很简单,我在MSSQL使 ...

随机推荐

  1. 阶段3 1.Mybatis_11.Mybatis的缓存_8 mybatis的二级缓存

    二级缓存:             它指的是Mybatis中SqlSessionFactory对象的缓存.由同一个SqlSessionFactory对象创建的SqlSession共享其缓存.      ...

  2. CMakeLists.txt中使用循环

    编译一个安卓下的so,此so依赖其他的库,通过循环简化操作 set(UVC_LIBS UVCCamera uvc usb100 jpeg-turbo1500) FOREACH(UVC_LIB ${UV ...

  3. oracle-不完全数据库恢复-被动恢复-ORA-00313/ORA-00366

    继上一篇不完全恢复 oracle-不完全数据库恢复-被动恢复-ORA-00313/ORA-00366 场景2:数据库拥有备份,CURRENT状态日志组中所有的在线日志头损坏,在发生日志切换时实例被自动 ...

  4. Scala类和对象

    1.面向对象 Scala的类与java.C++的一些比起来更简洁,速度更快 对象:使用object关键字修饰的 类:使用class关键字修饰的new Person()实例对象 new类:类的实例(对象 ...

  5. 数据结构系列之2-3-4树的插入、查找、删除和遍历完整版源代码实现与分析(dart语言实现)

    本文属于原创,转载请注明来源. 在上一篇博文中,详细介绍了2-3树的操作(具体地址:https://www.cnblogs.com/outerspace/p/10861488.html),那么对于更多 ...

  6. vue 格式化时间的插件库

    格式化时间的插件库 点击进入 moment.js网址 ,在这里可以找到需要引入的script标签 点击进入 moment.js的文档 在文档中可以找到对应的格式和例子 此文来源于: https://w ...

  7. Vim常用的功能命令

    一.编辑 查看行号     :set nu 删除一整行   dd 删除1到10行     :1,10d 删除所有内容     dG 当前行下插入一空行   o 撤销改动    u 查看当前行信息    ...

  8. 【烦人的字符集】linux字符集问题,中文乱码

    [1]快速修改命令 [2]locale 查看现在服务器的字符 [root@Master ~]# localeLANG=en_US.UTF-8LC_CTYPE="zh_CN.UTF-8&quo ...

  9. 【6.10校内test】T1 FBI树

    FBI树[题目链接] 感觉我超废. MY SOLUTION:     我的想法其实也是很简单的,递归的去做,因为最后要求输出FBI的后序遍历,也就是左右头,我的方法是递归存字符数组,(按照与后序遍历完 ...

  10. mysql学习记录(一)

    #打开MySQL服务 sudo service mysql start #Ubuntu Linux 安装配置MySQL #安装MySQL服务器,核心程序 sudo apt-get install my ...