JAVA之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简单的增删改操作代码。谢谢!
JAVA之Mybatis基础入门二 -- 新增、更新、删除的更多相关文章
- JAVA之Mybatis基础入门--框架搭建与简单查询
JAVA中,操作数据库有JDBC.hibernate.Mybatis等技术,今天整理了下,来讲一讲下Mybatis.也为自己整理下文档: hibernate是一个完全的ORM框架,是完全面向对象的.但 ...
- MyBatis基础入门《二十》动态SQL(foreach)
MyBatis基础入门<二十>动态SQL(foreach) 1. 迭代一个集合,通常用于in条件 2. 属性 > item > index > collection : ...
- MyBatis基础入门《十二》删除数据 - @Param参数
MyBatis基础入门<十二>删除数据 - @Param参数 描述: 删除数据,这里使用了@Param这个注解,其实在代码中,不使用这个注解也可以的.只是为了学习这个@Param注解,为此 ...
- MyBatis基础入门《二》Select查询
MyBatis基础入门<二>Select查询 使用MySQL数据库,创建表: SET NAMES utf8mb4; ; -- ---------------------------- -- ...
- MyBatis基础入门《十三》批量新增数据
MyBatis基础入门<十三>批量新增数据 批量新增数据方式1:(数据小于一万) xml文件 接口: 测试方法: 测试结果: =============================== ...
- MyBatis基础入门《六》Like模糊查询
MyBatis基础入门<六>Like模糊查询 描述: 未改动的文件,不再粘贴出来.项目中SQL的xml映射文件重要标签如下: mapper namespace cache 配置给定命令空间 ...
- MyBatis基础入门《三》Select查询集合
MyBatis基础入门<三>Select查询集合 描述: 代码新增了一个MybatisUtil工具类,查询数据库返回集合的时候,接收数据的三种方式.由于代码会渐渐增多,未涉及改动过的文件不 ...
- MyBatis基础入门《十九》动态SQL(set,trim)
MyBatis基础入门<十九>动态SQL(set,trim) 描述: 1. 问题 : 更新用户表数据时,若某个参数为null时,会导致更新错误 2. 分析: 正确结果: 若某个参数为nul ...
- MyBatis基础入门《十五》ResultMap子元素(collection)
MyBatis基础入门<十五>ResultMap子元素(collection) 描述: 见<MyBatis基础入门<十四>ResultMap子元素(association ...
随机推荐
- git教程:添加远程仓库
转自: 添加远程仓库 现在的情景是,你已经在本地创建了一个Git仓库后,又想在GitHub创建一个Git仓库,并且让这两个仓库进行远程同步,这样,GitHub上的仓库既可以作为备份,又可以让其他人通过 ...
- ubuntu mariadb installation
sudo apt-get install mariadb-server[sudo] password for wadmin: Reading package lists... DoneBuilding ...
- Jmeter 非 GUI 命令行执行脚本文件
https://www.cnblogs.com/yebaofang/p/9803273.html
- Vue原理--虚拟DOM
为什么需要虚拟DOM? 如果对前端工作进行抽象的话,主要就是维护状态和更新视图,而更新视图和维护状态都需要DOM操作.其实近年来,前端的框架主要发展方向就是解放DOM操作的复杂性. 运行js的速度是很 ...
- PHP 多维数组排序 函数怎么保持数字键不被重新索引
/** * 根据数组中的某个键值大小进行排序,仅支持二维数组 * * @param array $array 排序数组 * @param string $key 键值 * @param bool $a ...
- javascript获取某个月份的天数
function DayNumOfMonth(Year,Month) //例DayNumOfMonth(2017,05);{ Month--; //月份是0~11.month=4 var ...
- ROS * 通过launch文件添加多个模型
我添加的是dae模型,urdf文件过两天贴 方法一 : <launch> <!-- these are the arguments you can pass this launch ...
- PL/SQL连接远程服务器数据库,出现ORA-12154: TNS: 无法解析指定的连接标识符。
故障环境:上礼拜新装了一台服务器(win server2008r2),并在服务器上安装了ORACLE 11g database.且已经做好监听配置,开通了1521端口. 我又在局域网内另一台pc端装了 ...
- Unity安卓打包遇到的问题。
1, android asset packinging tool failed. "路径" package -v -f -F assets.ap_ - Assets found X ...
- git的基本应用(一)
Git常用的命令: mkdir 文件夹名称 创建文件夹 git init 将文件夹交个git管理 ls -ah ...