博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MyBatis 插入时返回刚插入记录的主键值
阅读量:4320 次
发布时间:2019-06-06

本文共 3890 字,大约阅读时间需要 12 分钟。

MyBatis 插入时返回刚插入记录的主键值

一、要求:

1、数据库表中的主键是自增长的,如:id;

2、获取刚刚插入的记录的id值;

二、源代码:

1、User.java

1 package cn.com.zfc.model; 2  3 public class User { 4  5     private Integer id; 6     private String name; 7     private String password; 8  9     public Integer getId() {10         return id;11     }12 13     public void setId(Integer id) {14         this.id = id;15     }16 17     public String getName() {18         return name;19     }20 21     public void setName(String name) {22         this.name = name;23     }24 25     public String getPassword() {26         return password;27     }28 29     public void setPassword(String password) {30         this.password = password;31     }32 33     @Override34     public String toString() {35         return "User [id=" + id + ", name=" + name + ", password=" + password + "]";36     }37 38 }

2、UserMapper.xml

1 
2 3
4 5
6
7 insert into user 8 (name,password) 9 values10 (#{name},#{password})11
15
17 SELECT LAST_INSERT_ID() AS id18
19
20
21

3、mybatis-config.xml

1 
2 5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

4、MyBatisUtil.java

1 package cn.com.zfc.util; 2  3 import java.io.IOException; 4 import java.io.InputStream; 5  6 import org.apache.ibatis.io.Resources; 7 import org.apache.ibatis.session.SqlSessionFactory; 8 import org.apache.ibatis.session.SqlSessionFactoryBuilder; 9 10 public class MyBatisUtil {11 12     private static SqlSessionFactoryBuilder sqlSessionFactoryBuilder = null;13     private static SqlSessionFactory sessionFactory = null;14     private static InputStream inputStream = null;15 16     static {17         try {18             // 加载mybatis主配置文件19             inputStream = Resources.getResourceAsStream("mybatis-config.xml");20             sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();21             // 获取SqlSessionFactory对象22             sessionFactory = sqlSessionFactoryBuilder.build(inputStream);23         } catch (IOException e) {24             e.printStackTrace();25         }26     }27 28     /**29      * 获取SqlSessionFactory对象30      * 31      * @return32      */33     public static SqlSessionFactory getSqlSessionFactory() {34         return sessionFactory;35     }36 }

5、MyBatisTest.java

1 package cn.com.zfc.test; 2  3 import org.apache.ibatis.session.SqlSession; 4 import org.apache.ibatis.session.SqlSessionFactory; 5  6 import cn.com.zfc.model.User; 7 import cn.com.zfc.util.MyBatisUtil; 8  9 /**10  * 获取刚插入数据库表中记录的自增长主键11  * 12  * @title MyBatisTest13  * @describe14  * @author 张富昌15  * @date 2017年8月22日下午10:56:5816  */17 public class MyBatisTest {18     public static void main(String[] args) {19 20         // 1、获取SqlSessionFactory21         SqlSessionFactory sqlSessionFactory = MyBatisUtil.getSqlSessionFactory();22         // 2、获取SqlSession23         SqlSession sqlSession = sqlSessionFactory.openSession();24         String statement = "cn.com.zfc.model.UserMapper.insert";25         User user = new User();26         user.setName("张富昌2");27         user.setPassword("123456");28         // 执行添加操作之后返回的结果29         int result = sqlSession.insert(statement, user);30         // 提交31         sqlSession.commit();32         // 关闭33         sqlSession.close();34         System.out.println("result:" + result);35         // 获取刚刚添加进去的自增长主键id36         System.out.println("id:" + user.getId());37     }38 }

 三、运行效果

 

转载于:https://www.cnblogs.com/zfc-java/p/7414183.html

你可能感兴趣的文章
PyQT的安装和配置
查看>>
从 docker 到 runC
查看>>
python基础学习笔记(十一)
查看>>
守护进程
查看>>
第十二周作业
查看>>
php数组
查看>>
Linux 防火墙
查看>>
android 自定义图片圆形进度条
查看>>
互联网金融P2P主业务场景自动化测试
查看>>
array_filter函数的应用
查看>>
梅西确定代言 中国首秀牵手Mate 8
查看>>
html,body
查看>>
一个Brushes笔画应用ios源码完整版
查看>>
IOS 网络浅析-(七 JSON解析之三方JSONKit)
查看>>
image的srcset属性
查看>>
vs + Qt 环境下配置QCustomPlot编译不通过
查看>>
simplorer使用 simlink的 svpwm模块
查看>>
j.c.Warnsdorff马踏棋盘算法
查看>>
[C#-SQLite] SQLite一些奇怪的问题
查看>>
Map的遍历
查看>>