public int save(Model model) { logger.info("Start create a model:" + model.getName()); Map<String, Object> parmMap = new HashMap<String, Object>(); parmMap.put("name", model.getName()); parmMap.put("group", model.getGroup()); parmMap.put("type", model.getType()); parmMap.put("category", model.getCategory()); parmMap.put("description", model.getDescription()); KeyHolder keyHolder = new GeneratedKeyHolder(); SqlParameterSource source = new MapSqlParameterSource(parmMap); int rc = getJdbcTemplate().update(SQL_CREATE_MODEL, source ,keyHolder); System.out.println(keyHolder.getKey().intValue()); if (rc > 0) { return keyHolder.getKey().intValue(); } else { return 0; } }
public int insertTable(LabelForm f) throws SQLException,ParseException { String content = f.getSiteId(); final String sql = "insert into TAG_INFO(SITE_ID,NAME,CONTENT) values(?,?,'"+content+"')"; KeyHolder keyHolder = new GeneratedKeyHolder(); getJdbcTemplate().update( new PreparedStatementCreator() { public PreparedStatement createPreparedStatement(Connection con) throws SQLException { PreparedStatement ps = getJdbcTemplate().getDataSource() .getConnection().prepareStatement(sql,new String[]{ "SITE_ID" ,"NAME"}); ps.setString(1, "站点号"); ps.setString(2, "我的名字"); return ps; } }, keyHolder); System.out.println("自动插入id============================" + keyHolder.getKey().intValue()); return keyHolder.getKey().intValue(); }
相关推荐
Spring的JdbcTemplate插入操作返回主键ID的方法 - - ITeye技术网站
接下来,让我们看看如何使用`jdbcTemplate`进行预编译的插入操作。`update()`方法可以用来执行更新操作,同样支持预编译参数: ```java String sql = "INSERT INTO table (name, age) VALUES (?, ?)"; int rows...
在这个场景中,我们将详细探讨如何使用`JdbcTemplate`进行批量插入和删除操作。 批量插入操作在数据库处理大量数据时非常常见,它可以显著提高性能,因为数据库通常会优化批量处理,而不是单独处理每一项。在提供的...
尽管`JDBCTemplate`非常适合用于查询操作,但它同样也支持执行更新、插入和删除等操作。需要注意的是,由于更新操作可能会干扰Hibernate的二级缓存,因此建议仅在必要时使用。 示例代码如下: ```java int rows...
通过使用模板方法设计模式,`JdbcTemplate`提供了一系列静态和非静态的方法来执行各种SQL操作,如查询、更新、插入和删除。 为了打印`JdbcTemplate`执行的SQL语句,我们需要关注以下几点: 1. **日志配置**:首先...
spring 中对大数据的处理,包括clob,blob的数据。比之jdbc下简便很多。
`JdbcTemplate`是Spring框架中用于简化数据库操作的模板类,它提供了丰富的API来执行SQL语句,包括插入、更新、删除以及查询等操作。在Java应用中,使用`JdbcTemplate`可以避免直接操作JDBC,减少代码量,提高代码的...
// id=1的主键冲突插入失败 String sql2 = "INSERT INTO user_tmp(`id`,`username`) VALUES(1,111)"; Connection conn = jdbcTemplate.getDataSource().getConnection(); LOG.info("1:{}", conn); boolean ac =...
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> ``` 其中,`dataSource`是指向数据库连接池的bean,如`Apache Commons DBCP`或`HikariCP`。 ### 4. 创建数据库访问层(DAO)...
JdbcTemplate提供了一系列模板方法,用于执行SQL语句,包括查询、更新、插入和删除。例如,执行简单的SQL查询: ```java String sql = "SELECT * FROM users WHERE id = ?"; List<User> users = jdbcTemplate.query...
JdbcTemplate支持多种操作,包括查询、更新、插入和删除等,且支持预编译的参数化SQL语句,有效防止SQL注入攻击。 以下是一个简单的SpringMVC结合JdbcTemplate的示例: 1. 配置SpringMVC:在`web.xml`中配置...
本篇文章将探讨如何在Spring Boot中利用JPA(Java Persistence API)和JdbcTemplate来实现多数据源的管理,同时使用HikariCP作为高效的数据源连接池。 首先,让我们理解一下关键概念: 1. **Spring Boot**: 它是...
JdbcTemplate支持多种类型的数据库操作,如查询、更新、插入和删除。例如,`queryForObject`用于返回单个对象,`queryForList`用于返回对象列表,`update`和`execute`用于执行修改操作。这些方法提供了参数化查询的...
Spring JdbcTemplate是Spring JDBC模块的核心组件,它提供了一套模板方法,用于执行常见的JDBC操作,如查询、更新、插入和删除等。通过使用JdbcTemplate,开发者可以避免编写大量重复的JDBC模板代码,减少出错的可能...
1. **JdbcTemplate对象**:这是Spring JdbcTemplate的核心,它包含了执行SQL语句的所有方法,如update()用于更新,query()用于查询,insert()用于插入等。 2. **参数绑定**:JdbcTemplate支持多种方式的参数绑定,...
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> ``` 接着,在Java代码中可以通过注入的方式获取`JdbcTemplate`实例,并调用相应的查询方法。 #### 五、高级用法与注意事项 1. ...
- **应用场景**:适用于根据ID获取单个实体的情况,如用户登录验证、获取某个商品详情等。 ##### 2. 查询所有对象(find all) ```java public List<Item> findAll() { String sql = "SELECT * FROM items"; ...
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> ``` 或者使用Java配置: ```java @Configuration public class AppConfig { @Bean public DataSource dataSource() { ...
2. 获取JdbcTemplate实例:通过Spring容器或者@Autowired注解,我们可以获取到JdbcTemplate实例,它需要一个DataSource作为依赖。 3. 编写SQL:你可以直接编写SQL语句,或者使用PreparedStatement,JdbcTemplate提供...
例如,大量数据的批量插入可能更适合使用JdbcTemplate的`batchUpdate()`方法,或者直接使用JDBC的PreparedStatement来提高效率。 9. **最佳实践** - 保持SQL语句简洁,避免在业务代码中混杂复杂的SQL。 - 避免...