`
- 浏览:
1628414 次
- 性别:
- 来自:
上海
-
Spring JDBCTemplate Query方法查询
在内部建立内联类实现RowMapper接口
-
package hysteria.contact.dao.impl;
-
-
import java.sql.ResultSet;
-
import java.sql.SQLException;
-
import java.sql.Types;
-
import java.util.List;
-
-
import org.springframework.jdbc.core.JdbcTemplate;
-
import org.springframework.jdbc.core.RowMapper;
-
-
import hysteria.contact.dao.ItemDAO;
-
import hysteria.contact.domain.Item;
-
-
public class ItemDAOImpl implements ItemDAO {
-
private JdbcTemplate jdbcTemplate;
-
-
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
-
this.jdbcTemplate = jdbcTemplate;
- }
-
-
public Item insert(Item item) {
-
String sql = "INSERT INTO items(user_id,name,phone,email) VALUES(?,?,?,?)";
-
Object[] params = new Object[]{item.getUserId(),item.getName(),item.getPhone(),item.getEmail()};
-
int[] types = new int[]{Types.INTEGER,Types.VARCHAR,Types.CHAR,Types.VARCHAR};
- jdbcTemplate.update(sql,params,types);
-
return item;
- }
-
-
public Item update(Item item) {
-
String sql = "UPDATE items SET name = ?, phone = ?, email = ? WHERE id = ?";
-
Object[] params = new Object[] {item.getName(),item.getPhone(),item.getEmail(),item.getId()};
-
int[] types = new int[] {Types.VARCHAR,Types.CHAR,Types.VARCHAR,Types.VARCHAR,Types.INTEGER};
- jdbcTemplate.update(sql,params,types);
-
-
return item;
- }
-
-
public void delete(Item item) {
-
String sql = "DELETE FROM items WHERE id = ?";
-
Object[] params = new Object[] {item.getId()};
-
int[] types = new int[]{Types.INTEGER};
- jdbcTemplate.update(sql,params,types);
- }
-
-
public Item findById(int id) {
-
String sql = "SELECT * FROM items WHERE id = ?";
-
Object[] params = new Object[] {id};
-
int[] types = new int[] {Types.INTEGER};
-
List items = jdbcTemplate.query(sql,params,types,new ItemMapper());
-
if(items.isEmpty()){
-
return null;
- }
-
return (Item)items.get(0);
- }
-
-
public List<Item> findAll() {
-
String sql = "SELECT * FROM items";
-
return jdbcTemplate.query(sql,new ItemMapper());
- }
-
-
-
public List<Item> findAllByUser(int user_id) {
-
String sql = "SELECT * FROM items WHERE user_id = ?";
-
Object[] params = new Object[]{user_id};
-
int[] types = new int[]{Types.INTEGER};
-
List items = jdbcTemplate.query(sql,params,types,new ItemMapper());
-
return items;
- }
-
-
protected class ItemMapper implements RowMapper {
-
-
public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
-
Item item = new Item();
-
item.setId(rs.getInt("id"));
-
item.setUserId(rs.getInt("user_id"));
-
item.setName(rs.getString("name"));
-
item.setPhone(rs.getString("phone"));
-
item.setEmail(rs.getString("email"));
-
-
return item;
- }
-
- }
-
-
- }
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
spring JdbcTemplate query方法使用示例,欢迎下载借鉴
本文将深入探讨Spring JdbcTemplate的常用方法,并结合提供的`JsonBean.java`和`JdbcUtils.java`文件,来理解其在实际应用中的使用。 首先,JdbcTemplate的核心功能在于它提供了一系列的方法来执行SQL语句,包括...
Spring JdbcTemplate提供了一个面向对象的接口,用于执行SQL查询、更新和存储过程,避免了直接与JDBC API打交道的繁琐工作。它通过异常处理、事务管理以及结果集的自动处理,简化了数据库访问。基于注解的Spring ...
1. **JdbcTemplate对象**:这是Spring JdbcTemplate的核心,它包含了执行SQL语句的所有方法,如update()用于更新,query()用于查询,insert()用于插入等。 2. **参数绑定**:JdbcTemplate支持多种方式的参数绑定,...
SpringJdbcTemplate是一个模板类,它提供了大量的方法来执行SQL查询、更新、存储过程等操作。这些方法会自动处理JDBC相关的资源关闭、异常转换等细节,使得代码更加整洁和健壮。 2. **数据库自适应** Spring...
在使用`jdbcTemplate`进行预编译查询时,我们通常会使用`query()`或`queryForList()`方法。例如: ```java String sql = "SELECT * FROM table WHERE id = ?"; Object[] params = {1}; List<MyObject> result = ...
Spring 框架 JdbcTemplate 类中查询方法介绍 JdbcTemplate 是 Spring 框架中 org.springframework.jdbc.core 包提供的 JDBC 模板类,它是核心类,其他模板类都是基于它封装完成的。JdbcTemplate 类主要提供四类方法...
首先,Spring JdbcTemplate通过提供一系列的模板方法,如`queryForList`、`queryForObject`、`execute`等,使得执行SQL查询变得更加简洁和安全。这些方法能够处理结果集、自动转换数据类型,并且在发生异常时提供更...
4. 使用JdbcTemplate方法:调用JdbcTemplate的相应方法,如`update()`, `query()`, `execute()`等,传入SQL和参数。 5. 处理结果:根据操作类型,处理返回的结果集或者受影响的行数。 6. 事务管理:如果需要,可以...
Spring JdbcTemplate是Spring框架中的一个核心组件,主要用来简化数据库操作。它提供了一种模板方法设计模式,将SQL语句的执行与结果处理进行了抽象,使得开发者可以更加专注于业务逻辑,而无需关心底层数据访问的...
除了上述方法,`JdbcTemplate`还提供了一系列`queryForXXX`方法,用于快速返回简单的查询结果,例如查询计数或返回单个字段的值。这些方法简化了常见查询场景的编码工作,提高了开发效率。 总之,`JdbcTemplate`...
JdbcTemplate提供了`query()`和`queryForXXX()`方法来执行SQL的SELECT语句。例如,获取单个用户: ```java public User getUserById(int id) { String sql = "SELECT * FROM users WHERE id = ?"; return ...
在这个例子中,我们注入了JdbcTemplate实例,并使用query方法执行SQL查询。传入的RowCallbackHandler将在遍历结果集时被调用,处理每一行数据。 **5. 总结** Spring JdbcTemplate简化了数据库操作,通过模板模式...
使用JdbcTemplate的`query()`方法,可以将动态生成的SQL与参数绑定,执行查询。例如: ```java public List<MyEntity> queryByPage(int pageNum, int pageSize) { String sql = "SELECT * FROM table LIMIT ? ...
4. 调用JdbcTemplate提供的方法,如`update()`执行DML语句,`query()`执行查询,`queryForList()`获取列表,`queryForObject()`获取单个对象等。 5. 使用占位符(问号)或命名参数进行SQL动态绑定,避免SQL注入。 ...
Spring JdbcTemplate是Spring JDBC模块的核心组件,它提供了一套模板方法,用于执行常见的JDBC操作,如查询、更新、插入和删除等。通过使用JdbcTemplate,开发者可以避免编写大量重复的JDBC模板代码,减少出错的可能...
1. **JdbcTemplate的基本使用**:JdbcTemplate的核心在于它的`update()`和`query()`方法,前者用于执行更新语句(INSERT、UPDATE、DELETE),后者用于执行查询语句。这些方法接收SQL语句作为参数,并可以传递绑定...
`query()`方法用于执行SQL查询,这里我们使用了自定义的`RowMapper`将结果集映射为User对象。 3. **更新(Update)**: ```java public void updateUser(User user) { jdbcTemplate.update( "UPDATE users SET...
List<User> users = jdbcTemplate.query("SELECT * FROM users", new UserRowMapper()); ``` 这里UserRowMapper是自定义的ResultSet提取器,将每一行数据映射到User对象。 4. **删除数据**: ```java jdbcTemplate....
为了解决这些问题,Spring引入了JdbcTemplate,它通过提供一系列预定义的方法来简化数据库操作。例如,对于一个简单的SELECT查询,使用JdbcTemplate可以写出更为简洁的代码: ```java String sql = "select * from ...