public long addMsg(final SysMessage sysMessage){ final String sql = "INSERT INTO sys_message (title,send_time,type,kugouIds,is_send) values(?,?,?,?,?) "; // jdbc.update(sql, sysMessage.getTitle(),sysMessage.getSendTime(),sysMessage.getType(), sysMessage.getKugouIds(),sysMessage.getIsSend() ); KeyHolder keyHolder = new GeneratedKeyHolder(); jdbc.update(new PreparedStatementCreator(){ @Override public PreparedStatement createPreparedStatement(Connection conn) throws SQLException{ PreparedStatement ps = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); ps.setString(1, sysMessage.getTitle()); ps.setTimestamp(2, new Timestamp(sysMessage.getSendTime().getTime())); ps.setInt(3, sysMessage.getType()); ps.setString(4, sysMessage.getKugouIds()); ps.setInt(5, sysMessage.getIsSend()); return ps; } }, keyHolder); long msgId = keyHolder.getKey().longValue(); return msgId; }
使用org.springframework.jdbc.support.KeyHolder的getKey()方法
相关推荐
Spring JDBC的主要目标是简化数据访问,减少直接使用JDBC时的繁琐工作,如手动管理连接、事务和异常处理。在Spring 3.2.0.RELEASE版本中,这个模块得到了进一步的增强和完善。 首先,`spring-jdbc-3.2.0.RELEASE....
本文将详细介绍如何基于Spring JDBC模块创建一个通用的数据访问对象(BaseDAO)类,实现简单的对象关系映射(ORM)功能,包括增删改查等基本操作。 #### Spring JDBC简介 Spring JDBC是Spring框架的一部分,它简化了...
它们可以自动构建SQL语句,并返回生成的主键或者调用存储过程后的结果。 二、事务管理 Spring JDBC支持声明式和编程式事务管理。声明式事务管理通过配置元数据(如XML或注解)来指定事务边界,而编程式事务管理则...
### JDBC保存对象并返回主键知识点详解 #### 一、背景介绍 在Java开发中,JDBC(Java Database Connectivity)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和...
在这个例子中,`SimpleJdbcInsert`类被用来简化插入操作,而`executeAndReturnKey()`方法执行插入并返回新生成的主键。 3. **使用JdbcTemplate进行数据库查询** 查询操作可以使用`query()`方法完成,它可以接受...
// 插入数据并返回包含主键的实体 @PostMapping("add") @ResponseBody public Employee addEmployee() { Employee employee = new Employee(); employee.setLastName("chen") .setAge(18) .setEmail("10000@...
例如,执行插入操作时,我们可以使用JdbcTemplate的update()方法,它会自动处理预编译的SQL语句,并且如果需要返回主键,可以使用PreparedStatement的RETURN_GENERATED_KEYS标志来获取自增字段的值。 批量处理是...
在Spring Boot应用中,Spring Data是一个强大的框架,它极大地简化了数据访问层的实现。 CrudRepository是Spring Data JPA提供的一种核心数据访问接口,用于处理基本的CRUD(创建、读取、更新、删除)操作。这个接口...
- 插入数据时,根据业务逻辑创建节点对象,然后使用JDBC插入到数据库。 6. **递归算法生成树**: - 为了组装树结构,我们可以用递归方法,将结果集中的每个记录作为根节点或子节点,依据`parent_id`查找其父节点...
这个版本的MyBatis引入了对批量插入和返回主键的支持,这对于大型数据处理场景尤其有用。下面将详细阐述MyBatis 3.3.1中的关键特性和功能。 首先,MyBatis的核心在于它的SQL映射文件,这些XML或注解定义的映射文件...
10.7.2 Spring JDBC数据连接泄漏 10.7.3 通过DataSourceUtils获取数据连接 10.7.4 通过DataSourceUtils获取数据连接 10.7.5 JdbcTemplate如何做到对连接泄漏的免疫 10.7.6 使用TransactionAwareDataSourceProxy 10.7...
例如,如果在执行插入操作时主键冲突,原生的SQLException会被转换为DataIntegrityViolationException,这样我们就可以根据这个异常类型做出相应的业务处理,比如提示用户数据已存在。 除了JdbcTemplate,Spring还...
保存新的单个实体并返回主键 批量插入相同类型的多个实体并返回生成的密钥 更新单个现有实体-一次更新实体的所有字段 获取多对一关系(部门公司) 获取一对多关系(公司部门) 更新实体一对多关系(公司部门)-...
10.7.2 Spring JDBC数据连接泄漏 10.7.3 通过DataSourceUtils获取数据连接 10.7.4 通过DataSourceUtils获取数据连接 10.7.5 JdbcTemplate如何做到对连接泄漏的免疫 10.7.6 使用TransactionAwareDataSourceProxy 10.7...
不可重复读是指在同一个事务中,两次读取同一数据返回的结果不一致;幻读是指一个事务读取了一段时间的数据后,其他事务插入了新数据,导致原事务再次读取时看到“幻影”。 **2.3 Spring事务管理支持** - **编程式...
创建用户表,并插入一条测试数据 程序代码 程序代码 Create TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `userName` varchar(50) DEFAULT NULL, `userAge` int(11) DEFAULT NULL, `userAddress` ...
- 增:创建一个保存实体的方法,通过Service调用Mapper的insert方法插入数据。 - 删:创建删除方法,根据主键或其他条件调用Mapper的delete方法。 - 改:创建更新方法,获取需要修改的数据,更新后调用Mapper的...
Map提供了快速查找、插入和删除元素的能力,适用于存储关联数据,如数据库查询结果。常见的Map实现有HashMap、TreeMap等。 查询返回Map通常发生在服务器端,例如在Spring MVC或Servlet环境中。开发者会编写一个...