Spring教程—整合JDBC
文件结构如下图:
User_info.java:
package entity; import java.util.Date; public class User_info { private String user_code; private String name; private String sex_code; private String identity_code; private String id_no; private Date birthday; private String family_addr; public String getUser_code() { return user_code; } public void setUser_code(String user_code) { this.user_code = user_code; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSex_code() { return sex_code; } public void setSex_code(String sex_code) { this.sex_code = sex_code; } public String getIdentity_code() { return identity_code; } public void setIdentity_code(String identity_code) { this.identity_code = identity_code; } public String getId_no() { return id_no; } public void setId_no(String id_no) { this.id_no = id_no; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } public String getFamily_addr() { return family_addr; } public void setFamily_addr(String family_addr) { this.family_addr = family_addr; } @Override public String toString() { return "User_info [user_code=" + user_code + ", name=" + name + ", sex_code=" + sex_code + ", identity_code=" + identity_code + ", id_no=" + id_no + ", birthday=" + birthday + ", family_addr=" + family_addr + "]"; } }
User_info_mapper.java:
1 package mapper; 2 3 import java.sql.ResultSet; 4 import java.sql.SQLException; 5 6 import org.springframework.jdbc.core.RowMapper; 7 8 import entity.User_info; 9 10 public class User_info_mapper implements RowMapper<User_info> { 11 12 @Override 13 public User_info mapRow(ResultSet rs, int arg1) throws SQLException { 14 User_info user_info = new User_info(); 15 user_info.setBirthday(rs.getDate("birthday")); 16 user_info.setFamily_addr(rs.getString("family_addr")); 17 user_info.setId_no(rs.getString("id_no")); 18 user_info.setIdentity_code(rs.getString("identity_code")); 19 user_info.setName(rs.getString("name")); 20 user_info.setSex_code(rs.getString("sex_code")); 21 user_info.setUser_code(rs.getString("user_code")); 22 return user_info; 23 } 24 25 }
User_info_Service.java(接口):
1 package service; 2 3 import java.util.List; 4 5 import entity.User_info; 6 7 public interface User_info_Service { 8 public void insert(User_info user_info); 9 10 public void delete(String user_code); 11 12 public void update(User_info user_info); 13 14 public User_info findByID(String user_code); 15 16 public List<User_info> findAll(); 17 }
User_info_Service_impl.java(实现类):
1 package service.impl; 2 3 import java.util.List; 4 5 import javax.annotation.Resource; 6 7 import mapper.User_info_mapper; 8 9 import org.springframework.jdbc.core.JdbcTemplate; 10 import org.springframework.jdbc.core.RowMapper; 11 import org.springframework.stereotype.Service; 12 13 import entity.User_info; 14 import service.User_info_Service; 15 @Service 16 public class User_info_Service_impl implements User_info_Service{ 17 @Resource(name="jdbcTemplate") 18 private JdbcTemplate jdbcTemplate; 19 @Override 20 public void insert(User_info user_info) { 21 String sql="insert into user_info values(?,?,?,?,?,?,?)"; 22 Object[] args = new Object[]{user_info.getUser_code(),user_info.getName(),user_info.getSex_code(),user_info.getIdentity_code(),user_info.getId_no(),user_info.getBirthday(),user_info.getFamily_addr()}; 23 jdbcTemplate.update(sql, args); 24 } 25 26 @Override 27 public void delete(String user_code) { 28 String sql = "delete user_info where user_code=?"; 29 jdbcTemplate.update(sql, user_code); 30 } 31 32 @Override 33 public void update(User_info user_info) { 34 String sql = "update user_info set name=?,sex_code=?,identity_code=?,id_no=?,birthday=?,family_addr=? where user_code=?"; 35 Object[] args = new Object[]{user_info.getName(),user_info.getSex_code(),user_info.getIdentity_code(),user_info.getId_no(),user_info.getBirthday(),user_info.getFamily_addr(),user_info.getUser_code()}; 36 jdbcTemplate.update(sql, args); 37 } 38 39 @Override 40 public User_info findByID(String user_code) { 41 String sql ="select * from user_info where user_code=?"; 42 RowMapper<User_info> mapper = new User_info_mapper(); 43 User_info user_info = jdbcTemplate.queryForObject(sql, new Object[]{"0001"}, mapper); 44 return user_info; 45 } 46 47 @Override 48 public List<User_info> findAll() { 49 String sql ="select * from user_info"; 50 RowMapper<User_info> mapper = new User_info_mapper(); 51 List<User_info> List = jdbcTemplate.query(sql, mapper); 52 return List; 53 } 54 55 }
applicationContext.xml(放置在src文件夹下):
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx" 4 xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" 5 xmlns:jee="http://www.springframework.org/schema/jee" 6 xsi:schemaLocation=" 7 http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd 8 http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd 9 http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd 10 http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd 11 http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.5.xsd"> 12 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> 13 <!-- 加载的类 --> 14 <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" /> 15 <!-- url地址 --> 16 <property name="url" value="jdbc:oracle:thin:@localhost:1521:xe" /> 17 <!-- 用户名 --> 18 <property name="username" value="abc" /> 19 <!-- 密码 --> 20 <property name="password" value="abc" /> 21 <!-- 连接池启动时的初始值 --> 22 <property name="initialSize" value="1" /> 23 <!-- 连接池的最大值 --> 24 <property name="maxActive" value="500" /> 25 <!-- 最大空闲值,当经过一个高峰时间后,连接池可以慢慢将已经用不到 的连接慢慢释放一部分,一直减少到MaxIdle为止 --> 26 <property name="maxIdle" value="2" /> 27 <!-- 最小空闲值,当空闲值的连接数少于阙值时,连接池就会预申请去一些连接,以免洪峰来时来不及申请 --> 28 <property name="minIdle" value="1" /> 29 </bean> 30 <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> 31 <property name="dataSource" ref="dataSource"></property> 32 </bean> 33 <context:component-scan base-package="service"></context:component-scan> 34 </beans>