设为首页 加入收藏

TOP

Spring对JDBC的模板支持:JdbcTemplate(四)
2018-03-18 16:21:49 】 浏览:671
Tags:Spring JDBC 模板 支持 JdbcTemplate
setAge(int age) {
        this.age = age;
    }


    public String getSex() {
        return sex;
    }


    public void setSex(String sex) {
        this.sex = sex;
    }


    public String getAddress() {
        return address;
    }


    public void setAddress(String address) {
        this.address = address;
    }
}


package org.zero01.dao;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import org.zero01.pojo.Student;


import javax.sql.DataSource;


@Component("stuDAO")
public class StudentDAO {


    @Autowired
    private DataSource dataSource;


    public int springInsert(Student student) {
        // 实例化jdbc模板对象,并传入数据源
        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
        String sql = "INSERT INTO student(sname,age,sex,address) VALUES (?,?,?,?)";
        // 调用update方法执行insert
        int row = jdbcTemplate.update(sql, student.getName(), student.getAge(), student.getSex(), student.getAddress());
        return row;
    }
}


可以看到,使用了JdbcTemplate之后,只需要写sql语句再调用相应的执行方法即可,不需要去关心数据库连接对象的获得、关闭以及减少了大量设置值的代码。


而且以上只是其中一种写法,我们还可以直接继承JdbcTemplate,这样就可以直接调用父类的方法了:


package org.zero01.dao;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import org.zero01.pojo.Student;


import javax.sql.DataSource;


@Component("stuDAO")
public class StudentDAO extends JdbcTemplate {


    @Autowired
    // 重写父类的setDataSource来设置数据源对象
    public void setDataSource(DataSource dataSource) {
        super.setDataSource(dataSource);
    }


    public int springInsert(Student student) {
        String sql = "INSERT INTO student(sname,age,sex,address) VALUES (?,?,?,?)";
        // 直接调用父类的方法即可
        int row = update(sql, student.getName(), student.getAge(), student.getSex(), student.getAddress());
        return row;
    }
}


以下通过JdbcTemplate来编写一个简单的增删查改小例题:


接口:


package org.zero01.dao;


import org.zero01.pojo.Student;


import java.util.List;


public interface DAO {


    public int insert(Student student);


    public int delete(int sid);


    public List<Student> selectAll();


    public List<Student> selectByLimit(int start, int end);


    public Student selectById(int sid);


    public long countAll();


    public int update(Student student);
}


因为JdbcTemplate不提供表格字段自动映射到对象的属性上的功能,所以我们需要自己实现它的一个接口来进行手动配置映射:


package org.zero01.dao;


import org.springframework.jdbc.core.RowMapper;
import org.zero01.pojo.Student;


import java.sql.ResultSet;
import java.sql.SQLException;


// Student对象的属性映射类
public class StudentMapper implements RowMapper<Student> {


    p

首页 上一页 1 2 3 4 5 下一页 尾页 4/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Web正面临威胁,请加入我们为之奋.. 下一篇使用Java内置类HttpUrlConnection..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目