Sprin boot -- JdbcTemplate

JdbcTemplate 是Spring 提供的一套JDBC  的模板,利用 AOP技术来解决直接使用JDBC时大量重复代码的问题,JdbcTempalte虽然没有mybatis 那么灵活,但是比直接使用JDBC 要方便很多,Spring boot 对jdbcTemplate 的使用提供了自动化配置类,JdbcTemplateAutoConfiguration。

pom文件

<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-jdbc -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
            <version>2.0.4.RELEASE</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.13</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.10</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

数据源配置

spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.url=jdbc:mysql:///chapter05?serverTimezone=GMT%2B8
spring.datasource.username= root
spring.datasource.password= root

其他的层不进行展示,下面看Dao 层的配置

@Repository
public class BookDao {
    @Autowired
    JdbcTemplate jdbcTemplate;

    public int addBook(book book ){
        return  jdbcTemplate.update("insert  into  book (name ,author) values (?,?)",book.getName(),book.getAuthor());
    }

    public int updateBook(book book) {
        return  jdbcTemplate.update("update book set  name =?,author=? where id=?",book.getName(),book.getAuthor(),book.getId());
    }

    public int deleteBookById(Integer id){
        return  jdbcTemplate.update("delete  from book where id =?",id);
    }
    public book getBookById(Integer id){
        return  jdbcTemplate.queryForObject("select * from book where id=?",new BeanPropertyRowMapper<>(book.class),id);
    }
    public List<book> getAllBooks(){
        return  jdbcTemplate.query("select * from book",new BeanPropertyRowMapper<>(book.class));
    }
}

创建Dao 的时候,注入JdbcTemplate ,由于已经添加了Spring-jdbc 相关的依赖,JdbcTemplate 会被自动的注册到Spring 容器中,所以可以直接使用JdbcTemplate 

在JdbcTemplate 增删改,三种类型的操作,需要有update 和batchUpdate 方法来完成,query和queryForObject 方法来完成查询功能,另外还有 excute 可以用来执行任意的sql 。call 方法来调用存储过程等

在使用的时候,如果实体类跟对象中的属性可以一一对应起来,则直接使用 BeanPropertyRowMapper 即可,如果不一致,需要开发者自己实现RowMapper 接口,完成对应

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值