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使 ...
随机推荐
- flask环境布署--废弃不用,只留作备份
[前置条件] 创建1个flask-demo,生成requirement.txt文件(下载好gunicorn),上传至git.创建demo参照:创建一个flask api-demo(响应体显示中文) g ...
- preventDefault 和 stopPropagation
概述 以前开发项目的时候,总是分不清楚 preventDefault 和 stopPropagation,每次都是用 @click.stop试一下,不能就用@click.prevent试一下.今天来好 ...
- 阶段3 1.Mybatis_03.自定义Mybatis框架_7.自定义Mybatis的编码-实现基于注解配置的查询所有
注解的方式,这里进行修改.上面注释的是原来xml的方式. 在dao类里面加上注解 创建注解类 声明注解的生命周期为Runntime 改变注解出现的位置,在Mehtod方法上 写完之后这里就不报错了. ...
- 读取yaml中的内容
def read_yml(path): """ 读取yml文件中的数据 :param path: 文件yaml 的路径 :return: 返回读取yaml文件内的结果 & ...
- 一个ETF基金经理的心路历程
简介: 鹏华沪深300ETF拟任基金经理崔俊杰先生,金融工程专业管理学硕士,5年证券基金从业经验.2008年7月加盟鹏华基金管理有限公司,历任产品规划部产品设计师.量化投资部量化研究员,先后从事产品设 ...
- 远程桌面 使用 本地输入法(虚拟化 终端 远程接入 RemoteApp)
远程桌面连接组件是微软从Windows 2000 Server开始提供的,该组件一经推出便受到了很多用户的拥护和使用. 在WINDOWS XP和WINDOWS SERVER 2003中微软公司将该 ...
- 一图看懂python对excel的读写
- Android Studio编译报错Could not reserve enough space for 2097152KB object heap解决方法
环境变量中添加
- Java多线程学习——wait方法(管道法/生产者消费者模式)
简单介绍管道法: 生产者生产数据输送到管道,消费者从管道拿出数据,管道为空消费者等待,管道满生产者生产,消费者消费生产者生产,生产者生产消费者消费. public class Corn { //要生产 ...
- Java——ArrayList源码解析
以下针对JDK 1.8版本中的ArrayList进行分析. 概述 ArrayList基于List接口实现的大小可变的数组.其实现了所有可选的List操作,并且元素允许为任意类型,包括null元 ...