`

Spring SimpleJdbcTemplate

阅读更多
存储过程:
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的使用

    《Spring之SimpleJdbcTemplate的深度解析与应用》 在Java Web开发中,Spring框架以其强大的功能和灵活性,成为了开发者们的首选。Spring JDBC模块是Spring框架的一部分,它提供了一种简化数据库操作的方式,其中...

    使用Spring的SimpleJdbcTemplate完成DAO操作

    本篇文章将详细讲解如何使用Spring的`SimpleJdbcTemplate`来实现DAO操作,这是一种简单易用且强大的工具,特别适合小型项目或快速开发。 `SimpleJdbcTemplate`是Spring框架提供的一个轻量级数据库访问组件,它基于`...

    Spring 通过连接mysql,通过JdbcTemplate和SimpleJdbcTemplate来操作数据库

    `JdbcTemplate`和`SimpleJdbcTemplate`是Spring提供的两个核心组件,用于简化Java数据库连接(JDBC)操作,从而减轻开发人员处理事务、异常处理和资源管理的负担。下面将详细阐述这两个工具的使用及其与MySQL数据库...

    Spring mysql数据库的配置与链接

    本篇将详细讲解如何配置Spring与MySQL数据库进行连接,以及如何利用SimpleJdbcTemplate进行数据操作。首先,我们需要理解Spring的JDBC支持,它提供了一种简单而强大的方式来处理数据库交互。 1. **Spring与MySQL的...

    spring源码spring-framework-4.3.2.RELEASE

    1. **JDBC抽象层**:Spring提供了对JDBC的简化封装,通过`JdbcTemplate`和`SimpleJdbcTemplate`,可以避免繁琐的数据库操作,减少SQL注入的风险。源码中的`org.springframework.jdbc.core`和`org.springframework....

    Spring-Reference_zh_CN(Spring中文参考手册)

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

    spring 常用的26个包

    8. `org.springframework.jdbc`:用于处理数据库操作的包,包含JdbcTemplate和SimpleJdbcTemplate等,提供了SQL执行的简单抽象。 9. `org.springframework.orm`:这个包支持ORM(对象关系映射)技术,如Hibernate、...

    spring-framework-2.5.6

    对于JDBC,Spring的JdbcTemplate和SimpleJdbcTemplate提供了一种基于模板的方法来执行SQL,避免了手动管理连接和结果集。 四、MVC(Model-View-Controller)框架 Spring MVC是Spring框架的一部分,用于构建Web应用...

    spring-orm源码

    对于SQL数据库操作,Spring提供了JdbcTemplate和SimpleJdbcTemplate,它们是不依赖于ORM的数据库访问工具。通过源码,我们可以学习到如何编写SQL语句,如何执行查询、更新等操作,以及如何处理结果集。 9. **异常...

    Spring3.0.5所有jar包及每个jar包作用说明文档

    它包括了JdbcTemplate和SimpleJdbcTemplate,用于执行SQL语句和处理结果集。 7. **spring-tx.jar**:事务管理模块,支持编程和声明式事务管理,可以与JDBC、Hibernate、JPA等数据访问技术一起使用。 8. **spring-...

    Spring 2.5.6和3.0 所有的jar包

    3. **JDBC抽象层增强**:Spring 3.0改进了JdbcTemplate和SimpleJdbcTemplate,同时引入了NamedParameterJdbcTemplate,提供了更方便的参数绑定。 4. **Spring MVC增强**:对Spring MVC进行了大量优化,增加了...

    SpringJDBC.rar_jdbc spring_spring jd_spring jdbc_spring使用JDBC进行数

    3. **SimpleJdbcTemplate**:这是JdbcTemplate的一个简化版本,为非注解的Java代码提供了更简洁的API,同样能处理大部分的JDBC任务。 4. **NamedParameterJdbcTemplate**:对于包含命名参数的SQL语句,这个类提供了...

    spring-demo

    它提供了一个JdbcTemplate和SimpleJdbcTemplate接口,简化了SQL的执行和结果集的处理。通过Transaction Management,Spring还能处理事务控制,确保数据的一致性。 2. **Spring MVC**: Spring MVC是Spring框架的一...

    Spring aop、jdbc和事务tx练习

    Spring JDBC的核心是`JdbcTemplate`和`SimpleJdbcTemplate`,它们提供了事务管理、参数绑定、异常转换等功能,避免了SQL注入等问题。 3. **Spring 事务管理(TX)** Spring TX模块提供了声明式和编程式的事务管理...

    最新spring2.5帮助文档

    7. **数据访问增强**:在Spring 2.5中,对JDBC、Hibernate和iBatis的支持得到加强,例如,引入了`JdbcTemplate`和`SimpleJdbcTemplate`,简化了数据库操作。 8. **Web MVC增强**:Spring 2.5的Web MVC框架引入了`@...

    Spring-Reference_zh_CN.rar_spring_spring 2.5_spring framework_sp

    `JdbcTemplate`和`SimpleJdbcTemplate`提供了一种简单的方式来执行SQL操作,而`HibernateTemplate`和`HibernateDaoSupport`则帮助开发者利用Hibernate进行数据库操作。 此外,Spring 2.5还包含了对Maven的支持,...

    spring 2.5.6 必须jar包

    它包括了JdbcTemplate和SimpleJdbcTemplate,这两个模板类简化了SQL查询和结果集处理。 6. **spring-aop.jar**:AOP(面向切面编程)模块支持定义和执行横切关注点,比如日志记录、性能监控、事务管理等。它可以将...

    spring.jdbc-3.0.5.jar

    这两个基类为自定义DAO提供了便利,它们提供了对JdbcTemplate或SimpleJdbcTemplate的引用,减少了重复代码。 10. **Best Practices** - 使用PreparedStatement而非Statement,防止SQL注入。 - 合理配置事务边界...

    spring2.0技术手册_林信良(完整版)

    - Spring JDBC:简化数据库操作,提供JdbcTemplate和SimpleJdbcTemplate。 - Spring JMS:支持Java消息服务(JMS)。 - Spring ORM:集成Hibernate、MyBatis等ORM框架。 - Spring Web Flow:处理复杂Web应用的工作流...

    spring3.0企业版第二章运行所需要的jar包集合

    Spring JDBC模块提供了一层抽象,简化了数据库操作,比如通过`JdbcTemplate`和`SimpleJdbcTemplate`,可以实现无须手动管理连接和事务的数据库操作。因此,压缩包中可能包含`jdbc.jar`或者Spring的`spring-jdbc.jar`...

Global site tag (gtag.js) - Google Analytics