tnblog
首页
视频
资源
登录

模板对象-JdbcTemplate 01

3016人阅读 2022/7/27 17:48 总访问:1590092 评论:0 收藏:0 手机
分类: spring


一、

案例、
1、坐标

  1. <dependencies>
  2.     <!--mysql-->
  3.     <dependency>
  4.         <groupId>mysql</groupId>
  5.         <artifactId>mysql-connector-java</artifactId>
  6.         <version>5.1.47</version>
  7.     </dependency>
  8.     <!--        spring-->
  9.     <dependency>
  10.         <groupId>org.springframework</groupId>
  11.         <artifactId>spring-context</artifactId>
  12.         <version>5.1.9.RELEASE</version>
  13.     </dependency>
  14.     <!--spring的jdbc-->
  15.     <dependency>
  16.         <groupId>org.springframework</groupId>
  17.         <artifactId>spring-jdbc</artifactId>
  18.         <version>5.1.9.RELEASE</version>
  19.     </dependency>
  20.     <!--druid-->
  21.     <dependency>
  22.         <groupId>com.alibaba</groupId>
  23.         <artifactId>druid</artifactId>
  24.         <version>1.1.16</version>
  25.     </dependency>
  26.     <!--junit-->
  27.     <dependency>
  28.         <groupId>junit</groupId>
  29.         <artifactId>junit</artifactId>
  30.         <version>4.12</version>
  31.         <scope>test</scope>
  32.     </dependency>
  33.     <!--spring的text-->
  34.     <dependency>
  35.         <groupId>org.springframework</groupId>
  36.         <artifactId>spring-test</artifactId>
  37.         <version>5.1.9.RELEASE</version>
  38.     </dependency>
  39. </dependencies>

2、

3、

4、

5、

6、

代码

  1. package com.itheima.dao.impl;
  2. import com.itheima.dao.AccountDao;
  3. import com.itheima.domain.Account;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.jdbc.core.BeanPropertyRowMapper;
  6. import org.springframework.jdbc.core.JdbcTemplate;
  7. import org.springframework.jdbc.core.RowMapper;
  8. import org.springframework.stereotype.Repository;
  9. import java.util.List;
  10. @Repository("accountDao")
  11. public class AccountDaoImpl implements AccountDao {
  12.     @Autowired
  13.     private JdbcTemplate jdbcTemplate;
  14.     public void save(Account account) {
  15.         String sql = "insert into account (name,money) values (?,?)";
  16.         jdbcTemplate.update(sql, account.getName(), account.getMoney());
  17.     }
  18.     public void delete(Integer id) {
  19.         String sql = "delete from account where id=?";
  20.         jdbcTemplate.update(sql, id);
  21.     }
  22.     public void update(Account account) {
  23.         String sql = "update account set name=?,money=? where id=?";
  24.         jdbcTemplate.update(sql, account.getName(), account.getMoney(), account.getId());
  25.     }
  26.     public List<Account> findAll() {
  27.         //使用spring自带的行映射解析器.要求必须是标准封装
  28.         String sql = "select * from account";
  29.         return jdbcTemplate.query(sql, new BeanPropertyRowMapper<Account>(Account.class));
  30.     }
  31.     public List<Account> findAll(Integer pageNum, Integer preNum) {
  32.         String sql = "SELECT * FROM ACCOUNT LIMIT ?,?";
  33.         //使用spring自带的行映射解析器,要求必须是标准封装
  34.         return jdbcTemplate.query(sql, new BeanPropertyRowMapper<Account>(Account.class));
  35.     }
  36.     public String findNameById(Integer id) {
  37.         String sql = "select name from account where id =?";
  38.         return jdbcTemplate.queryForObject(sql, String.class, id);
  39.     }
  40.     public Account findById(Integer id) {
  41.         String sql = "select * from account where id =?";
  42.         //支持自定义行映射解析器
  43.         RowMapper<Account> rm = (rs, rowNum) -> {
  44.             Account account = new Account();
  45.             account.setId(rs.getInt("id"));
  46.             account.setName(rs.getString("name"));
  47.             account.setMoney(rs.getDouble("money"));
  48.             return account;
  49.         };
  50.         return jdbcTemplate.queryForObject(sql, rm, id);
  51.     }
  52.     public Long getCount() {
  53.         String sql = "SELECT COUNT(id) FROM ACCOUNT";
  54.         return jdbcTemplate.queryForObject(sql, Long.class);
  55.     }
  56. }

7、

8、

9、

10、



二、具名参数
就是参数不是用问号来代替的

用法、

评价
没有个性,不需要签名
排名
4
文章
473
粉丝
3
评论
2
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术