存储过程:
1.取一个返回的参数,比如是否执行成功:“success”
public class TestDaoImpl extends NamedParameterJdbcDaoSupport{
private SimpleJdbcCall getSingleParameterSjc;
@Override
protected void initDao() throws Exception {
super.initDao();
this.getSingleParameterSjc=
new SimpleJdbcCall(this.getDataSource())
.withProcedureName("sp_getSingleParameter");
}
public Boolean getSjcSingleParameter(String sId) {
Map<String,Object> param = new HashMap<String, Object>();
param.put("sId", sId);
return (Boolean)this.getSingleParameterSjc.execute(param).get("success");
}
}
private final static RowMapper<Perform> PERFORM_MAPPER = BeanPropertyRowMapper.newInstance(Perform.class);
private final static RowMapper<Integer> SINGLE_INTEGER_MAPPER = new SingleColumnRowMapper<Integer>(Integer.class);
2.取查询返回值
private final static String
LIST_RESULT = "ListResult",
ROWCOUNT_RESULT = "totalCount";
private SimpleJdbcCall findListResultSjc;
@Override
protected void initDao() throws Exception {
super.initDao();
this.findRestaurantsSjc = new SimpleJdbcCall(this.getDataSource())
.withProcedureName("sp_function_find_restaurants")
.declareParameters(
new SqlReturnResultSet(ROWCOUNT_RESULT, SINGLE_INTEGER_MAPPER),
new SqlReturnResultSet(RESTAURANT_RESULT, PERFORM_MAPPER));
}
public Map<String,Object> findListResultSjc(Parameter para) {
Map<String, Object> data = this.findListResultSjc.
execute(new BeanPropertySqlParameterSource(para));
List<Perform> list = (List<Perform>) data.get(RESTAURANT_RESULT);
List<Integer> total = ((List<Integer>) data.get(ROWCOUNT_RESULT));
Integer totalCount = null == total
|| total.size() == 0? 0 : total.get(0);
return data;
}
查询:
1.
private final static String
SQL_SELECT_PERFORM_BY_ID = "SELECT id,name from perform where id = ? ";
public Perform findEvalPerformById(String id) {
return this.getJdbcTemplate().
queryForObject(SQL_SELECT_PERFORM_BY_ID, PERFORM_MAPPER,id);
2.
private final static String SQL_FIND_PRIORITIZED_BY_ID =
"SELECT prioritized FROM perform WHERE id = :Id";
public Boolean findPrioritizedByPerformId(String Id) {
Map<String,Object> params = new HashMap<String, Object>();
params.put("Id", Id);
return this.getNamedParameterJdbcTemplate()
.queryForObject(SQL_FIND_PRIORITIZED_BY_PERFORMID,
params, SINGLE_BOOLEAN_MAPPER);
}
3.
private final static String SQL_FIND_PERFORM=
"SELECT * FROM perform WHERE id = :Id and type = :type ";
public List<Perform> findPerform(String Id, String type) {
Map<String,Object> params = new HashMap<String, Object>();
params.put("type", type);
params.put("Id", Id);
return this.getNamedParameterJdbcTemplate().
query(SQL_FIND_PERFORM, params, PERFORM_MAPPER );
}
修改:
private final static String SQL_UPDATE_PERFORM=
"update perform set name = :name ,type = :type WHERE id = :Id";
public int update(Perform perform) {
return this.getNamedParameterJdbcTemplate()
.update(SQL_UPDATE_PERFORM,
new BeanPropertySqlParameterSource(perform));
}
批量:
1.
public void insertBatchNamedParameter2(final List<Customer> customers){
SqlParameterSource[] params =
SqlParameterSourceUtils.createBatch(customers.toArray());
getSimpleJdbcTemplate().batchUpdate(
"INSERT INTO CUSTOMER (CUST_ID, NAME, AGE) VALUES (:custId, :name, :age)",
params);
}
2.
private final static String SQL_UPDATEPRIORITIZE =
" UPDATE perform"
+" SET priority = :priority WHERE id = :Id "
+" and s_id = :sId ";
public int updatePrioritize(List<Perform> performList) {
int[] updateCounts =
this.getNamedParameterJdbcTemplate().
batchUpdate(SQL_UPDATEPRIORITIZE,SqlParameterSourceUtils
.createBatch(performList.toArray()));
int result = 0;
for (int i = 0; i < updateCounts.length; i++) {
result += updateCounts[i];
}
return result;
}
分享到:
相关推荐
《Spring之SimpleJdbcTemplate的深度解析与应用》 在Java Web开发中,Spring框架以其强大的功能和灵活性,成为了开发者们的首选。Spring JDBC模块是Spring框架的一部分,它提供了一种简化数据库操作的方式,其中...
本篇文章将详细讲解如何使用Spring的`SimpleJdbcTemplate`来实现DAO操作,这是一种简单易用且强大的工具,特别适合小型项目或快速开发。 `SimpleJdbcTemplate`是Spring框架提供的一个轻量级数据库访问组件,它基于`...
`JdbcTemplate`和`SimpleJdbcTemplate`是Spring提供的两个核心组件,用于简化Java数据库连接(JDBC)操作,从而减轻开发人员处理事务、异常处理和资源管理的负担。下面将详细阐述这两个工具的使用及其与MySQL数据库...
本篇将详细讲解如何配置Spring与MySQL数据库进行连接,以及如何利用SimpleJdbcTemplate进行数据操作。首先,我们需要理解Spring的JDBC支持,它提供了一种简单而强大的方式来处理数据库交互。 1. **Spring与MySQL的...
1. **JDBC抽象层**:Spring提供了对JDBC的简化封装,通过`JdbcTemplate`和`SimpleJdbcTemplate`,可以避免繁琐的数据库操作,减少SQL注入的风险。源码中的`org.springframework.jdbc.core`和`org.springframework....
11.2.3. SimpleJdbcTemplate类 11.2.4. DataSource接口 11.2.5. SQLExceptionTranslator接口 11.2.6. 执行SQL语句 11.2.7. 执行查询 11.2.8. 更新数据库 11.3. 控制数据库连接 11.3.1. DataSourceUtils类 11.3.2. ...
8. `org.springframework.jdbc`:用于处理数据库操作的包,包含JdbcTemplate和SimpleJdbcTemplate等,提供了SQL执行的简单抽象。 9. `org.springframework.orm`:这个包支持ORM(对象关系映射)技术,如Hibernate、...
对于JDBC,Spring的JdbcTemplate和SimpleJdbcTemplate提供了一种基于模板的方法来执行SQL,避免了手动管理连接和结果集。 四、MVC(Model-View-Controller)框架 Spring MVC是Spring框架的一部分,用于构建Web应用...
对于SQL数据库操作,Spring提供了JdbcTemplate和SimpleJdbcTemplate,它们是不依赖于ORM的数据库访问工具。通过源码,我们可以学习到如何编写SQL语句,如何执行查询、更新等操作,以及如何处理结果集。 9. **异常...
它包括了JdbcTemplate和SimpleJdbcTemplate,用于执行SQL语句和处理结果集。 7. **spring-tx.jar**:事务管理模块,支持编程和声明式事务管理,可以与JDBC、Hibernate、JPA等数据访问技术一起使用。 8. **spring-...
3. **JDBC抽象层增强**:Spring 3.0改进了JdbcTemplate和SimpleJdbcTemplate,同时引入了NamedParameterJdbcTemplate,提供了更方便的参数绑定。 4. **Spring MVC增强**:对Spring MVC进行了大量优化,增加了...
3. **SimpleJdbcTemplate**:这是JdbcTemplate的一个简化版本,为非注解的Java代码提供了更简洁的API,同样能处理大部分的JDBC任务。 4. **NamedParameterJdbcTemplate**:对于包含命名参数的SQL语句,这个类提供了...
它提供了一个JdbcTemplate和SimpleJdbcTemplate接口,简化了SQL的执行和结果集的处理。通过Transaction Management,Spring还能处理事务控制,确保数据的一致性。 2. **Spring MVC**: Spring MVC是Spring框架的一...
Spring JDBC的核心是`JdbcTemplate`和`SimpleJdbcTemplate`,它们提供了事务管理、参数绑定、异常转换等功能,避免了SQL注入等问题。 3. **Spring 事务管理(TX)** Spring TX模块提供了声明式和编程式的事务管理...
7. **数据访问增强**:在Spring 2.5中,对JDBC、Hibernate和iBatis的支持得到加强,例如,引入了`JdbcTemplate`和`SimpleJdbcTemplate`,简化了数据库操作。 8. **Web MVC增强**:Spring 2.5的Web MVC框架引入了`@...
`JdbcTemplate`和`SimpleJdbcTemplate`提供了一种简单的方式来执行SQL操作,而`HibernateTemplate`和`HibernateDaoSupport`则帮助开发者利用Hibernate进行数据库操作。 此外,Spring 2.5还包含了对Maven的支持,...
它包括了JdbcTemplate和SimpleJdbcTemplate,这两个模板类简化了SQL查询和结果集处理。 6. **spring-aop.jar**:AOP(面向切面编程)模块支持定义和执行横切关注点,比如日志记录、性能监控、事务管理等。它可以将...
这两个基类为自定义DAO提供了便利,它们提供了对JdbcTemplate或SimpleJdbcTemplate的引用,减少了重复代码。 10. **Best Practices** - 使用PreparedStatement而非Statement,防止SQL注入。 - 合理配置事务边界...
- Spring JDBC:简化数据库操作,提供JdbcTemplate和SimpleJdbcTemplate。 - Spring JMS:支持Java消息服务(JMS)。 - Spring ORM:集成Hibernate、MyBatis等ORM框架。 - Spring Web Flow:处理复杂Web应用的工作流...
Spring JDBC模块提供了一层抽象,简化了数据库操作,比如通过`JdbcTemplate`和`SimpleJdbcTemplate`,可以实现无须手动管理连接和事务的数据库操作。因此,压缩包中可能包含`jdbc.jar`或者Spring的`spring-jdbc.jar`...