`

使用JdbcTemplate取得插入Oracle记录的主键值

阅读更多

 

在使用spring的过程中经常遇到获取插入数据的主键值,在使用jdbc时我们可能已经会使用了,但是在spring的jdbcTemplate中也有相关的方法:

第一种方法:

 

public int getKey1(User user) {
		int i = 0;
		final String name = user.getUserName();
		final String password = user.getPassword();
		final int age = user.getAge();
		KeyHolder keyHolder = new GeneratedKeyHolder();
		final String sql = "insert into tb_user(user_name,password,age) values(?,?,?)";
		jdbcTemplate.update(new PreparedStatementCreator() {
			public PreparedStatement createPreparedStatement(Connection conn) throws SQLException {
				PreparedStatement ps = conn.prepareStatement(sql, new String[] { "user_id" });
				ps.setString(1, name);
				ps.setString(2, password);
				ps.setInt(3, age);
				return ps;
			}
		}, keyHolder);
		i = keyHolder.getKey().intValue();
		return i;
	}
 

 

第二种方法:

public int getKey2(User user) {
		// 这里withTableName("tb_user")面是
		// 表名,usingGeneratedKeyColumns("user_id")表字段主键
		SimpleJdbcInsert insertActor = new SimpleJdbcInsert(jdbcTemplate.getDataSource()).withTableName("tb_user").usingGeneratedKeyColumns("user_id");
		Map<String, Object> parameters = new HashMap<String, Object>();
		parameters.put("user_name", user.getUserName());
		parameters.put("password", user.getPassword());
		parameters.put("age", user.getAge());
		Number newId = insertActor.executeAndReturnKey(parameters);
		return newId.intValue();
	}
 
分享到:
评论

相关推荐

    使用Spring的JdbcTemplate调用Oracle的存储过程

    使用Spring的JdbcTemplate调用Oracle的存储过程

    Spring JdbcTemplate调用Oracle存储过程实现CRUD

    使用 Spring JdbcTemplate 调用 Oracle 存储过程实现 CRUD 在本文中,我们将讨论如何使用 Spring JdbcTemplate 调用 Oracle 存储过程来实现 CRUD(Create、Read、Update、Delete)操作。我们将首先编写 Oracle 存储...

    spring自带的jdbcTemplate查询、插入预编译使用

    接下来,让我们看看如何使用`jdbcTemplate`进行预编译的插入操作。`update()`方法可以用来执行更新操作,同样支持预编译参数: ```java String sql = "INSERT INTO table (name, age) VALUES (?, ?)"; int rows...

    SpringMvc+JdbcTemplate+oracle的小项目实例

    在本项目实例中,我们探讨的是如何利用SpringMVC、JdbcTemplate和Oracle数据库来构建一个小型的Java应用程序,主要涉及用户注册与登录的功能。这个项目对于初学者来说是一个很好的实践平台,因为它涵盖了Web开发中的...

    spring框架 jdbcTemplate

    使用JdbcTemplate的query()方法执行SQL查询,通常配合RowMapper或ResultSetExtractor将结果集转换为Java对象。例如,我们可以定义一个SQL查询,然后传入参数,JdbcTemplate会自动处理预编译和参数绑定。 4. **删除...

    Oracle + jdbcTemplate + Spring + Java + Flex 实现分页

    ### Oracle + jdbcTemplate + Spring + Java + Flex 实现分页 #### 一、Oracle存储过程分页 在Oracle数据库中,为了实现高效的分页查询,通常会采用存储过程的方式来完成。这种方式能够有效地减少网络传输的数据量...

    JdbcTemplate的批量方法使用

    在这个场景中,我们将详细探讨如何使用`JdbcTemplate`进行批量插入和删除操作。 批量插入操作在数据库处理大量数据时非常常见,它可以显著提高性能,因为数据库通常会优化批量处理,而不是单独处理每一项。在提供的...

    使用Spring的JdbcTemplate实现分页功能

    使用Spring的JdbcTemplate实现分页功能

    简单介绍如何使用Spring Boot使用JdbcTemplate与MySQL进行数据库操作

    在本文中,我们将深入探讨如何使用Spring Boot集成JdbcTemplate与MySQL数据库进行数据操作。Spring Boot以其简化配置和快速启动的特点,已经成为Java开发者的首选框架。而JdbcTemplate是Spring框架的一部分,它提供...

    jdbcTemplate分页彻底解决,使用游标滚动

    总结起来,使用JdbcTemplate的游标滚动技术,我们可以实现高效、低内存消耗的分页,这对于处理大量数据的系统来说至关重要。同时,这种方式也使得代码更加灵活,能够适应各种数据库的差异,提高了程序的可移植性。

    springBoot使用JdbcTemplate代码实例

    在上面的示例代码中,我们使用 JdbcTemplate 的 update 方法来执行插入操作,并使用 KeyHolder 来获取插入记录的主键值。 批量操作 JdbcTemplate 也提供了批量操作的支持,例如: ``` public void createUserList...

    SpringJdbcTemplate封装工具类

    例如,大量数据的批量插入可能更适合使用JdbcTemplate的`batchUpdate()`方法,或者直接使用JDBC的PreparedStatement来提高效率。 9. **最佳实践** - 保持SQL语句简洁,避免在业务代码中混杂复杂的SQL。 - 避免...

    jdbcTemplate需要用到的jar包.zip

    4. **调用JdbcTemplate方法**:使用`JdbcTemplate`提供的方法执行SQL,例如`query()`执行查询,`update()`执行插入、更新或删除。 5. **处理结果**:对于查询操作,`JdbcTemplate`会返回一个结果集,你可以通过`...

    Spring boot连接oracle数据库JDBC配置步骤

    在本文中,我们将详细介绍如何使用 Spring Boot 连接 Oracle 数据库,配置 JDBC 驱动程序,并实现数据库的基本操作。 Step 1: 添加依赖项 在 Spring Boot 项目中,需要在 `build.gradle` 文件中添加 Oracle JDBC ...

    9. 使用JdbcTemplate【从零开始学Spring Boot】

    总结来说,本节主要介绍了如何在Spring Boot项目中使用JdbcTemplate进行数据库操作,包括设置依赖、配置数据源、注入JdbcTemplate以及执行SQL查询、更新、插入和删除操作。了解并掌握这些基本操作,将有助于我们在...

    JdbcTemplate使用.doc

    首先,要使用`JdbcTemplate`,我们需要添加Spring的支持。这通常意味着在项目中引入Spring的相关库,比如`spring-jdbc.jar`,并且在项目配置中声明Spring的依赖管理。这可以通过Maven或Gradle等构建工具完成。 接...

Global site tag (gtag.js) - Google Analytics