spring jdbctemplate的增删改查

来源:互联网 发布:网络推广培训 编辑:程序博客网 时间:2024/06/06 02:56

1.首先先添加两个包:

c3p0-0.9.1.2.jar 和 mysql-connector-java-5.1.7-bin.jar

 

 

创建一个file  jdbc.properties

Java代码  收藏代码
  1. DriverClass=com.mysql.jdbc.Driver  
  2. jdbcUrl=jdbc\:mysql\://localhost\:3306/0902?useUnicode\=true&characterEncoding\=UTF-8  
  3. user=root  
  4. pass=root  

 
2.创建一个java类
Emp.java

Java代码  收藏代码
  1. package cn.nm.domain;  
  2.   
  3. import java.io.Serializable;  
  4. import java.util.Date;  
  5.   
  6. public class Emp implements Serializable{  
  7.   
  8.       
  9.     private static final long serialVersionUID = 1L;  
  10.     private Integer id;  
  11.     private String name;  
  12.     private String sex;  
  13.     private String pass;  
  14.     private Date hiredate;  
  15.     public Emp() {  
  16.         super();  
  17.         // TODO Auto-generated constructor stub  
  18.     }  
  19.     public Emp(Integer id, String name, String sex, String pass, Date hiredate) {  
  20.         super();  
  21.         this.id = id;  
  22.         this.name = name;  
  23.         this.sex = sex;  
  24.         this.pass = pass;  
  25.         this.hiredate = hiredate;  
  26.     }  
  27.     public Integer getId() {  
  28.         return id;  
  29.     }  
  30.     public void setId(Integer id) {  
  31.         this.id = id;  
  32.     }  
  33.     public String getName() {  
  34.         return name;  
  35.     }  
  36.     public void setName(String name) {  
  37.         this.name = name;  
  38.     }  
  39.     public String getSex() {  
  40.         return sex;  
  41.     }  
  42.     public void setSex(String sex) {  
  43.         this.sex = sex;  
  44.     }  
  45.     public String getPass() {  
  46.         return pass;  
  47.     }  
  48.     public void setPass(String pass) {  
  49.         this.pass = pass;  
  50.     }  
  51.     public Date getHiredate() {  
  52.         return hiredate;  
  53.     }  
  54.     public void setHiredate(Date hiredate) {  
  55.         this.hiredate = hiredate;  
  56.     }  
  57.       
  58.       
  59. }  

 3.定义一个接口类

EmpDao.java

Java代码  收藏代码
  1. package cn.nm.dao;  
  2.   
  3. import java.util.List;  
  4.   
  5. import cn.nm.domain.Emp;  
  6.   
  7. public interface EmpDao {  
  8.     /*插入的操作*/  
  9.     boolean insert(Emp entity);  
  10.     /*更新操作*/  
  11.     boolean update(Emp entity);  
  12.     /*删除的操作*/  
  13.     boolean delete(Emp entity);  
  14.     /*根据主键id查询*/  
  15.     Emp findById(Integer id);  
  16.     /*查询所有*/  
  17.     List<Emp> findAll();  
  18.   
  19. }  

 4.创建一个EmpDaoImpl.java

Java代码  收藏代码
  1. package cn.nm.dao;  
  2.   
  3. import java.sql.ResultSet;  
  4. import java.sql.SQLException;  
  5. import java.util.ArrayList;  
  6. import java.util.List;  
  7.   
  8. import org.springframework.jdbc.core.JdbcTemplate;  
  9. import org.springframework.jdbc.core.RowMapper;  
  10.   
  11. import cn.nm.domain.Emp;  
  12.   
  13. public class EmpDaoImpl implements EmpDao {  
  14.   
  15.     /* 封装一个JdbcTemplate的模板对象 */  
  16.     private JdbcTemplate jdbcTemplate;  
  17.   
  18.     /* 通过set方法注入进来即可 */  
  19.     public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {  
  20.         this.jdbcTemplate = jdbcTemplate;  
  21.     }  
  22.   
  23.     @Override  
  24.     public boolean delete(Emp entity) {  
  25.         // 定义返回结果  
  26.         boolean flag = false;  
  27.         /* 插入实现 */  
  28.         int i = jdbcTemplate.update("delete from emp where id=? ",  
  29.                 new Object[] { entity.getId() });  
  30.         if (i > 0) {  
  31.             flag = true;  
  32.         }  
  33.         return flag;  
  34.     }  
  35.   
  36.     @SuppressWarnings("unchecked")  
  37.     @Override  
  38.     public List<Emp> findAll() {  
  39.         // 定义返回结果  
  40.         List<Emp> entities =new ArrayList<Emp>();  
  41.         entities = (List<Emp>) jdbcTemplate.query(  
  42.                 "select id,name,sex,pass,hiredate from emp"new RowMapper() {  
  43.                     @Override  
  44.                     public Object mapRow(ResultSet rs, int rowNum)  
  45.                             throws SQLException {  
  46.                         Emp emp = new Emp();  
  47.                         emp.setId(rs.getInt("id"));  
  48.                         emp.setName(rs.getString("name"));  
  49.                         emp.setSex(rs.getString("sex"));  
  50.                         emp.setPass(rs.getString("pass"));  
  51.                         emp.setHiredate(rs.getDate("hiredate"));  
  52.   
  53.                         return emp;  
  54.                     }  
  55.                 });  
  56.         return entities;  
  57.     }  
  58.   
  59.     @Override  
  60.     public Emp findById(Integer id) {  
  61.         // 定义返回结果  
  62.         Emp entity = null;  
  63.         entity = (Emp) jdbcTemplate.queryForObject(  
  64.                 "select id,name,sex,pass,hiredate from emp where id=?",  
  65.                 new Object[] { id }, new RowMapper() {  
  66.                     @Override  
  67.                     public Object mapRow(ResultSet rs, int rowNum)  
  68.                             throws SQLException {  
  69.                         Emp emp = new Emp();  
  70.                         emp.setId(rs.getInt("id"));  
  71.                         emp.setName(rs.getString("name"));  
  72.                         emp.setSex(rs.getString("sex"));  
  73.                         emp.setPass(rs.getString("pass"));  
  74.                         emp.setHiredate(rs.getDate("hiredate"));  
  75.   
  76.                         return emp;  
  77.                     }  
  78.                 });  
  79.         return entity;  
  80.     }  
  81.   
  82.     @Override  
  83.     public boolean insert(Emp entity) {  
  84.         // 定义返回结果  
  85.         boolean flag = false;  
  86.         /* 插入实现 */  
  87.         int i = jdbcTemplate.update(  
  88.                 "insert into emp(name,sex,pass,hiredate) values(?,?,?,?)",  
  89.                 new Object[] { entity.getName(), entity.getSex(),  
  90.                         entity.getPass(), entity.getHiredate() });  
  91.         if (i > 0) {  
  92.             flag = true;  
  93.         }  
  94.         return flag;  
  95.     }  
  96.   
  97.     @Override  
  98.     public boolean update(Emp entity) {  
  99.         // 定义返回结果  
  100.         boolean flag = false;  
  101.         /* 更新实现 */  
  102.         int i = jdbcTemplate  
  103.                 .update(  
  104.                         "update emp set name=?,sex=?,pass=?,hiredate=? where id=?",  
  105.                         new Object[] { entity.getName(), entity.getSex(),  
  106.                                 entity.getPass(), entity.getHiredate(),  
  107.                                 entity.getId() });  
  108.         if (i > 0) {  
  109.             flag = true;  
  110.         }  
  111.         return flag;  
  112.     }  
  113.   
  114. }  

 5.修改配置文件

Java代码  收藏代码
  1. <!-- 配置数据源c3p0 -->  
  2.     <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">  
  3.         <!-- 数据库驱动 -->  
  4.         <property name="driverClass" value="${DriverClass}"/>  
  5.         <!-- 数据库连接的URL -->  
  6.         <property name="jdbcUrl" value="${jdbcUrl}"/>  
  7.         <!-- 数据库连接的用户名 -->  
  8.         <property name="user" value="${user}"/>  
  9.         <!-- 数据库连接的用户密码 -->  
  10.         <property name="password" value="${pass}"/>  
  11.   
  12.     </bean>  
  13.   
  14.   
  15.    <!-- 配置jdbc的模板类JdbcTemplate -->  
  16.    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">  
  17.      <property name="dataSource" ref="dataSource"/>  
  18.    </bean>  
  19.      
  20.      
  21.    <!-- 配置操作的DaoImpl实现类 -->  
  22.    <bean id="empDaoImpl" class="cn.redarmys.dao.EmpDaoImpl">  
  23.       <!-- 注入模板类对象 -->  
  24.       <property name="jdbcTemplate" ref="jdbcTemplate"/>  
  25.    </bean>  
  26.      
  27.     <!-- 分散配置解析 -->  
  28.     <context:property-placeholder location="jdbc.properties"/>  

 6.创建一个测试类

Java代码  收藏代码
  1. package cn.nm.dao;  
  2.   
  3. import java.util.List;  
  4.   
  5. import org.junit.Test;  
  6. import org.springframework.context.ApplicationContext;  
  7. import org.springframework.context.support.ClassPathXmlApplicationContext;  
  8.   
  9. import cn.nm.domain.Emp;  
  10.   
  11.   
  12. public class App {  
  13.       
  14.     @Test  
  15.     public void app(){  
  16.         ApplicationContext ac = new ClassPathXmlApplicationContext("classpath:app*.xml");  
  17.           
  18.         /*获取DaoImp的实体对象*/  
  19.         EmpDao ed = (EmpDao) ac.getBean("empDaoImpl");  
  20.           
  21.         /*for (int i = 1; i <11; i++) {   
  22.             插入验证 
  23.             Emp emp = new Emp(null, "redarmy"+i, "男", "redarmy"+i+"@gmai.com", new Date()); 
  24.              
  25.             boolean flag = ed.insert(emp); 
  26.              
  27.             if(flag){ 
  28.                 System.out.println("插入成功"); 
  29.             }else{ 
  30.                 System.out.println("插入失败"); 
  31.             } 
  32.         }*/  
  33.           
  34.         /*根据主键查询ID*/  
  35.         //Emp emp = ed.findById(11);  
  36.         /*System.out.println( 
  37.                 "ID::"+emp.getId()+"  Name::"+emp.getName()+" sex::"+emp.getSex()+" pass:::"+emp.getPass()+" hiredate::"+emp.getHiredate()); 
  38.     */  
  39.         /*更新操作*/  
  40.         /*emp.setName("孙彤彤"); 
  41.         emp.setPass("123"); 
  42.         emp.setHiredate(new Date()); 
  43.          
  44.         ed.update(emp);*/  
  45.           
  46.           
  47.         /*删除操作*/  
  48.         //ed.delete(emp);  
  49.           
  50.         List<Emp> emps = ed.findAll();  
  51.         for(Emp emp:emps){  
  52.             System.out.println(  
  53.                     "ID::"+emp.getId()+"  Name::"+emp.getName()+" sex::"+emp.getSex()+" pass:::"+emp.getPass()+" hiredate::"+emp.getHiredate());  
  54.         }  
  55.           
  56.     }  
  57.   
  58. }  
0 0