spring中整合了通過jdbc操作數據庫:
User類:
public class User {
private int sid;
private Date bithday;
private String gender;
private String name;
@Override
public String toString() {
return "User [sid=" + sid + ", bithday=" + bithday + ", gender=" + gender + ", name=" + name + "]";
}
public int getSid() {
return sid;
}
public void setSid(int sid) {
this.sid = sid;
}
public Date getBithday() {
return bithday;
}
public void setBithday(Date bithday) {
this.bithday = bithday;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
UserDao接口:
public interface UserDao {
public void add(User u);
public void delete(int sid);
public void update(User u);
public User getById(int sid);
public int getTotalCount();
public List<User> getAll();
}
public class UserDaoImpl implements UserDao{
private JdbcTemplate jdbcTemplate;
@Override
public void add(User u) {
String sql = "insert into Lover values(null,?,?,?)";
jdbcTemplate.update(sql,u.getBithday(),u.getGender(),u.getName());
}
@Override
public void delete(int sid) {
String sql = "delete from Lover where sid = ?";
jdbcTemplate.update(sql,sid);
}
@Override
public void update(User u) {
String sql = "update Lover set bithday=?,gender=?,name=? where sid=?";
jdbcTemplate.update(sql,u.getBithday(),u.getGender(),u.getName(),u.getSid());
}
@Override
public User getById(int sid) {
String sql = "select * from Lover where sid = ?";
return jdbcTemplate.queryForObject(sql,new RowMapper<User>(){
@Override
public User mapRow(ResultSet rs, int arg1) throws SQLException {
User u = new User();
u.setSid(rs.getInt("sid"));
u.setBithday(rs.getDate("bithday"));
u.setGender(rs.getString("gender"));
u.setName(rs.getString("name"));
return u;
}
},sid);
}
@Override
public int getTotalCount() {
String sql = "select count(*) from Lover";
return jdbcTemplate.queryForObject(sql, Integer.class);
}
@Override
public List<User> getAll() {
String sql = "select * from Lover";
List<User> list = jdbcTemplate.query(sql,new RowMapper<User>(){
@Override
public User mapRow(ResultSet rs, int arg1) throws SQLException {
User u = new User();
u.setSid(rs.getInt("sid"));
u.setBithday(rs.getDate("bithday"));
u.setGender(rs.getString("gender"));
u.setName(rs.getString("name"));
return u;
}
});
return list;
}
public JdbcTemplate getJdbcTemplate() {
return jdbcTemplate;
}
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd ">
<!-- 1.將連接池放入spring容器 -->
<bean name="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="jdbcUrl" value="jdbc:mysql:///changejob"></property>
<property name="driverClass" value="com.mysql.jdbc.Driver"></property>
<property name="user" value="root"></property>
<property name="password" value="root"></property>
</bean>
<!-- 2.將JDBCTemplate放入spring容器 -->
<bean name="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="dataSource"></property>
</bean>
<!-- 3.將UserDao放入spring容器 -->
<bean name="userDao" class="com.milan.spring.jdbc.UserDaoImpl">
<property name="jdbcTemplate" ref="jdbcTemplate"></property>
</bean>
</beans>
@RunWith(SpringJUnit4ClassRunner.class)//創建容器
@ContextConfiguration("classpath:applicationContext-jdbc.xml")//指定配置文件位置
public class JdbcTest {
@Resource(name="userDao")
private UserDao userDao;
@Test
public void add(){
User u = new User();
u.setBithday(new Date());
u.setGender("boy");
u.setName("add User");
userDao.add(u);
}
@Test
public void delete(){
userDao.delete(4);
}
@Test
public void update(){
User u = new User();
u.setSid(1);
u.setName("kaka");
userDao.update(u);
}
@Test
public void getById(){
User u = userDao.getById(1);
System.out.println(u);
}
@Test
public void getTotalCount(){
System.out.println(userDao.getTotalCount());
}
@Test
public void getAll(){
System.out.println(userDao.getAll());
}
}
擴展之UserDaoImpl繼承JDBCDaoSupport:
public class UserDaoImplByJDBCDaoSupport extends JdbcDaoSupport implements UserDao{
@Override
public void add(User u) {
String sql = "insert into Lover values(null,?,?,?)";
super.getJdbcTemplate().update(sql,u.getBithday(),u.getGender(),u.getName());
}
@Override
public void delete(int sid) {
String sql = "delete from Lover where sid = ?";
super.getJdbcTemplate().update(sql,sid);
}
@Override
public void update(User u) {
String sql = "update Lover set bithday=?,gender=?,name=? where sid=?";
super.getJdbcTemplate().update(sql,u.getBithday(),u.getGender(),u.getName(),u.getSid());
}
@Override
public User getById(int sid) {
String sql = "select * from Lover where sid = ?";
return super.getJdbcTemplate().queryForObject(sql,new RowMapper<User>(){
@Override
public User mapRow(ResultSet rs, int arg1) throws SQLException {
User u = new User();
u.setSid(rs.getInt("sid"));
u.setBithday(rs.getDate("bithday"));
u.setGender(rs.getString("gender"));
u.setName(rs.getString("name"));
return u;
}
},sid);
}
@Override
public int getTotalCount() {
String sql = "select count(*) from Lover";
return super.getJdbcTemplate().queryForObject(sql, Integer.class);
}
@Override
public List<User> getAll() {
String sql = "select * from Lover";
List<User> list = super.getJdbcTemplate().query(sql,new RowMapper<User>(){
@Override
public User mapRow(ResultSet rs, int arg1) throws SQLException {
User u = new User();
u.setSid(rs.getInt("sid"));
u.setBithday(rs.getDate("bithday"));
u.setGender(rs.getString("gender"));
u.setName(rs.getString("name"));
return u;
}
});
return list;
}
}