`

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

 
阅读更多

以下内容都是引自网上其他的说法,下面的说法很容易误导人的,要获得主键,首先应该先把主键能插入,显然代码里面有显示插入主键的值,初步判断是利用了触发器,插入数据时,将事先建好的序列插入进去,关于如何利用序列插入则很简单的,再次不多说了。
所以我说明下:如果创建了触发器处理了,以下方法都没有问题。如果没有,则必须利用序列显式插入主键的值,
使用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调用Oracle存储过程返回List集合

    在此文档中,我们将介绍如何使用 Spring jdbcTemplate 调用 Oracle 存储过程返回 List 集合。 Oracle 存储过程 ------------- 在 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`非常适合用于查询操作,但它同样也支持执行更新、插入和删除等操作。需要注意的是,由于更新操作可能会干扰Hibernate的二级缓存,因此建议仅在必要时使用。 示例代码如下: ```java int rows...

    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...

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

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

    SpringJdbcTemplate封装工具类

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

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

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

    jdbcTemplate需要用到的jar包.zip

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

    JdbcTemplate使用.doc

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

Global site tag (gtag.js) - Google Analytics