首页 > 代码库 > Spring数据访问之JdbcTemplate

Spring数据访问之JdbcTemplate

                                         Spring数据访问之JdbcTemplate

使用JdbcTemplate的基本操作步骤

1.引jar包

技术分享

 

项目的基本架构

 

 

 

 

技术分享

 

这里重点看实现类的内容

技术分享
 1 package cn.hmy.dao.impl; 2  3  4 import java.util.List; 5  6 import org.springframework.jdbc.core.support.JdbcDaoSupport; 7  8 import cn.hmy.beans.Emp; 9 import cn.hmy.dao.IEmpDao;10 import cn.hmy.util.MyRowMapper;11 12 public class EmpDaoImpl extends JdbcDaoSupport implements IEmpDao {13 14     //获取员工总人数15     public int getTotalCount() throws Exception {16         String sql="select * from emp";17         Integer count=this.getJdbcTemplate().queryForObject(sql, Integer.class);18         return count;19     }20 21 22     //添加员工信息23     public int addEmp(Emp emp) throws Exception {24         String sql="insert into emp(empNo,empName,deptNo) values(?,?,?)";25         int count = this.getJdbcTemplate().update(sql, emp.getEmpNo(),emp.getEmpName(),emp.getDeptNo());26         return count;27     }28 29     //查询所有的员工信息30     public List<Emp> getAllEmps() throws Exception {31         String sql="select * from emp";32         List<Emp> list = this.getJdbcTemplate().query(sql,new MyRowMapper());33         return list;34     }35 36 37 38 }
EmpDaoImpl
技术分享
 1 package cn.hmy.service.impl; 2  3 import java.util.List; 4  5 import cn.hmy.beans.Emp; 6 import cn.hmy.dao.IEmpDao; 7 import cn.hmy.service.IEmpService; 8  9 public class EmpServiceImpl implements IEmpService{10 11     private IEmpDao empDao;12 13     //获取员工总记录数14     public int getTotalCount() throws Exception{15         return empDao.getTotalCount();16     }17 18     //添加员工19     public int addEmp(Emp emp) throws Exception {20         return empDao.addEmp(emp);21     }22     23     //查询员工的所有信息24     public List<Emp> getAllEmps() throws Exception {25         return empDao.getAllEmps();26     }27     public IEmpDao getEmpDao() {28         return empDao;29     }30 31     public void setEmpDao(IEmpDao empDao) {32         this.empDao = empDao;33     }34 35     36 37     38 }
EmpServiceImpl

 

在查询的时候我们为了能使查询到的结果集返回泛型集合,我们又为了减少代码量,就提出一个util类MyRowMapper类,来转换结果集

技术分享
 1 package cn.hmy.util; 2  3 import java.sql.ResultSet; 4 import java.sql.SQLException; 5  6 import org.springframework.jdbc.core.RowMapper; 7  8 import cn.hmy.beans.Emp; 9 10 public class MyRowMapper implements RowMapper{11 12     public Emp mapRow(ResultSet rs, int rowNum) throws SQLException {13         Emp emp=new Emp();14         emp.setDeptNo(rs.getInt("deptNo"));15         emp.setEmpName(rs.getString("empName"));16         emp.setEmpNo(rs.getInt("empNo"));17         return emp;18     }19 20 }
MyMapper

 

 

applicationContext.xml的配置文件的配置内容

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xmlns:aop="http://www.springframework.org/schema/aop"    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">                      <!-- 注册jdbc属性 --><bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location" value="classpath:jdbc.properties"></property></bean><!-- Spring 内置配置数据源 --><!-- <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">  <property name="driverClassName" value="http://www.mamicode.com/${jdbc.className}"/>  <property name="url" value="http://www.mamicode.com/${jdbc.url}"/>  <property name="username" value="http://www.mamicode.com/${jdbc.username}"/>  <property name="password" value="http://www.mamicode.com/${jdbc.password}"/></bean> -->  <!--注册dbcp数据源  --> <!-- <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="http://www.mamicode.com/${jdbc.className}"/> <property name="url" value="http://www.mamicode.com/${jdbc.url}"/> <property name="username" value="http://www.mamicode.com/${jdbc.username}"/> <property name="password" value="http://www.mamicode.com/${jdbc.password}"/> </bean> -->  <!--注册c3p0数据源  --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">  <property name="driverClass" value="${jdbc.className}"></property>  <property name="jdbcUrl" value="${jdbc.url}"></property>  <property name="user" value="${jdbc.username}"></property>  <property name="password" value="${jdbc.password}"></property> </bean>   <!--配置jdbcTemplate  --><bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"><property name="dataSource" ref="dataSource"></property></bean><!-- 管理empDao实现类 --><bean id="empDao" class="cn.hmy.dao.impl.EmpDaoImpl">    <property name="jdbcTemplate" ref="jdbcTemplate"></property></bean> <!-- 管理empService实现类 --><bean id="empService" class="cn.hmy.service.impl.EmpServiceImpl">  <property name="empDao" ref="empDao"></property></bean></beans>

书写测试类

技术分享
 1 package cn.hmy.test; 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.hmy.beans.Emp;10 import cn.hmy.service.IEmpService;11 12 public class MyTest {13     @Test14     public void getAdd() throws Exception{15         ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");16         IEmpService service=(IEmpService)context.getBean("empService");17         Emp emp=new Emp();18         emp.setDeptNo(1);19         emp.setEmpName("123");20         emp.setEmpNo(10);21         int addEmp;22         try {23             addEmp = service.addEmp(emp);24             System.out.println(addEmp);25         } catch (Exception e) {26             e.printStackTrace();27         }28     }29     @Test30     public void getAllEmps() throws Exception{31         ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");32         IEmpService service=(IEmpService)context.getBean("empService");33         List<Emp> allEmps = service.getAllEmps();34         for (Emp emp : allEmps) {35             System.out.println(emp.getEmpName());36         }37         38     }39 }
测试类

 

Spring数据访问之JdbcTemplate