【JdbcTemplate】Spring 整合 JdbcTemplate

Dear 丶 2023-02-28 04:28 69阅读 0赞

一、Spring 项目整合 JdbcTemplate

1.1.1 引入 Maven 依赖

  1. <dependencies>
  2. <!-- Spring -->
  3. <dependency>
  4. <groupId>org.springframework</groupId>
  5. <artifactId>spring-context</artifactId>
  6. <version>5.0.2.RELEASE</version>
  7. </dependency>
  8. <!-- lombok -->
  9. <dependency>
  10. <groupId>org.projectlombok</groupId>
  11. <artifactId>lombok</artifactId>
  12. <version>1.18.12</version>
  13. </dependency>
  14. <dependency>
  15. <groupId>org.slf4j</groupId>
  16. <artifactId>slf4j-log4j12</artifactId>
  17. <version>1.7.25</version>
  18. </dependency>
  19. <dependency>
  20. <groupId>org.slf4j</groupId>
  21. <artifactId>slf4j-api</artifactId>
  22. <version>1.7.25</version>
  23. </dependency>
  24. <!-- jdbctemplate -->
  25. <dependency>
  26. <groupId>org.springframework</groupId>
  27. <artifactId>spring-context</artifactId>
  28. <version>5.0.8.RELEASE</version>
  29. </dependency>
  30. <dependency>
  31. <groupId>org.springframework</groupId>
  32. <artifactId>spring-jdbc</artifactId>
  33. <version>5.0.8.RELEASE</version>
  34. </dependency>
  35. <dependency>
  36. <groupId>mysql</groupId>
  37. <artifactId>mysql-connector-java</artifactId>
  38. <version>8.0.11</version>
  39. </dependency>
  40. <dependency>
  41. <groupId>commons-dbcp</groupId>
  42. <artifactId>commons-dbcp</artifactId>
  43. <version>1.4</version>
  44. </dependency>
  45. <dependency>
  46. <groupId>com.alibaba</groupId>
  47. <artifactId>druid</artifactId>
  48. <version>1.0.9</version>
  49. </dependency>
  50. </dependencies>

#

1.2 编写配置

新增配置类:JdbcConfig.java

  1. public class JdbcConfig {
  2. @Value("${jdbc.driver}")
  3. private String driver;
  4. @Value("${jdbc.url}")
  5. private String url;
  6. @Value("${jdbc.username}")
  7. private String user;
  8. @Value("${jdbc.password}")
  9. private String password;
  10. @Bean(name="dataSource")
  11. public DataSource createDataSource() {
  12. DruidDataSource dataSource = new DruidDataSource();
  13. dataSource.setDriverClassName(driver);
  14. dataSource.setUrl(url);
  15. dataSource.setUsername(user);
  16. dataSource.setPassword(password);
  17. return dataSource;
  18. }
  19. @Bean(name = "jdbcTemplate")
  20. public JdbcTemplate createJdbcTemplate(DataSource dataSource) {
  21. return new JdbcTemplate(dataSource);
  22. }
  23. }

增加配置文件:

  1. jdbc.driver=com.mysql.cj.jdbc.Driver
  2. jdbc.url=jdbc:mysql://xxxxxx:3306/test?&useUnicode=true&characterEncoding=utf-8&useSSL=false&allowPublicKeyRetrieval=true
  3. jdbc.username=root
  4. jdbc.password=root

增加主要的配置文件 SpringConfiguration.java

  1. @Component
  2. @ComponentScan({"com.tom"})
  3. @Import(JdbcConfig.class)
  4. @PropertySource("classpath:jdbcConfig.properties")
  5. public class SpringConfiguration {
  6. }

1.3 修改启动类

  1. public static void main(String[] args) {
  2. ApplicationContext ac = new AnnotationConfigApplicationContext(SpringConfiguration.class);
  3. UserService userService = ac.getBean("userService", UserService.class);
  4. userService.findById(1);
  5. }

1.4 测试

  1. public interface UserService {
  2. public void findById(int id);
  3. }
  4. @Slf4j
  5. @Service("userService")
  6. public class UserServiceImpl implements UserService {
  7. @Autowired
  8. private UserDao userDao;
  9. /**
  10. * 根据id查找用户
  11. * @param id
  12. */
  13. public void findById(int id) {
  14. log.info("findById");
  15. userDao.findOneById();
  16. }
  17. }

二、使用

  1. @Repository
  2. @Slf4j
  3. public class UserDao {
  4. @Autowired
  5. private JdbcTemplate jdbcTemplate;
  6. public void findAll() {
  7. log.info("dao findAll");
  8. String sql = "select * from user";
  9. List<User> list = jdbcTemplate.query(sql, new BeanPropertyRowMapper<User>(User.class));
  10. for (User user : list) {
  11. log.info(user.toString());
  12. }
  13. }
  14. public void findOneById(int id) {
  15. log.info("dao findOneById");
  16. String sql = "select * from user where id = ?";
  17. RowMapper<User> rowMapper = new BeanPropertyRowMapper<User>(User.class);
  18. User user = jdbcTemplate.queryForObject(sql, rowMapper, id);
  19. log.info(user.toString());
  20. }
  21. public void count() {
  22. String sql = "select count(*) from user where money > ?";
  23. int count = jdbcTemplate.queryForObject(sql, Integer.class, 500);
  24. log.info(String.valueOf(count));
  25. }
  26. public void insert(User user) {
  27. String sql = "insert into user(name, money) values (?,?)";
  28. int res = jdbcTemplate.update(sql, user.getName(), user.getMoney());
  29. log.info(String.valueOf(res));
  30. }
  31. }

发表评论

表情:
评论列表 (有 0 条评论,69人围观)

还没有评论,来说两句吧...

相关阅读