日期:2014-05-16 浏览次数:20632 次
1.数据库脚本
create table user ( id int not null, name varchar(20), primary key(id) );
?
2.实体类
package org.monday.springjdbc;
public class User {
private int id;
private String name;
public User() {
}
public User(int id, String name) {
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + "]";
}
}
?
3.Dao接口
package org.monday.springjdbc;
import java.util.List;
public interface UserDao {
public void insert(User user);
public void update(User user);
public void delete(User user);
public void delete(int id);
public User findById(int id);
public int findByName(String name);
public List<User> findAll();
public int count();
public void batchInsert(List<User> users);
}
?
4.Dao的实现类
package org.monday.springjdbc;
import java.util.ArrayList;
import java.util.List;
import org.springframework.jdbc.core.simple.ParameterizedBeanPropertyRowMapper;
import org.springframework.jdbc.core.simple.SimpleJdbcDaoSupport;
public class UserDaoImpl extends SimpleJdbcDaoSupport implements UserDao {
@Override
public void insert(User user) {
String sql = "insert into user(id,name)values(?,?)";
getSimpleJdbcTemplate().update(sql, user.getId(), user.getName());
}
@Override
public void update(User user) {
String sql = "update user set name=? where id=?";
getSimpleJdbcTemplate().update(sql, user.getName(), user.getId());
}
@Override
public void delete(User user) {
String sql = "delete from user where id=?";
getSimpleJdbcTemplate().update(sql, user.getId());
}
@Override
public void delete(int id) {
String sql = "delete from user where id=?";
getSimpleJdbcTemplate().update(sql, id);
}
@Override
public User findById(int id) {
String sql = "select * from user where id=?";
return getSimpleJdbcTemplate().queryForObject(sql,
ParameterizedBeanPropertyRowMapper.newInstance(User.class), id);
// 下面的方法只能返回一列,所以行不通
// return getSimpleJdbcTemplate().queryForObject(sql, User.class, id);
}
@Override
public int findByName(String name){
String sql = "select id from user where name=?";
return getSimpleJdbcTemplate().queryForObject(sql, Integer.class, name);
// Integer.class 改成int.class 不行
// 貌似只能用包装类
}
@Override
public List<User> findAll() {
String sql = "select * from user";
return getSimpleJdbcTemplate().query(sql,
ParameterizedBeanPropertyRowMapper.newInstance(User.class));
}
@Override
public int count() {
String sql = "select count(*) from user";
return getSimpleJdbcTemplate().queryForInt(sql);
}
@Override
public void batchInsert(List<User> users) {
String sql = "insert into user(id,name)values(?,?)";
List<Object[]> parameters = new ArrayList<Object[]>();
for (User u : users) {
parameters.add(new Object[] { u.getId(), u.getName() });
}
getSimpleJdbcTemplate().batchUpdate(sql, parameters);
}
}
?
5.beans.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:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 引入外部文件 -->
<context:property-placeholder location="classpath:jdbc.properties"/>