mybatis入门--单表的增删改操作
来源:互联网 发布:培训机构股权分配 知乎 编辑:程序博客网 时间:2024/05/16 06:47
单表的增加操作
前面我们看了如何搭建mybatis框架以及查询操作,这里我们说下如何使用mybatis进行增加用户的操作。首先是在user.xml文件中添加insert的方法。代码如下
<!-- 添加用户 --><insertid="insertUser"parameterType="cn.itcast.mybatis.po.User"> insert into user(username,birthday,sex,address) <!--这里的#{}中的值,必须和user类中的属性名称一致,建议直接粘贴过来--> values(#{username},#{birthday},#{sex},#{address})</insert>然后就是写个测试方法,代码如下:
// 添加用户信息@Testpublicvoid testInsert() {// 数据库会话实例SqlSession sqlSession = null;try {// 创建数据库会话实例sqlSessionsqlSession = sqlSessionFactory.openSession();// 添加用户信息User user = new User();user.setUsername("张小明");user.setAddress("河南郑州");user.setSex("1");sqlSession.insert("test.insertUser", user);//提交事务,这里需要手动提交。sqlSession.commit();} catch (Exception e) {e.printStackTrace();} finally {if (sqlSession != null) {sqlSession.close();}}}注意:这里需要强调的是,由于使用的是jdbc的默认事物,mybatis会自动开启事物,但是不知道什么时候提交,所以需要手动进行事物的提交。
有比较细心地同学可能注意到了,我们的insert语句中没有写id的值。这就要求我们的数据库是主键自增长的,但是依然有问题:我们添加进去的用户和我们的内存中的用户信息不一致——因为我们的内存中的user是没有主键的。怎么解决这个问题呢?我们需要在user.xml中尽心这些配置:
<insert id="insertUser" parameterType="cn.itcast.pojo.User"><!-- select LAST_INSERT_ID() mybatis函数作用是查询最后增加的数据的主键idkeyProperty:将这个数据库函数查询出的数据放到传入参数的User对象的id属性中保存order: 当前mysql函数相对于insert语句的执行顺序, 在insert前执行是before, 在insert后执行是afterresultType: keyProperty中指定的返回的id属性的类型 --><selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">select LAST_INSERT_ID()</selectKey>insert into user (username, birthday, sex, address) values(#{username}, #{birthday}, #{sex}, #{address})</insert>这里面的selectKey可以将数据库自动生成的主键进行返回,然后会将我们的主键自动赋值给我们的user对象,这样的话,数据库和系统内存中的数据就一致了。
有的同学可能说,如果我不使用主键自增长,我使用uuid怎么办?这里向大家介绍下mybatis如何通过uuid生成主键。其实十分的简单,就是将我们的
select LAST_INSERT_ID()换成
select uuid()然后将after修改为before就可以了。代码如下:
<insert id="insertUser" parameterType="cn.itcast.mybatis.po.User"><selectKey resultType="java.lang.String" order="BEFORE"keyProperty="id">select uuid()</selectKey>insert into user(id,username,birthday,sex,address) values(#{id},#{username},#{birthday},#{sex},#{address})</insert>注意:这里使用的order是“BEFORE”
单表的删除操作
删除用户比较简单,这里就直接把我的代码贴上了
1.user.xml文件
<!-- 删除用户 --><deleteid="deleteUserById"parameterType="int">delete from user where id=#{id}</delete>
2.测试代码
@TestpublicvoidtestDelete() {// 数据库会话实例SqlSession sqlSession = null;try {// 创建数据库会话实例sqlSessionsqlSession = sqlSessionFactory.openSession();// 删除用户sqlSession.delete("test.deleteUserById",18);// 提交事务sqlSession.commit();} catch (Exception e) {e.printStackTrace();} finally {if (sqlSession != null) {sqlSession.close();}}}
单表的修改操作
修改代码比较简单,直接粘贴源代码了:
1.user.xml文件
<updateid="updateUser"parameterType="cn.itcast.mybatis.po.User">update user set username=#{username},birthday=#{birthday},sex=#{sex},address=#{address}where id=#{id}</update>2.测试程序
@TestpublicvoidtestUpdate() {// 数据库会话实例SqlSession sqlSession = null;try {// 创建数据库会话实例sqlSessionsqlSession = sqlSessionFactory.openSession();// 添加用户信息User user = new User();user.setId(16);user.setUsername("张小明");user.setAddress("河南郑州");user.setSex("1");user.setPrice(1999.9f);sqlSession.update("test.updateUser", user);// 提交事务sqlSession.commit(); } catch (Exception e) {e.printStackTrace();} finally {if (sqlSession != null) {sqlSession.close();}}}
0 0
- mybatis入门--单表的增删改操作
- mybatis入门,对单表的增删改查
- MyBatis单条记录的增删改查操作
- mybatis入门---增删查改操作
- java实战应用:MyBatis实现单表的增删改
- Java实战应用:MyBatis实现单表的增删改
- mybatis 单表增删改查
- mybatis增删改操作
- Mybatis(入门)简单的增删改查
- mybatis-简单的增删改查操作
- MyBatis的增删改查基本操作
- MyBatis批量的增删改查操作
- mybatis-简单的增删改查操作
- Mybatis 增删改查的基本操作
- mybatis增删改的批量操作
- MySQL基础操作之单表的增删改
- MyBatis入门3--基本操作:增删改+基础查询
- Mybatis入门--增删改查
- Java数据结构和算法:二叉树
- 性价比
- BZOJ 2045 容斥原理
- IEDA翻译神器
- ios swift uitextview如何应对键盘的遮挡
- mybatis入门--单表的增删改操作
- 一道有意思的ACM题——Poker Hands的解法
- 经a
- 微信小程序开发者工具初体验及实现技术初探
- 文章标题
- Image & Vision Group 链接 有计算机视觉的测试公开的标准数据集
- OpenCV的traincascade代码分析
- 买了微软2016工具 好用到爆 比WPS舒服多了...
- centos防火墙开启、关闭、查看状态