Spring jdbcTemplate

来源:互联网 发布:随心所欲mmd动作数据 编辑:程序博客网 时间:2024/06/06 12:21
为了方便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实现
@Repositorypublic 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());    }}




0 0
原创粉丝点击