欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Spring JdbcTemplate的CRUD

程序员文章站 2022-04-23 15:53:40
...

导入jdbcTemplate依赖

		dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.0.2.RELEASE</version>
        </dependency>

注入jdbcTemplate和数据源

<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="dataSource"></property>
    </bean>
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"></property>
        <property name="url" value="jdbc:mysql://localhost:3306/spring?serverTimezone=UTC"></property>
        <property name="username" value="root"></property>
        <property name="password" value="liuqing.1998"></property>
    </bean>

jdbcTemplateCURD

public class AccountDaoImpl implements AccountDao{
    private JdbcTemplate jt ;

    public void setJt(JdbcTemplate jt) {
        this.jt = jt;
    }

	//new BeanPropertyRowMapper<Account>(Account.class)指定封装的结果集。
    @Override
    public Account findByName(String name) {
        List<Account> accounts = jt.query("select * from account where name = ?", new BeanPropertyRowMapper<Account>(Account.class),name);
        if(accounts.isEmpty()){
            return null;
        }
        if(accounts.size()>1){
            throw  new RuntimeException("结果集不唯一");
        }
        return accounts.get(0);
    }

    @Override
    public Account findById(Integer id) {
        List<Account> accounts = jt.query("select * from account where id=?", new BeanPropertyRowMapper<Account>(Account.class), 1);

        return accounts.isEmpty()?null:accounts.get(0);
    }

    @Override
    public void update(Account account) {
        jt.update("UPDATE  account SET  name=?,money=? WHERE id = ?",account.getName(),account.getMoney(),account.getId());
    }
相关标签: Spring spring