您的位置:首页 > 编程语言 > Java开发

Spring jdbcTemplate

2016-02-01 22:35 337 查看
为了方便DAO中注入JdbcTemplate,Spring为每一个持久化技术都提供了支持类

XML配置:

<context:property-placeholder location="classpath*:db.properties" />
<!-- 开启自动代理功能 -->
<aop:aspectj-autoproxy/>
<!-- 1. 数据源 : DriverManagerDataSource 寻找propertues映射文件 -->
<bean id="datasource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
<!--配置jdbc模板,将数据源注入到模板中-->
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource" ref="datasource"/>
</bean>


实体类模型
public class UserModel {

private int id;
private String name;
private int age;

public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

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;
}
}
DAO实现
@Repository
public class UserDAO {
@Resource
private JdbcTemplate jdbcTemplate;

public void save() {
String sql="insert into test(`name`,age) values(?,?)";
jdbcTemplate.update(sql,"zlisi",20);
}

public void update(int age,int id){
String sql = "update test set age=? where id=?";
int update = jdbcTemplate.update(sql, age, id);
System.out.println(update);
}

/**
* 查询条数
* @return
*/
public int countId(){
String sql="select count(id) from test";
return jdbcTemplate.queryForInt(sql);
}

public String selectIterm(int id){
String sql="select name from test where id=?";
return jdbcTemplate.queryForObject(sql,String.class,2);
}

public UserModel selectObjectById(int id){
String sql = "select id,name,age from test where id=?";
//映射规则
RowMapper<UserModel> rowMap = new RowMapper<UserModel>() {
public UserModel mapRow(ResultSet rs, int i) throws SQLException {
UserModel userModel = new UserModel();
userModel.setAge(rs.getInt("age"));
userModel.setName(rs.getString("name"));
userModel.setId(rs.getInt("id"));
return userModel;
}
};
//单个数据用queryForObject
return jdbcTemplate.queryForObject(sql, rowMap, 2);
}

public List<UserModel> selectOList(int age){
String sql = "select id,name,age from test where age=?";
//映射规则
RowMapper<UserModel> rowMap = new RowMapper<UserModel>() {
public UserModel mapRow(ResultSet rs, int i) throws SQLException {
UserModel userModel = new UserModel();
userModel.setAge(rs.getInt("age"));
userModel.setName(rs.getString("name"));
userModel.setId(rs.getInt("id"));
return userModel;
}
};
//List数据用query
return jdbcTemplate.query(sql, rowMap,age);
}
}


调用客户端

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:spring-config.xml")
public class DaoTest {

@Resource
private UserDAO userDao;

@Test
public void InsertTest(){
userDao.save();
}

@Test
public void updateTest(){
userDao.update(30,1);
}

@Test
public void selectCount(){
System.out.println(userDao.countId());
}

@Test
public void selectNameById(){
System.out.println(userDao.selectIterm(2));
}
@Test
public void selectUserById() {
System.out.println(userDao.selectObjectById(2).getName());
}

@Test
public void selectObjectList(){
System.out.println(userDao.selectOList(20).get(1).getId());
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: