一、JdbcTemplate
-
1.1 初始化操作
-
依赖坐标
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.25</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.2.11</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>5.3.22</version> </dependency>
-
创建配置类JdbcConfig(JdbcTemplate依赖于DataSource对象)
public class JdbcConfig { //1.定义一个方法获得要管理的对象 @Value("com.mysql.cj.jdbc.Driver") private String driver; @Value("jdbc:mysql://localhost:3306/spring?useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true") private String url; @Value("root") private String userName; @Value("kouxiaohui0310") private String password; //2.添加@Bean,表示当前方法的返回值是一个bean //@Bean修饰的方法,形参根据类型自动装配 @Bean("jdbcTemplate") public JdbcTemplate jdbcTemplate(){ DruidDataSource ds = new DruidDataSource(); JdbcTemplate jdbcTemplate = new JdbcTemplate(); ds.setDriverClassName(driver); ds.setUrl(url); ds.setUsername(userName); ds.setPassword(password); jdbcTemplate.setDataSource(ds); return jdbcTemplate; } }
-
-
1.2 CRUD
- 添加、更新、删除:
jdbcTemplate.update
- 获取对象列表:
jdbcTemplate.query("select * from book",new BeanPropertyRowMapper<>(Book.class))
- 获取单个对象:
jdbcTemplate.queryForObject("select * from book where id=?", new BeanPropertyRowMapper<Book>(Book.class), id)
- 查询记录条数:
jdbcTemplate.queryForObject("select count(*) from book", Integer.class)
- 批量添加(更新、删除):
jdbcTemplate.batchUpdate("insert into book values (0,?,?,?)", batchArgs);
- REAMRK
-
List<Object[]> batchArgs = new ArrayList<>(); Object[] o2 = {"python", 48.12, "py",13}; Object[] o3 = {"matlab", 48.12, "mat",14}; Object[] o4 = {"go", 48.12, "go",15}; Object[] o1 = {"java", 48.12, "java",16}; batchArgs.add(o1);batchArgs.add(o2);batchArgs.add(o3);batchArgs.add(o4);
-
- 添加、更新、删除: