Spring中使用JDBC做的增刪改查,參考意義極大!

Spring中使用JDBC做的增刪改查

    有三種方式使用JDBC。


1、使用JdbcTemplate類,實現使用JDBC ,參數是用object數組傳遞的

 

業務類:

Java代碼
public class UserDaoImpl implements UserDao{  
//  定義一個Jdbc  
    private JdbcTemplate jt;  
//  必須有set 方法,因爲是通過set方法裝配的  
    public void setJt(JdbcTemplate jt) {  
        this.jt = jt;  
    }  
    @Override  
    public void delete(int id) {  
        // TODO Auto-generated method stub  
        String sql="delete from user where id="+id;  
        int temp=this.jt.update(sql);  
        if(temp>0){  
            System.out.println("刪除成功!");  
        }else{  
            System.out.println("刪除失敗!");  
        }  
    }  
  
    @Override  
    public void insert(User entity) {  
        // TODO Auto-generated method stub  
        String sql="insert into user(name,age,sex) values(?,?,?)";  
        Object obj[]={entity.getName(),entity.getAge(),entity.getSex()};  
        int temp=this.jt.update(sql,obj);  
        if(temp>0){  
            System.out.println("插入成功!");  
        }else{  
            System.out.println("插入失敗!");  
        }  
    }  
  
      
  
    @Override  
    public List<User> selectAll() {  
        String sql="select * from user";  
        List list=this.jt.query(sql,new RowMapper(){  
  
            @Override  
            public Object mapRow(ResultSet rs, int row) throws SQLException {  
                // TODO Auto-generated method stub  
                User user=new User();  
                user.setId(rs.getInt("id"));  
                user.setName(rs.getString("name"));  
                user.setAge(rs.getInt("age"));  
                user.setSex(rs.getString("sex"));                 
                return user;  
            }  
              
        });  
        System.out.println(list.size());  
        // TODO Auto-generated method stub  
        return list;  
    }  
  
    @Override  
    public User selectById(int id) {  
        // TODO Auto-generated method stub  
        String sql="select id,name,age,sex from user where id="+id;  
        User user=(User)jt.queryForObject(sql, new RowMapper(){  
  
            @Override  
            public Object mapRow(ResultSet rs, int arg1) throws SQLException {  
                // TODO Auto-generated method stub  
                User user=new User();  
                user.setId(rs.getInt("id"));  
                user.setName(rs.getString("name"));  
                user.setAge(rs.getInt("age"));  
                user.setSex(rs.getString("sex"));                 
                return user;  
            }  
              
        });  
  
        return user;  
    }  
  
    @Override  
    public void update(User entity) {  
        // TODO Auto-generated method stub  
        String sql="update user set name=?,age=?,sex=? where id=?";  
        Object obj[]={entity.getName(),entity.getAge(),entity.getSex(),entity.getId()};  
        int temp=jt.update(sql,obj);  
        if(temp>0){  
            System.out.println("更新成功!");  
        }else{  
            System.out.println("更新失敗!");  
        }  
    }  
  
}

  •  

Xml中的部分代碼: 
<!-- 分散配置 -->  
<context:property-placeholder location="jdbc.properties" />  
<!--  c3p0的數據源,設置它是爲了配置jbdcTemplate-->  
<bean id="comboPooledDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">  
    <!-- 驅動程序 -->  
    <property name="driverClass">  
        <value>${driverClass}</value>  
    </property>  
    <!-- 用戶名 -->  
    <property name="user">  
        <value>${username}</value>  
    </property>  
    <!-- 密碼 -->  
    <property name="password">  
        <value>${password}</value>  
    </property>  
    <!-- url -->  
    <property name="jdbcUrl">  
        <value>${url}</value>  
    </property>  
    <!-- 最大池數 -->  
    <property name="maxPoolSize">  
        <value>${c3p0.pool.max}</value>  
    </property>  
    <!-- 最小池數 -->  
    <property name="minPoolSize">  
        <value>${c3p0.pool.min}</value>  
    </property>  
    <!-- 初始化的池數 -->  
    <property name="initialPoolSize">  
        <value>${c3p0.pool.init}</value>  
    </property>  
</bean>  
<!-- 配置jdbcTemplate的bean ,設置它是爲了設置業務bean中的jdbcTemplate參數-->  
<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">  
    <constructor-arg ref="comboPooledDataSource" />  
</bean></span></span></span></span>  
<!-- 設置業務bean -->  
<bean id="userDaoImpl" class="cn.csdn.dao.UserDaoImpl">  
    <property name="jt" ref="jdbcTemplate" />  
</bean>


2、使用NamedParameterJdbcTemplate類,實現JDBC,參數是用Map集合傳遞的

業務類:

Java代碼  
public class UserDaoImpl2 implements UserDao{  
//  定義一個Jdbc  
    private NamedParameterJdbcTemplate npjt;  
//  必須有set 方法,因爲NamedParameterJdbcTemplate類是用set方法加載的  
    public void setNpjt(NamedParameterJdbcTemplate npjt){  
        this.npjt=npjt;  
    }  
    @Override  
    public void delete(int id) {  
        // TODO Auto-generated method stub  
        String sql="delete from user where id=:id";  
        Map<String,Object> map=new HashMap<String,Object>();  
        map.put("id", id);  
        int temp=this.npjt.update(sql,map);  
        if(temp>0){  
            System.out.println("刪除成功!");  
        }else{  
            System.out.println("刪除失敗!");  
        }  
    }  
  
    @Override  
    public void insert(User entity) {  
        // TODO Auto-generated method stub  
        String sql="insert into user(name,age,sex) values(:name,:age,:sex)";  
        Map<String,Object> map=new HashMap<String,Object>();  
        map.put("name", entity.getName());  
        map.put("age", entity.getAge());  
        map.put("sex", entity.getSex());  
        int temp=npjt.update(sql, map);  
        if(temp>0){  
            System.out.println("插入成功!");  
        }else{  
            System.out.println("插入失敗!");  
        }  
    }  
//  
//    
//  
    @Override  
    public List<User> selectAll() {  
        String sql="select * from user";  
//      List list=this.npjt.queryForList(sql, new HashMap());  
        List list=npjt.query(sql, new HashMap(),new RowMapper(){  
  
            @Override  
            public Object mapRow(ResultSet rs, int arg1) throws SQLException {  
                // TODO Auto-generated method stub  
                User user=new User();  
                user.setId(rs.getInt("id"));  
                user.setName(rs.getString("name"));  
                user.setAge(rs.getInt("age"));  
                user.setSex(rs.getString("sex"));                 
                return user;  
            }  
              
        });  
        System.out.println(list.size());  
        return list;  
    }  
      
    @Override  
    public User selectById(int id) {  
        // TODO Auto-generated method stub  
        String sql="select id,name,age,sex from user where id=1";  
          
        Map<String,Object> map=new HashMap<String,Object>();          
        map.put("id", id);  
        User user=(User)npjt.queryForObject(sql, map, new RowMapper(){  
  
            @Override  
            public Object mapRow(ResultSet rs, int arg1) throws SQLException {  
                User user=new User();  
                user.setId(rs.getInt("id"));  
                user.setName(rs.getString("name"));  
                user.setAge(rs.getInt("age"));  
                user.setSex(rs.getString("sex"));                 
                return user;  
            }  
              
        });  
        return user;      
    }  
//  
    @Override  
    public void update(User entity) {  
        // TODO Auto-generated method stub  
        String sql="update user set name=:name,age=:age,sex=:sex where id=:id";  
        Map<String,Object> map=new HashMap<String,Object>();  
        map.put("name", entity.getName());  
        map.put("age", entity.getAge());  
        map.put("sex", entity.getSex());  
        map.put("id", entity.getId());  
        int temp=npjt.update(sql, map);  
        if(temp>0){  
            System.out.println("更新成功!");  
        }else{  
            System.out.println("更新失敗!");  
        }  
    }  
  
}


XML代碼  收藏代碼

  1. <!-- 分散配置 -->  
        <context:property-placeholder location="jdbc.properties" />  
        <!--  c3p0的數據源,設置它是爲了配置jbdcTemplate-->  
        <bean id="comboPooledDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">  
            <!-- 驅動程序 -->  
            <property name="driverClass">  
                <value>${driverClass}</value>  
            </property>  
            <!-- 用戶名 -->  
            <property name="user">  
                <value>${username}</value>  
            </property>  
            <!-- 密碼 -->  
            <property name="password">  
                <value>${password}</value>  
            </property>  
            <!-- url -->  
            <property name="jdbcUrl">  
                <value>${url}</value>  
            </property>  
            <!-- 最大池數 -->  
            <property name="maxPoolSize">  
                <value>${c3p0.pool.max}</value>  
            </property>  
            <!-- 最小池數 -->  
            <property name="minPoolSize">  
                <value>${c3p0.pool.min}</value>  
            </property>  
            <!-- 初始化的池數 -->  
            <property name="initialPoolSize">  
                <value>${c3p0.pool.init}</value>  
            </property>  
        </bean>  
          
          
          
        <span style="background-color: #ff0000;"><!-- 配置jdbcTemplate的bean ,設置它是爲了設置業務bean中的jdbcTemplate參數-->  
        <bean id="namedParameterJdbcTemplate" class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate">  
        <constructor-arg ref="comboPooledDataSource"/>  
        </bean></span>  
        <!-- 設置業務bean -->  
        <bean id="userDaoImpl" class="cn.csdn.dao.UserDaoImpl2">  
            <property name="npjt" ref="namedParameterJdbcTemplate" />  
        </bean>

  3、使用SimpleJdbcTemplate類,實現JDBC,參數是用可變參數傳遞的

業務類:

Java代碼  
public class UserDaoImpl3 implements UserDao{  
//  定義一個Jdbc  
    private SimpleJdbcTemplate sjt;  
//  必須有set 方法  
    public void setSjt(SimpleJdbcTemplate sjt){  
        this.sjt=sjt;  
    }  
      
    @Override  
    public void delete(int id) {  
        // TODO Auto-generated method stub  
        String sql="delete from user where id=?";         
        int temp=this.sjt.update(sql, id);  
        if(temp>0){  
            System.out.println("刪除成功!");  
        }else{  
            System.out.println("刪除失敗!");  
        }  
    }  
  
    @Override  
    public void insert(User entity) {  
        // TODO Auto-generated method stub  
        String sql="insert into user(name,age,sex) values(?,?,?)";  
  
        int temp=sjt.update(sql,entity.getName(),entity.getAge(),entity.getSex());  
        if(temp>0){  
            System.out.println("插入成功!");  
        }else{  
            System.out.println("插入失敗!");  
        }  
    }  
  
    @Override  
    public List<User> selectAll() {  
        String sql="select * from user";  
        List list=this.sjt.queryForList(sql);  
  
        System.out.println(list.size());  
        return list;  
    }  
  
    @Override  
    public User selectById(int id) {  
        // TODO Auto-generated method stub  
        String sql="select id,name,age,sex from user where id=?";  
        User user=(User) sjt.queryForObject(sql, new ParameterizedRowMapper() {  
  
            @Override  
            public Object mapRow(ResultSet rs, int arg1) throws SQLException {  
                User user=new User();  
                user.setId(rs.getInt("id"));  
                user.setName(rs.getString("name"));  
                user.setAge(rs.getInt("age"));  
                user.setSex(rs.getString("sex"));                 
                return user;  
            }  
        }, id);  
        return user;  
    }  
  
    @Override  
    public void update(User entity) {  
        // TODO Auto-generated method stub  
        /**第一種方法*/  
//      String sql="update user set name=?,age=?,sex=? where id=?";  
          
//      int temp=sjt.update(sql, entity.getName(),entity.getAge(),entity.getSex(),entity.getId());  
    /**第二種方法*/    
        String sql="update user set name=:name,age=:age,sex=:sex where id=:id";  
        Map<String,Object> map=new HashMap<String,Object>();  
        map.put("name", entity.getName());  
        map.put("age", entity.getAge());  
        map.put("sex", entity.getSex());  
        map.put("id", entity.getId());  
        int temp=sjt.update(sql, map);  
        if(temp>0){  
            System.out.println("更新成功!");  
        }else{  
            System.out.println("更新失敗!");  
        }  
    }  
  
}

xml中的部分代碼:

XML代碼  
<!-- 分散配置 -->  
    <context:property-placeholder location="jdbc.properties" />  
    <!--  c3p0的數據源,設置它是爲了配置jbdcTemplate-->  
    <bean id="comboPooledDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">  
        <!-- 驅動程序 -->  
        <property name="driverClass">  
            <value>${driverClass}</value>  
        </property>  
        <!-- 用戶名 -->  
        <property name="user">  
            <value>${username}</value>  
        </property>  
        <!-- 密碼 -->  
        <property name="password">  
            <value>${password}</value>  
        </property>  
        <!-- url -->  
        <property name="jdbcUrl">  
            <value>${url}</value>  
        </property>  
        <!-- 最大池數 -->  
        <property name="maxPoolSize">  
            <value>${c3p0.pool.max}</value>  
        </property>  
        <!-- 最小池數 -->  
        <property name="minPoolSize">  
            <value>${c3p0.pool.min}</value>  
        </property>  
        <!-- 初始化的池數 -->  
        <property name="initialPoolSize">  
            <value>${c3p0.pool.init}</value>  
        </property>  
    </bean>  
      
      
      
    <span style="background-color: #ff0000;"><!-- 配置jdbcTemplate的bean ,設置它是爲了設置業務bean中的jdbcTemplate參數-->  
    <bean id="simpleJdbcTemplate" class="org.springframework.jdbc.core.simple.SimpleJdbcTemplate">  
    <constructor-arg ref="comboPooledDataSource"/>  
    </bean></span>  
    <!-- 設置業務bean -->  
    <bean id="userDaoImpl" class="cn.csdn.dao.UserDaoImpl3">  
        <property name="sjt" ref="simpleJdbcTemplate" />  
    </bean>


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章