Spring中使用JDBC做的增删改查

来源:互联网 发布:maya软件破解版 编辑:程序博客网 时间:2024/06/15 22:12

Spring中使用JDBC做的增删改查

    博客分类: 
  • spring
JDBCSpringBeanSQLDAO 

Spring中使用JDBC做的增删改查

    有三种方式使用JDBC。

1、使用JdbcTemplate类,实现使用JDBC ,参数是用object数组传递的

 

业务类:

Java代码  收藏代码
  1. public class UserDaoImpl implements UserDao{  
  2. //  定义一个Jdbc  
  3.     private JdbcTemplate jt;  
  4. //  必须有set 方法,因为是通过set方法装配的  
  5.     public void setJt(JdbcTemplate jt) {  
  6.         this.jt = jt;  
  7.     }  
  8.     @Override  
  9.     public void delete(int id) {  
  10.         // TODO Auto-generated method stub  
  11.         String sql="delete from user where id="+id;  
  12.         int temp=this.jt.update(sql);  
  13.         if(temp>0){  
  14.             System.out.println("删除成功!");  
  15.         }else{  
  16.             System.out.println("删除失败!");  
  17.         }  
  18.     }  
  19.   
  20.     @Override  
  21.     public void insert(User entity) {  
  22.         // TODO Auto-generated method stub  
  23.         String sql="insert into user(name,age,sex) values(?,?,?)";  
  24.         Object obj[]={entity.getName(),entity.getAge(),entity.getSex()};  
  25.         int temp=this.jt.update(sql,obj);  
  26.         if(temp>0){  
  27.             System.out.println("插入成功!");  
  28.         }else{  
  29.             System.out.println("插入失败!");  
  30.         }  
  31.     }  
  32.   
  33.       
  34.   
  35.     @Override  
  36.     public List<User> selectAll() {  
  37.         String sql="select * from user";  
  38.         List list=this.jt.query(sql,new RowMapper(){  
  39.   
  40.             @Override  
  41.             public Object mapRow(ResultSet rs, int row) throws SQLException {  
  42.                 // TODO Auto-generated method stub  
  43.                 User user=new User();  
  44.                 user.setId(rs.getInt("id"));  
  45.                 user.setName(rs.getString("name"));  
  46.                 user.setAge(rs.getInt("age"));  
  47.                 user.setSex(rs.getString("sex"));                 
  48.                 return user;  
  49.             }  
  50.               
  51.         });  
  52.         System.out.println(list.size());  
  53.         // TODO Auto-generated method stub  
  54.         return list;  
  55.     }  
  56.   
  57.     @Override  
  58.     public User selectById(int id) {  
  59.         // TODO Auto-generated method stub  
  60.         String sql="select id,name,age,sex from user where id="+id;  
  61.         User user=(User)jt.queryForObject(sql, new RowMapper(){  
  62.   
  63.             @Override  
  64.             public Object mapRow(ResultSet rs, int arg1) throws SQLException {  
  65.                 // TODO Auto-generated method stub  
  66.                 User user=new User();  
  67.                 user.setId(rs.getInt("id"));  
  68.                 user.setName(rs.getString("name"));  
  69.                 user.setAge(rs.getInt("age"));  
  70.                 user.setSex(rs.getString("sex"));                 
  71.                 return user;  
  72.             }  
  73.               
  74.         });  
  75.   
  76.         return user;  
  77.     }  
  78.   
  79.     @Override  
  80.     public void update(User entity) {  
  81.         // TODO Auto-generated method stub  
  82.         String sql="update user set name=?,age=?,sex=? where id=?";  
  83.         Object obj[]={entity.getName(),entity.getAge(),entity.getSex(),entity.getId()};  
  84.         int temp=jt.update(sql,obj);  
  85.         if(temp>0){  
  86.             System.out.println("更新成功!");  
  87.         }else{  
  88.             System.out.println("更新失败!");  
  89.         }  
  90.     }  
  91.   
  92. }  
  

Xml中的部分代码:

Java代码  收藏代码
  1. <!-- 分散配置 -->  
  2. <context:property-placeholder location="jdbc.properties" />  
  3. <!--  c3p0的数据源,设置它是为了配置jbdcTemplate-->  
  4. <bean id="comboPooledDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">  
  5.     <!-- 驱动程序 -->  
  6.     <property name="driverClass">  
  7.         <value>${driverClass}</value>  
  8.     </property>  
  9.     <!-- 用户名 -->  
  10.     <property name="user">  
  11.         <value>${username}</value>  
  12.     </property>  
  13.     <!-- 密码 -->  
  14.     <property name="password">  
  15.         <value>${password}</value>  
  16.     </property>  
  17.     <!-- url -->  
  18.     <property name="jdbcUrl">  
  19.         <value>${url}</value>  
  20.     </property>  
  21.     <!-- 最大池数 -->  
  22.     <property name="maxPoolSize">  
  23.         <value>${c3p0.pool.max}</value>  
  24.     </property>  
  25.     <!-- 最小池数 -->  
  26.     <property name="minPoolSize">  
  27.         <value>${c3p0.pool.min}</value>  
  28.     </property>  
  29.     <!-- 初始化的池数 -->  
  30.     <property name="initialPoolSize">  
  31.         <value>${c3p0.pool.init}</value>  
  32.     </property>  
  33. </bean>  
  34. <!-- 配置jdbcTemplate的bean ,设置它是为了设置业务bean中的jdbcTemplate参数-->  
  35. <span style="background-color: #ffff00;"><span style="background-color: #f9b3ec;"><span style="background-color: #f9b3ec;"><span style="background-color: #ff0000;"><bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">  
  36.     <constructor-arg ref="comboPooledDataSource" />  
  37. </bean></span></span></span></span>  
  38. <!-- 设置业务bean -->  
  39. <bean id="userDaoImpl" class="cn.csdn.dao.UserDaoImpl">  
  40.     <property name="jt" ref="jdbcTemplate" />  
  41. </bean>  
  

2、使用NamedParameterJdbcTemplate类,实现JDBC,参数是用Map集合传递的

业务类:

Java代码  收藏代码
  1. public class UserDaoImpl2 implements UserDao{  
  2. //  定义一个Jdbc  
  3.     private NamedParameterJdbcTemplate npjt;  
  4. //  必须有set 方法,因为NamedParameterJdbcTemplate类是用set方法加载的  
  5.     public void setNpjt(NamedParameterJdbcTemplate npjt){  
  6.         this.npjt=npjt;  
  7.     }  
  8.     @Override  
  9.     public void delete(int id) {  
  10.         // TODO Auto-generated method stub  
  11.         String sql="delete from user where id=:id";  
  12.         Map<String,Object> map=new HashMap<String,Object>();  
  13.         map.put("id", id);  
  14.         int temp=this.npjt.update(sql,map);  
  15.         if(temp>0){  
  16.             System.out.println("删除成功!");  
  17.         }else{  
  18.             System.out.println("删除失败!");  
  19.         }  
  20.     }  
  21.   
  22.     @Override  
  23.     public void insert(User entity) {  
  24.         // TODO Auto-generated method stub  
  25.         String sql="insert into user(name,age,sex) values(:name,:age,:sex)";  
  26.         Map<String,Object> map=new HashMap<String,Object>();  
  27.         map.put("name", entity.getName());  
  28.         map.put("age", entity.getAge());  
  29.         map.put("sex", entity.getSex());  
  30.         int temp=npjt.update(sql, map);  
  31.         if(temp>0){  
  32.             System.out.println("插入成功!");  
  33.         }else{  
  34.             System.out.println("插入失败!");  
  35.         }  
  36.     }  
  37. //  
  38. //    
  39. //  
  40.     @Override  
  41.     public List<User> selectAll() {  
  42.         String sql="select * from user";  
  43. //      List list=this.npjt.queryForList(sql, new HashMap());  
  44.         List list=npjt.query(sql, new HashMap(),new RowMapper(){  
  45.   
  46.             @Override  
  47.             public Object mapRow(ResultSet rs, int arg1) throws SQLException {  
  48.                 // TODO Auto-generated method stub  
  49.                 User user=new User();  
  50.                 user.setId(rs.getInt("id"));  
  51.                 user.setName(rs.getString("name"));  
  52.                 user.setAge(rs.getInt("age"));  
  53.                 user.setSex(rs.getString("sex"));                 
  54.                 return user;  
  55.             }  
  56.               
  57.         });  
  58.         System.out.println(list.size());  
  59.         return list;  
  60.     }  
  61.       
  62.     @Override  
  63.     public User selectById(int id) {  
  64.         // TODO Auto-generated method stub  
  65.         String sql="select id,name,age,sex from user where id=1";  
  66.           
  67.         Map<String,Object> map=new HashMap<String,Object>();          
  68.         map.put("id", id);  
  69.         User user=(User)npjt.queryForObject(sql, map, new RowMapper(){  
  70.   
  71.             @Override  
  72.             public Object mapRow(ResultSet rs, int arg1) throws SQLException {  
  73.                 User user=new User();  
  74.                 user.setId(rs.getInt("id"));  
  75.                 user.setName(rs.getString("name"));  
  76.                 user.setAge(rs.getInt("age"));  
  77.                 user.setSex(rs.getString("sex"));                 
  78.                 return user;  
  79.             }  
  80.               
  81.         });  
  82.         return user;      
  83.     }  
  84. //  
  85.     @Override  
  86.     public void update(User entity) {  
  87.         // TODO Auto-generated method stub  
  88.         String sql="update user set name=:name,age=:age,sex=:sex where id=:id";  
  89.         Map<String,Object> map=new HashMap<String,Object>();  
  90.         map.put("name", entity.getName());  
  91.         map.put("age", entity.getAge());  
  92.         map.put("sex", entity.getSex());  
  93.         map.put("id", entity.getId());  
  94.         int temp=npjt.update(sql, map);  
  95.         if(temp>0){  
  96.             System.out.println("更新成功!");  
  97.         }else{  
  98.             System.out.println("更新失败!");  
  99.         }  
  100.     }  
  101.   
  102. }  

  xml中的代码:

Java代码  收藏代码
  1. <!-- 分散配置 -->  
  2.     <context:property-placeholder location="jdbc.properties" />  
  3.     <!--  c3p0的数据源,设置它是为了配置jbdcTemplate-->  
  4.     <bean id="comboPooledDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">  
  5.         <!-- 驱动程序 -->  
  6.         <property name="driverClass">  
  7.             <value>${driverClass}</value>  
  8.         </property>  
  9.         <!-- 用户名 -->  
  10.         <property name="user">  
  11.             <value>${username}</value>  
  12.         </property>  
  13.         <!-- 密码 -->  
  14.         <property name="password">  
  15.             <value>${password}</value>  
  16.         </property>  
  17.         <!-- url -->  
  18.         <property name="jdbcUrl">  
  19.             <value>${url}</value>  
  20.         </property>  
  21.         <!-- 最大池数 -->  
  22.         <property name="maxPoolSize">  
  23.             <value>${c3p0.pool.max}</value>  
  24.         </property>  
  25.         <!-- 最小池数 -->  
  26.         <property name="minPoolSize">  
  27.             <value>${c3p0.pool.min}</value>  
  28.         </property>  
  29.         <!-- 初始化的池数 -->  
  30.         <property name="initialPoolSize">  
  31.             <value>${c3p0.pool.init}</value>  
  32.         </property>  
  33.     </bean>  
  34.       
  35.       
  36.       
  37.     <span style="background-color: #ff0000;"><!-- 配置jdbcTemplate的bean ,设置它是为了设置业务bean中的jdbcTemplate参数-->  
  38.     <bean id="namedParameterJdbcTemplate" class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate">  
  39.     <constructor-arg ref="comboPooledDataSource"/>  
  40.     </bean></span>  
  41.     <!-- 设置业务bean -->  
  42.     <bean id="userDaoImpl" class="cn.csdn.dao.UserDaoImpl2">  
  43.         <property name="npjt" ref="namedParameterJdbcTemplate" />  
  44.     </bean>  
  

3、使用SimpleJdbcTemplate类,实现JDBC,参数是用可变参数传递的

业务类:

Java代码  收藏代码
  1. public class UserDaoImpl3 implements UserDao{  
  2. //  定义一个Jdbc  
  3.     private SimpleJdbcTemplate sjt;  
  4. //  必须有set 方法  
  5.     public void setSjt(SimpleJdbcTemplate sjt){  
  6.         this.sjt=sjt;  
  7.     }  
  8.       
  9.     @Override  
  10.     public void delete(int id) {  
  11.         // TODO Auto-generated method stub  
  12.         String sql="delete from user where id=?";         
  13.         int temp=this.sjt.update(sql, id);  
  14.         if(temp>0){  
  15.             System.out.println("删除成功!");  
  16.         }else{  
  17.             System.out.println("删除失败!");  
  18.         }  
  19.     }  
  20.   
  21.     @Override  
  22.     public void insert(User entity) {  
  23.         // TODO Auto-generated method stub  
  24.         String sql="insert into user(name,age,sex) values(?,?,?)";  
  25.   
  26.         int temp=sjt.update(sql,entity.getName(),entity.getAge(),entity.getSex());  
  27.         if(temp>0){  
  28.             System.out.println("插入成功!");  
  29.         }else{  
  30.             System.out.println("插入失败!");  
  31.         }  
  32.     }  
  33.   
  34.     @Override  
  35.     public List<User> selectAll() {  
  36.         String sql="select * from user";  
  37.         List list=this.sjt.queryForList(sql);  
  38.   
  39.         System.out.println(list.size());  
  40.         return list;  
  41.     }  
  42.   
  43.     @Override  
  44.     public User selectById(int id) {  
  45.         // TODO Auto-generated method stub  
  46.         String sql="select id,name,age,sex from user where id=?";  
  47.         User user=(User) sjt.queryForObject(sql, new ParameterizedRowMapper() {  
  48.   
  49.             @Override  
  50.             public Object mapRow(ResultSet rs, int arg1) throws SQLException {  
  51.                 User user=new User();  
  52.                 user.setId(rs.getInt("id"));  
  53.                 user.setName(rs.getString("name"));  
  54.                 user.setAge(rs.getInt("age"));  
  55.                 user.setSex(rs.getString("sex"));                 
  56.                 return user;  
  57.             }  
  58.         }, id);  
  59.         return user;  
  60.     }  
  61.   
  62.     @Override  
  63.     public void update(User entity) {  
  64.         // TODO Auto-generated method stub  
  65.         /**第一种方法*/  
  66. //      String sql="update user set name=?,age=?,sex=? where id=?";  
  67.           
  68. //      int temp=sjt.update(sql, entity.getName(),entity.getAge(),entity.getSex(),entity.getId());  
  69.     /**第二种方法*/    
  70.         String sql="update user set name=:name,age=:age,sex=:sex where id=:id";  
  71.         Map<String,Object> map=new HashMap<String,Object>();  
  72.         map.put("name", entity.getName());  
  73.         map.put("age", entity.getAge());  
  74.         map.put("sex", entity.getSex());  
  75.         map.put("id", entity.getId());  
  76.         int temp=sjt.update(sql, map);  
  77.         if(temp>0){  
  78.             System.out.println("更新成功!");  
  79.         }else{  
  80.             System.out.println("更新失败!");  
  81.         }  
  82.     }  
  83.   
  84. }  

  xml中的部分代码:

Java代码  收藏代码
  1. <!-- 分散配置 -->  
  2.     <context:property-placeholder location="jdbc.properties" />  
  3.     <!--  c3p0的数据源,设置它是为了配置jbdcTemplate-->  
  4.     <bean id="comboPooledDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">  
  5.         <!-- 驱动程序 -->  
  6.         <property name="driverClass">  
  7.             <value>${driverClass}</value>  
  8.         </property>  
  9.         <!-- 用户名 -->  
  10.         <property name="user">  
  11.             <value>${username}</value>  
  12.         </property>  
  13.         <!-- 密码 -->  
  14.         <property name="password">  
  15.             <value>${password}</value>  
  16.         </property>  
  17.         <!-- url -->  
  18.         <property name="jdbcUrl">  
  19.             <value>${url}</value>  
  20.         </property>  
  21.         <!-- 最大池数 -->  
  22.         <property name="maxPoolSize">  
  23.             <value>${c3p0.pool.max}</value>  
  24.         </property>  
  25.         <!-- 最小池数 -->  
  26.         <property name="minPoolSize">  
  27.             <value>${c3p0.pool.min}</value>  
  28.         </property>  
  29.         <!-- 初始化的池数 -->  
  30.         <property name="initialPoolSize">  
  31.             <value>${c3p0.pool.init}</value>  
  32.         </property>  
  33.     </bean>  
  34.       
  35.       
  36.       
  37.     <span style="background-color: #ff0000;"><!-- 配置jdbcTemplate的bean ,设置它是为了设置业务bean中的jdbcTemplate参数-->  
  38.     <bean id="simpleJdbcTemplate" class="org.springframework.jdbc.core.simple.SimpleJdbcTemplate">  
  39.     <constructor-arg ref="comboPooledDataSource"/>  
  40.     </bean></span>  
  41.     <!-- 设置业务bean -->  
  42.     <bean id="userDaoImpl" class="cn.csdn.dao.UserDaoImpl3">  
  43.         <property name="sjt" ref="simpleJdbcTemplate" />  
  44.     </bean>  
 
分享到:  
Spring+Hibernate两种方法实现增删改查 | AOP中的注解自动装配通知
  • 2011-05-08 20:21
  • 浏览 10477
  • 评论(0)
  • 分类:企业架构
  • 查看更多