MyBatis学习系列六:新增和更新
来源:互联网 发布:阿里云学生服务器 编辑:程序博客网 时间:2024/06/04 22:10
1.xml文件
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd"><mapper namespace="com.xiang.mapper.UserMapper"> <!-- 按ID更新用户 --> <update id="updateById" parameterType="com.xiang.domain.User"> update user set name = #{name},address = #{address} where id = #{id} </update> <!-- 新增用户 --> <insert id="addOne" useGeneratedKeys="true" keyProperty="id" parameterType="com.xiang.domain.User"> insert into user (name,address) values (#{name},#{address}) </insert> <!-- 批量新增 --> <insert id="addBatch" parameterType="java.util.List"> insert into user (name,address) values <foreach collection="list" item="item" index="index" separator=","> (#{item.name},#{item.address}) </foreach> </insert></mapper>
如果是自增列可以在insert时,使用useGeneratedKeys标签,keyProperty标签可以在insert时获取新增记录的ID
2.mapper
public interface UserMapper { public void updateById(User user); public void addOne(User user); public void addBatch(List<User> users);}
3.dao
public void updateById(User user){ SqlSession sqlSession = null; sqlSession = GetSqlSessionFactory.getInstance().getSqlSessionFactory().openSession(); if (sqlSession != null) { UserMapper userMapper = sqlSession.getMapper(UserMapper.class); userMapper.updateById(user); sqlSession.commit(); sqlSession.close(); }}public User addOne(User user){ SqlSession sqlSession = null; sqlSession = GetSqlSessionFactory.getInstance().getSqlSessionFactory().openSession(); if (sqlSession != null) { UserMapper userMapper = sqlSession.getMapper(UserMapper.class); userMapper.addOne(user); sqlSession.commit(); sqlSession.close(); } return user;}public void addBatch(List<User> users){ SqlSession sqlSession = null; sqlSession = GetSqlSessionFactory.getInstance().getSqlSessionFactory().openSession(); if (sqlSession != null) { UserMapper userMapper = sqlSession.getMapper(UserMapper.class); userMapper.addBatch(users); sqlSession.commit(); sqlSession.close(); }}
4.service
public void updateById(User user){ UserDao userDao = new UserDao(); userDao.updateById(user);}public User addOne(User user){ UserDao userDao = new UserDao(); return userDao.addOne(user);}public void addBatch(List<User> users){ UserDao userDao = new UserDao(); userDao.addBatch(users);}
5.新增测试取回主键
User user = new User("张三", "浙江省 杭州市");System.out.println(user);userService.addOne(user);System.out.println(user);User [id=null, name=张三, address=浙江省 杭州市]User [id=109, name=张三, address=浙江省 杭州市]
0 0
- MyBatis学习系列六:新增和更新
- MyBatis批量新增和更新
- MyBatis批量新增和更新
- TensorFlow学习系列(六):变量更新和控制依赖
- MyBatis批量新增、更新
- J2EE系列之MyBatis学习笔记(六)-- 动态sql
- mybatis批量新增,更新的一些问题
- MyBatis oracle 批量 insert update 新增 更新
- mybatis批量新增系列之类型处理
- mybatis如何实现批量更新和插入新增实例详解(附SQL以及mapper配置)
- mybatis批量新增系列之表的批量新增初探
- mybatis学习(六)
- MyBatis学习六:缓存
- mybatis学习:六
- mybatis学习笔记(六) --- 模糊查询和存储过程
- Redis主从复制和集群配置系列之六(redis集群节点新增、删除、重新分配slot实战)
- mybatis批量新增,存在就更新(mysql数据库)
- Mybatis-新增
- greedy algorithm DEMO
- mac eclipse实用快捷键总结
- Ext.Msg.QUESTION、Ext.Msg.WARNING---ExtJS学习------Ext.Msg.show()学习
- 【Java并发编程实战】-----线程基本概念
- C语言缓冲区(缓存)详解
- MyBatis学习系列六:新增和更新
- C语言常见函数重写
- poj 3468 A Simple Problem with Integers(线段树、延迟更新)
- Unique Paths II
- VC++中的字符问题
- 2.app recommendation with very sparse datasets
- 二叉树各种操作的总结
- springMVC的转发和重定向及Controller参数
- 【项目2-三数最大值】