Mybatis入门教程之新增、更新、删除功能_java - JAVA
文章来源:嗨学网 敏而好学论坛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的更多相关文章
- (整理)MyBatis入门教程(一)
本文转载: http://www.cnblogs.com/hellokitty1/p/5216025.html#3591383 本人文笔不行,根据上面博客内容引导,自己整理了一些东西 首先给大家推荐几 ...
- MYSQL-JDBC批量新增-更新-删除
目录 1 概述 2 开启MYSQL服务端日志 3 深入MYSQL/JDBC批量插入 3.1 从一个例子出发 3.2 JDBC的批量插入操作 3.3 两个常被忽略的问题 3.5 误区 4 MYSQL/J ...
- .net core 对dapper 新增 更新 删除 查询 的扩展
早期的版本一直用的是EF,但是EF一直有个让人很不爽的东西需要mapping 实体对象:如果没有映射的情况下连查询都没办法: 所以后来开始使用dapper 但是dapper都是直接用的是sql,这个对 ...
- Flask + flask_sqlalchemy + jq 完成书籍展示、新增、删除功能
后端代码 from flask import Flask, render_template, request, jsonify from flask_wtf.csrf import CSRFProte ...
- MyBatis入门教程(基于Mybatis3.2)
MyBatis和Hibernate一样都是基于ORM的关系型数据库框架 ORM工具的基本思想: 1.从配置文件(通常是XML配置文件中)得到 sessionfactory. 2. 由sessionfa ...
- mybatis入门教程之搭建一个简单的mybatis项目并启动它
一.准备条件: 1.依赖jar包:mybatis核心包(必须).lombok插件包(非必须)以及MySQL数据库连接驱动包(必须) <dependency> <groupId> ...
- java实现网页验证码功能_java - JAVA
文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 本文实例为大家分享了java网页验证码的实现代码,供大家参考,具体内容如下 Servlet: package cn.bd ...
- ABP入门教程13 - 更新菜单
点这里进入ABP入门教程目录 菜单更新 在展示层(即JD.CRS.Web.Mvc)的Startup下打开CRSNavigationProvider.cs //用以存放菜单相关信息 修改如下 using ...
- MYSQL基础01(新增,修改,删除)
首先说明一下,本人之前一直都是用MSSQL,由于工作原因,每天写上百条sql语句,并持续了几年;由于换了工作目前主要接触的MYSQL;所以现在开始学习MYSQL. 我的学习计划很简单,我在MSSQL使 ...
随机推荐
- 阶段3 1.Mybatis_11.Mybatis的缓存_8 mybatis的二级缓存
二级缓存: 它指的是Mybatis中SqlSessionFactory对象的缓存.由同一个SqlSessionFactory对象创建的SqlSession共享其缓存. ...
- CMakeLists.txt中使用循环
编译一个安卓下的so,此so依赖其他的库,通过循环简化操作 set(UVC_LIBS UVCCamera uvc usb100 jpeg-turbo1500) FOREACH(UVC_LIB ${UV ...
- oracle-不完全数据库恢复-被动恢复-ORA-00313/ORA-00366
继上一篇不完全恢复 oracle-不完全数据库恢复-被动恢复-ORA-00313/ORA-00366 场景2:数据库拥有备份,CURRENT状态日志组中所有的在线日志头损坏,在发生日志切换时实例被自动 ...
- Scala类和对象
1.面向对象 Scala的类与java.C++的一些比起来更简洁,速度更快 对象:使用object关键字修饰的 类:使用class关键字修饰的new Person()实例对象 new类:类的实例(对象 ...
- 数据结构系列之2-3-4树的插入、查找、删除和遍历完整版源代码实现与分析(dart语言实现)
本文属于原创,转载请注明来源. 在上一篇博文中,详细介绍了2-3树的操作(具体地址:https://www.cnblogs.com/outerspace/p/10861488.html),那么对于更多 ...
- vue 格式化时间的插件库
格式化时间的插件库 点击进入 moment.js网址 ,在这里可以找到需要引入的script标签 点击进入 moment.js的文档 在文档中可以找到对应的格式和例子 此文来源于: https://w ...
- Vim常用的功能命令
一.编辑 查看行号 :set nu 删除一整行 dd 删除1到10行 :1,10d 删除所有内容 dG 当前行下插入一空行 o 撤销改动 u 查看当前行信息 ...
- 【烦人的字符集】linux字符集问题,中文乱码
[1]快速修改命令 [2]locale 查看现在服务器的字符 [root@Master ~]# localeLANG=en_US.UTF-8LC_CTYPE="zh_CN.UTF-8&quo ...
- 【6.10校内test】T1 FBI树
FBI树[题目链接] 感觉我超废. MY SOLUTION: 我的想法其实也是很简单的,递归的去做,因为最后要求输出FBI的后序遍历,也就是左右头,我的方法是递归存字符数组,(按照与后序遍历完 ...
- mysql学习记录(一)
#打开MySQL服务 sudo service mysql start #Ubuntu Linux 安装配置MySQL #安装MySQL服务器,核心程序 sudo apt-get install my ...