六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 208|回复: 0

使用spring jdbcTemplate完成Dao的增删改查

[复制链接]

升级  34.67%

26

主题

26

主题

26

主题

秀才

Rank: 2

积分
102
 楼主| 发表于 2013-1-14 23:03:18 | 显示全部楼层 |阅读模式
CREATE TABLE Person(ID int generated by default as identity (start with 1) not null,FIRSTNAME VARCHAR(20) NOT NULL,LASTNAME VARCHAR(20) NOT NULL,PRIMARY KEY (ID));   
package domainmodel;

public class Person {

private String firstName;
private String lastName;

public String getFirstName() {
return firstName;
}

public String getLastName() {
return lastName;
}

public void setFirstName(String firstName) {
this.firstName = firstName;
}

public void setLastName(String lastName) {
this.lastName = lastName;
}
}

package dao;

import java.util.List;

import javax.sql.DataSource;

import domainmodel.Person;

public interface IDao {

void setDataSource(DataSource ds);

void create(String firstName, String lastName);

List<Person> select(String firstname, String lastname);

List<Person> selectAll();

void deleteAll();

void delete(String firstName, String lastName);

}
package dao.mapper;import java.sql.ResultSet;import java.sql.SQLException;import org.springframework.jdbc.core.ResultSetExtractor;import domainmodel.Person;public class PersonResultSetExtractor implements ResultSetExtractor {@Overridepublic Object extractData(ResultSet rs) throws SQLException {Person person = new Person();person.setFirstName(rs.getString(1));person.setLastName(rs.getString(2));return person;}} 
 
package dao.mapper;import java.sql.ResultSet;import java.sql.SQLException;import org.springframework.jdbc.core.RowMapper;public class PersonRowMapper implements RowMapper {@Overridepublic Object mapRow(ResultSet rs, int line) throws SQLException {PersonResultSetExtractor extractor = new PersonResultSetExtractor();return extractor.extractData(rs);}} 
 
package dao;import java.util.List;import javax.sql.DataSource;import org.springframework.jdbc.core.JdbcTemplate;import dao.mapper.PersonRowMapper;import domainmodel.Person;public class DerbyDao implements IDao {private DataSource dataSource;public void setDataSource(DataSource ds) {dataSource = ds;}public void create(String firstName, String lastName) {JdbcTemplate insert = new JdbcTemplate(dataSource);insert.update("INSERT INTO PERSON (FIRSTNAME, LASTNAME) VALUES(?,?)",new Object[] { firstName, lastName });}public List<Person> select(String firstname, String lastname) {JdbcTemplate select = new JdbcTemplate(dataSource);return select.query("select  FIRSTNAME, LASTNAME from PERSON where FIRSTNAME = ? AND LASTNAME= ?",new Object[] { firstname, lastname },new PersonRowMapper());}public List<Person> selectAll() {JdbcTemplate select = new JdbcTemplate(dataSource);return select.query("select FIRSTNAME, LASTNAME from PERSON",new PersonRowMapper());}public void deleteAll() {JdbcTemplate delete = new JdbcTemplate(dataSource);delete.update("DELETE from PERSON");}public void delete(String firstName, String lastName) {JdbcTemplate delete = new JdbcTemplate(dataSource);delete.update("DELETE from PERSON where FIRSTNAME= ? AND LASTNAME = ?",new Object[] { firstName, lastName });}}package test;import java.util.List;import org.springframework.jdbc.datasource.DriverManagerDataSource;import dao.DerbyDao;import domainmodel.Person;public final class Main {private Main() {};public static void main(String[] args) {DerbyDao dao = new DerbyDao();// Initialize the datasource, could /should be done of Spring// configurationDriverManagerDataSource dataSource = new DriverManagerDataSource();dataSource.setDriverClassName("org.apache.derby.jdbc.EmbeddedDriver");dataSource.setUrl("jdbc:derby:c:\\temp\\database\\test01;create=true");dataSource.setUsername("");dataSource.setPassword("");// Inject the datasource into the daodao.setDataSource(dataSource);dao.create("Lars", "Vogel");dao.create("Jim", "Knopf");dao.create("Lars", "Man");dao.create("Spider", "Man");System.out.println("Now select and list all persons");List<Person> list = dao.selectAll();for (Person myPerson : list) {System.out.print(myPerson.getFirstName() + " ");System.out.println(myPerson.getLastName());}System.out.println("Now select and list all persons with have the firstname Lars and lastname Vogel");list = dao.select("Lars", "Vogel");for (Person myPerson : list) {System.out.print(myPerson.getFirstName() + " ");System.out.println(myPerson.getLastName());}// Clean-updao.deleteAll();}}
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表