`
yingpengfei1215
  • 浏览: 39939 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

【转】spring template

 
阅读更多

运行环境:使用了dbcp数据源:

我用的JAR包有:

commons-collections-3.1.jar    commons-dbcp.jar    commons-pool.jar   ojdbc14.jar(或class12.jar)

如果不知道哪里找JAR包的话 可以建一个普通的java工程,不是web工程哦!~

再右键-->myeclipse--add spring capabilities 引入spring就可以了

sql:

 

[xhtml] view plaincopyprint?
 
  1. drop table t_user;  
  2. create table t_user  
  3. (  
  4.   userid   NUMBER not null,  
  5.   username VARCHAR2(100)  
  6. );  
  7.   
  8. create sequence SEQ_T_USER  
  9. minvalue 1  
  10. maxvalue 999999999999999999999999999  
  11. start with 1  
  12. increment by 1  
  13. cache 20;  

 

 

jdbcTemplate:

 

  1. package com.jungle.test;  
  2.   
  3. import java.sql.PreparedStatement;  
  4. import java.sql.SQLException;  
  5. import java.util.List;  
  6. import java.util.Properties;  
  7.   
  8. import javax.sql.DataSource;  
  9.   
  10. import org.apache.commons.dbcp.BasicDataSourceFactory;  
  11. import org.springframework.jdbc.core.BeanPropertyRowMapper;  
  12. import org.springframework.jdbc.core.JdbcTemplate;  
  13. import org.springframework.jdbc.core.PreparedStatementSetter;  
  14.   
  15. import com.jungle.bean.User;  
  16.   
  17. /** 
  18.  * Spring模板(JdbcTemplater例子) 
  19.  * */  
  20. public class JdbcTemplateTest {  
  21.     public static void main(String[] args) throws Exception {  
  22.         Properties ps = new Properties();  
  23.         ps.setProperty("url""jdbc:oracle:thin:@localhost:1521:oracle");  
  24.         ps.setProperty("username""chenl");  
  25.         ps.setProperty("password""chenl");  
  26.         ps.setProperty("driverClassName""oracle.jdbc.driver.OracleDriver");  
  27.         DataSource ds = BasicDataSourceFactory.createDataSource(ps);  
  28.   
  29.         JdbcTemplate jdbcTemplate = new JdbcTemplate(ds);  
  30.   
  31.         /*************************************** test ***********************/  
  32.   
  33.         // 1.查  
  34.         System.out.println(query1(jdbcTemplate));  
  35.   
  36.         // 2.条件查  
  37.         System.out.println(query2(jdbcTemplate, 1));  
  38.   
  39.         // 3.改  
  40.         update(jdbcTemplate, new User(1"aaaaaa"));  
  41.   
  42.         // 4.增  
  43.         User user = new User();  
  44.         user.setUsername("11hahaa");  
  45.         insert(jdbcTemplate, user);  
  46.   
  47.         // 5.删  
  48.         user = new User();  
  49.         user.setUserid(2);  
  50.         del(jdbcTemplate, user);  
  51.   
  52.     }  
  53.   
  54.     /** 
  55.      * 1.使用 JdbcTemplate <br> 
  56.      * 查出所有 
  57.      * */  
  58.     @SuppressWarnings({ "unchecked""rawtypes" })  
  59.     public static List<User> query1(JdbcTemplate jdbcTemplate) {  
  60.         String sql = "select * from t_user";  
  61.         List<User> list = (List<User>) jdbcTemplate.query(sql,  
  62.                 new BeanPropertyRowMapper(User.class));  
  63.   
  64.         return list;  
  65.     }  
  66.   
  67.     /** 
  68.      * 2.使用 JdbcTemplate<br> 
  69.      * 条件查出所有查出所有 
  70.      * */  
  71.     @SuppressWarnings({ "unchecked""rawtypes" })  
  72.     public static List<User> query2(JdbcTemplate jdbcTemplate, int userid) {  
  73.         String sql = "select * from t_user where userid=?";  
  74.   
  75.         List<User> list = (List<User>) jdbcTemplate.query(sql,  
  76.                 new Object[] { userid }, new BeanPropertyRowMapper(User.class));  
  77.   
  78.         return list;  
  79.     }  
  80.   
  81.     /** 
  82.      * 3.使用 JdbcTemplate<br> 
  83.      * 修改数据 
  84.      * */  
  85.     public static void update(JdbcTemplate jdbcTemplate, final User user) {  
  86.         String sql = "update t_user set username=? where userid=?";  
  87.   
  88.         jdbcTemplate.update(sql, new PreparedStatementSetter() {  
  89.             @Override  
  90.             public void setValues(PreparedStatement ps) throws SQLException {  
  91.                 ps.setString(1, user.getUsername());  
  92.                 ps.setInt(2, user.getUserid());  
  93.             }  
  94.         });  
  95.     }  
  96.   
  97.     /** 
  98.      * 4.使用 JdbcTemplate<br> 
  99.      * 插入数据 
  100.      * */  
  101.     public static void insert(JdbcTemplate jdbcTemplate, final User user) {  
  102.         String idSql = "select seq_t_user.nextval from dual";  
  103.         final int id = jdbcTemplate.queryForInt(idSql); // 用序列得到ID  
  104.   
  105.         String sql = "insert into t_user(userid,username) values(?,?) ";  
  106.         jdbcTemplate.update(sql, new PreparedStatementSetter() {  
  107.             @Override  
  108.             public void setValues(PreparedStatement ps) throws SQLException {  
  109.                 ps.setInt(1, id);  
  110.                 ps.setString(2, user.getUsername());  
  111.             }  
  112.         });  
  113.     }  
  114.   
  115.     /** 
  116.      * 4.使用 JdbcTemplate<br> 
  117.      * 删除数据 
  118.      * */  
  119.     public static void del(JdbcTemplate jdbcTemplate, final User user) {  
  120.   
  121.         String sql = "delete from t_user where userid=?";  
  122.         jdbcTemplate.update(sql, new PreparedStatementSetter() {  
  123.   
  124.             @Override  
  125.             public void setValues(PreparedStatement ps) throws SQLException {  
  126.                 ps.setInt(1, user.getUserid());  
  127.             }  
  128.   
  129.         });  
  130.     }  
  131. }  

 

NamedParameterJdbcTemplate:

 

  1. package com.jungle.test;  
  2.   
  3. import java.util.HashMap;  
  4. import java.util.List;  
  5. import java.util.Map;  
  6. import java.util.Properties;  
  7.   
  8. import javax.sql.DataSource;  
  9.   
  10. import org.apache.commons.dbcp.BasicDataSourceFactory;  
  11. import org.springframework.jdbc.core.BeanPropertyRowMapper;  
  12. import org.springframework.jdbc.core.JdbcTemplate;  
  13. import org.springframework.jdbc.core.namedparam.BeanPropertySqlParameterSource;  
  14. import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;  
  15.   
  16. import com.jungle.bean.User;  
  17.   
  18. /** 
  19.  * Spring (NamedParameterJdbcTemplate命名模板例子) 
  20.  * */  
  21. public class NamedJdbcTemplateTest {  
  22.     public static void main(String[] args) throws Exception {  
  23.         Properties ps = new Properties();  
  24.         ps.setProperty("url""jdbc:oracle:thin:@localhost:1521:oracle");  
  25.         ps.setProperty("username""chenl");  
  26.         ps.setProperty("password""chenl");  
  27.         ps.setProperty("driverClassName""oracle.jdbc.driver.OracleDriver");  
  28.         DataSource ds = BasicDataSourceFactory.createDataSource(ps);  
  29.   
  30.         NamedParameterJdbcTemplate namedJdbcTemplate = new NamedParameterJdbcTemplate(  
  31.                 ds);  
  32.         JdbcTemplate jdbcTemplate = new JdbcTemplate(ds);  
  33.   
  34.         // 1.条件查  
  35.         System.out.println(query(namedJdbcTemplate, new User(3"aa")));  
  36.   
  37.         // 2.插入  
  38.         User user = new User();  
  39.         user.setUsername("xx2");  
  40.         insert(jdbcTemplate, namedJdbcTemplate, user);  
  41.   
  42.         // 3.修改  
  43.         update(namedJdbcTemplate, new User(3"abc"));  
  44.   
  45.         // 4.删除  
  46.         del(namedJdbcTemplate, new User(3"abc"));  
  47.   
  48.     }  
  49.   
  50.     /** 
  51.      * 1.有条件查询 没有条件使用 jdbcTemplate.query(sql,new 
  52.      * BeanPropertyRowMapper(User.class));<br> 
  53.      * 有条件 用NamedParameterJdbcTemplate 
  54.      * */  
  55.     @SuppressWarnings({ "unchecked""rawtypes" })  
  56.     public static List<User> query(  
  57.             NamedParameterJdbcTemplate namedJdbcTemplate, User user) {  
  58.         String sql = "select * from t_user where userid=:userid";  
  59.         Map map = new HashMap();  
  60.         map.put("userid", user.getUserid());  
  61.         List<User> list = namedJdbcTemplate.query(sql, map,  
  62.                 new BeanPropertyRowMapper(User.class));  
  63.   
  64.         return list;  
  65.     }  
  66.   
  67.     /** 
  68.      * 2.插入 
  69.      * */  
  70.     public static void insert(JdbcTemplate jdbcTemplate,  
  71.             NamedParameterJdbcTemplate namedJdbcTemplate, User user) {  
  72.         String idSql = "select seq_t_user.nextval from dual";  
  73.         final int id = jdbcTemplate.queryForInt(idSql); // 用序列得到ID  
  74.         user.setUserid(id);  
  75.         String sql = "insert into t_user(userid,username)values(:userid,:username)";  
  76.         namedJdbcTemplate.update(sql, new BeanPropertySqlParameterSource(user));  
  77.     }  
  78.   
  79.     /** 
  80.      * 3.修改 
  81.      * */  
  82.     public static void update(NamedParameterJdbcTemplate namedJdbcTemplate,  
  83.             User user) {  
  84.         String sql = "update t_user set username=:username where userid=:userid";  
  85.         namedJdbcTemplate.update(sql, new BeanPropertySqlParameterSource(user));  
  86.     }  
  87.   
  88.     /** 
  89.      * 4.删除 
  90.      * */  
  91.     public static void del(NamedParameterJdbcTemplate namedJdbcTemplate,  
  92.             User user) {  
  93.         String sql = "delete from t_user where userid=:userid";  
  94.         namedJdbcTemplate.update(sql, new BeanPropertySqlParameterSource(user));  
  95.     }  
  96. }  

 

 

总结:

 

  1. package com.jungle.test;  
  2.   
  3. import java.util.HashMap;  
  4. import java.util.List;  
  5. import java.util.Map;  
  6. import java.util.Properties;  
  7.   
  8. import javax.sql.DataSource;  
  9.   
  10. import org.apache.commons.dbcp.BasicDataSourceFactory;  
  11. import org.springframework.jdbc.core.BeanPropertyRowMapper;  
  12. import org.springframework.jdbc.core.JdbcTemplate;  
  13. import org.springframework.jdbc.core.namedparam.BeanPropertySqlParameterSource;  
  14. import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;  
  15.   
  16. import com.jungle.bean.User;  
  17.   
  18. /** 
  19.  * 模板总结<br> 
  20.  * 总结jdbcTemplate和NamedParameterJdbcTemplate的选择<br> 
  21.  * */  
  22. public class TotalTest {  
  23.   
  24.     public static void main(String[] args) {  
  25.         /** 
  26.          * 如下方法可见 只有在查询时候 选择JdbcTemplate,NamedParameterJdbcTemplate都一样 <br>增, 删 ,改 
  27.          * 都应选择NamedParameterJdbcTemplate<br> 
  28.          * 注意: queryForInt,queryForList 方法都只能用于基本数据类型<br> 
  29.          * (如:template.queryForList(sql ,String.class);template.queryForInt(sql ,Integer.class);)<br> 
  30.          * 自定义类型(如:User)的查询要用query方法 
  31.          */  
  32.     }  
  33.   
  34.     /** 
  35.      * 1.使用 JdbcTemplate <br> 
  36.      * 查出所有 
  37.      * */  
  38.     @SuppressWarnings({ "unchecked""rawtypes" })  
  39.     public static List<User> jdbcQueryAll(JdbcTemplate jdbcTemplate) {  
  40.         String sql = "select * from t_user";  
  41.         List<User> list = (List<User>) jdbcTemplate.query(sql,  
  42.                 new BeanPropertyRowMapper(User.class));  
  43.   
  44.         return list;  
  45.     }  
  46.   
  47.     /** 
  48.      * 2.条件查询选择NamedParameterJdbcTemplate 
  49.      * */  
  50.     @SuppressWarnings({ "unchecked""rawtypes" })  
  51.     public static List<User> ConditionQuery(  
  52.             NamedParameterJdbcTemplate namedJdbcTemplate, User user) {  
  53.         String sql = "select * from t_user where userid=:userid";  
  54.         Map map = new HashMap();  
  55.         map.put("userid", user.getUserid());  
  56.         List<User> list = namedJdbcTemplate.query(sql, map,  
  57.                 new BeanPropertyRowMapper(User.class));  
  58.   
  59.         return list;  
  60.     }  
  61.   
  62.     /** 
  63.      * 2.条件查询选择 JdbcTemplate 
  64.      * */  
  65.     @SuppressWarnings({ "unchecked""rawtypes" })  
  66.     public static List<User> query2(JdbcTemplate jdbcTemplate, int userid) {  
  67.         String sql = "select * from t_user where userid=?";  
  68.         List<User> list = (List<User>) jdbcTemplate.query(sql,  
  69.                 new Object[] { userid }, new BeanPropertyRowMapper(User.class));  
  70.   
  71.         return list;  
  72.     }  
  73.   
  74.     /** 
  75.      * 3.插入选择 NamedParameterJdbcTemplate由其是在字段多时 
  76.      * */  
  77.     public static void insert(JdbcTemplate jdbcTemplate,  
  78.             NamedParameterJdbcTemplate namedJdbcTemplate, User user) {  
  79.         String idSql = "select seq_t_user.nextval from dual";  
  80.         final int id = jdbcTemplate.queryForInt(idSql); // 用序列得到ID  
  81.         user.setUserid(id);  
  82.         String sql = "insert into t_user(userid,username)values(:userid,:username)";  
  83.         namedJdbcTemplate.update(sql, new BeanPropertySqlParameterSource(user));  
  84.     }  
  85.   
  86.     /** 
  87.      * 4.删除选择 NamedParameterJdbcTemplate 
  88.      * */  
  89.     public static void del(NamedParameterJdbcTemplate namedJdbcTemplate,  
  90.             User user) {  
  91.         String sql = "delete from t_user where userid=:userid";  
  92.         namedJdbcTemplate.update(sql, new BeanPropertySqlParameterSource(user));  
  93.     }  
  94.   
  95.     /** 
  96.      * 5.修改选择 NamedParameterJdbcTemplate 
  97.      * */  
  98.     public static void update(NamedParameterJdbcTemplate namedJdbcTemplate,  
  99.             User user) {  
  100.         String sql = "update t_user set username=:username where userid=:userid";  
  101.         namedJdbcTemplate.update(sql, new BeanPropertySqlParameterSource(user));  
  102.     }  
  103.   
  104. }  
分享到:
评论

相关推荐

    Druid / SpringTemplate / Mysql 的jar包

    Druid / SpringTemplate / Mysql 的jar包(无需积分,免费!!!)Druid / SpringTemplate / Mysql 的jar包(无需积分,免费!!!)Druid / SpringTemplate / Mysql 的jar包(无需积分,免费!!!)

    springTemplate.zip

    spring框架对jdbc的简单封装。提供了一个JDBCTemplate对象简化JDBC的开发 步骤: 1.导入jar包 2.创建JdbcTemplate对象。依赖于数据源DataSource ​ JdbcTemplate template = new jdbcTemplate(ds);

    springtemplate总结

    springtemplate,简单操作,存储过程使用总结及例子

    HBase, OMID, Haeinsa, Spring Template

    本项目关注的是四个关键技术在HBase数据库操作中的应用——HBase本身,以及OMID、Haeinsa和Spring Template。HBase是一个分布式、版本化的NoSQL数据库,构建于Hadoop之上,适合大规模数据存储。而OMID(Open ...

    Java项目03-菜谱管理系统数据库SpringTemplate实现.rar

    Java项目02-菜谱管理系统数据库SpringTemplate实现:本系统是利用控制台+数据库SpringTemplate框架完全实现的,这里提供源代码及数据库sql文件,另外后续还有swing+数据库实现

    spring-data使用mongodbTemplate对MongoDB进行读写操作

    MongoDBTemplate是Spring Data MongoDB的核心组件,它提供了丰富的API来执行常见的数据库操作。 首先,让我们深入理解`MongoDBTemplate`。它是MongoDB操作的抽象层,封装了大量的CRUD(创建、读取、更新、删除)...

    Java项目04-天天生鲜订菜管理系统云数据库&SpringTemplate;实现&Linux;演示.rar

    Java项目04-天天生鲜订菜管理系统阿里云mysql数据库&SpringTemplate;实现&Linux;演示:本项目阿里云mysql数据库&SpringTemplate;实现并提供利用Xshell在Linux环境下答辩展示视频,这里提供源码和数据库sql备份文件及...

    (2020.1.16更新) Druid / SpringTemplate / Mysql 的jar包(无需积分,免费!!!)

    【标题】中的"(2020.1.16更新) Druid / SpringTemplate / Mysql 的jar包(无需积分,免费!!!)"表明这是一个关于Java开发的资源包,其中包含了Druid、SpringTemplate和Mysql相关的jar文件,且这个资源在2020年1月...

    Spring boot+Spring JDBC Template+mysql+ sharding-j-subdb.zip

    在IT行业中,Spring Boot、Spring JDBC Template、MySQL和Sharding-J-Subdb是常见的技术组件,它们在构建高效、可扩展的分布式数据库系统中扮演着重要角色。让我们深入了解一下这些技术及其相互之间的协同工作。 ...

    spring-android-rest-template-1.0.1.RELEASE.jar.zip

    《Spring Android REST Template详解》 在移动开发领域,Android与后端服务的交互是一个不可或缺的部分。Spring框架,作为Java开发的基石,也扩展到了Android平台,提供了Spring for Android的组件,其中Spring ...

    前期项目 Spring+Spring MVC+JDBC Template 增删改查

    本项目聚焦于Spring、Spring MVC和JDBC Template的集成应用,用于实现数据库的增删改查操作。这是一套常见的企业级应用开发模式,对于理解和掌握Java Web开发至关重要。 首先,Spring框架是一个开源的应用框架,它...

    spring template连接JDBC样例

    简单的spring连接JDBC样例,在TOMCAT5.5下完成.可以进行修改后直接使用.新建工程,在MyEclipse环境下导入SPRING文件.将MYSQL驱动拷贝至%工程地址%\WebRoot\WEB-INF\lib 文件夹下,然后将src文件夹替换,即可进行测试. ...

    spring jdbc Templatetest 访问mysql数据库,批量插入数据

    在Java开发中,Spring JDBC Template是一个非常重要的工具,它提供了对数据库操作的抽象层,简化了JDBC的繁琐工作,使我们能够更加专注于业务逻辑。本主题将详细讲解如何使用Spring JDBC Template访问MySQL数据库并...

    springMongodb参考文档中文版

    - **MongoTemplate**:作为Spring Data MongoDB的核心类,提供了丰富的操作MongoDB的方法。 - **文档操作**:涵盖了保存、更新、删除文档等操作。 - **查询文档**:包括查询集合中的文档、地理空间查询、全文查询等...

    spring用到的jar包_spring用到的jar包_已分类_

    1. **Spring核心jar包**:这是Spring框架的基础,主要包括`spring-core`、`spring-beans`、`spring-context`和`spring-expression`。`spring-core`提供了基础工具类和资源处理能力;`spring-beans`负责Bean的创建、...

    使用spring jdbc template简化jdbc数据库操作实例代码

    Spring JDBC Template是Spring框架的一部分,它为Java数据库连接(JDBC)提供了一种抽象层,目的是简化数据库操作,同时保留了JDBC的灵活性。在实际开发中,它可以帮助我们避免编写大量的样板代码,如手动打开和关闭...

    使用 Spring JDBC Template 对数据库查询(登录)和删除(maven)

    使用 Spring JDBC Template 对数据库查询(登录)和删除(maven),图文教程地址:https://blog.csdn.net/qq_40147863/article/details/86015509

    SpringCloud-Ribbon,使用RestfulTemplate实现负载均衡练习

    以上就是使用Spring Cloud Ribbon结合RestfulTemplate实现负载均衡的基本步骤。通过这种方式,我们可以轻松地在多个服务实例之间进行负载均衡,提升系统的稳定性和扩展性。在实际项目中,还可以根据需要自定义负载...

    使用 Spring MVC + JDBC Template 实现筛选、检索功能(maven)

    使用 Spring MVC + JDBC Template 实现筛选、检索功能(maven),图文教程地址:https://blog.csdn.net/qq_40147863/article/details/86187642

    springdata mongodb api文档

    文档中提到的MongoTemplate是SpringData MongoDB中的另一个重要组成部分。这是一个用于MongoDB操作的类,它封装了对MongoDB的基本CRUD(创建、读取、更新、删除)操作,并且提供了一个更加面向对象的接口,使得...

Global site tag (gtag.js) - Google Analytics