SpringBoot 는 JDBC,Druid 데이터 원본 의 예제 코드 를 통합 합 니 다.

1.SpringBoot 통합 JDBCtemplate
1.1.jdbc 관련 의존 패키지 가 져 오기
주요 의존 패키지:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>

<!--  web      -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
1.2.yaml 설정 데이터 원본
application.yml 은 jdbc 데이터베이스 작업 데이터 원본 설정 을 연결 하 는 데 사 용 됩 니 다.여 기 는 가장 간단 한 설정 입 니 다.

spring:
  datasource:
    username: root
    password: admin
    #      ,      serverTimezone=UTC,      
    url: jdbc:mysql://localhost:3306/mybatis02_0322?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
    driver-class-name: com.mysql.cj.jdbc.Driver
실제 개발 과정 에 서 는 기본적으로 Druid,C3P 0 과 통합 되 며,아래 에 도 Druid 데이터 원본 통합 과 관련 된 설정 이 제 시 됩 니 다.따라서 여기에 완전한 application.yml 설정 을 함께 놓 습 니 다.

spring:
  datasource:
    username: root
    password: admin
    #      ,      serverTimezone=UTC
    url: jdbc:mysql://localhost:3306/mybatis02_0322?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource

    #springboot             ,      
    #druid        
    initialSize: 5
    minIdle: 5
    maxActive: 20
    maxWait: 60000
    timeBetweenEvictionRunsMillis: 60000
    minEvictableIdleTimeMillis: 300000
    validationQuery: SELECT 1 FROM DUAL
    testWhileIdle: true
    testOnBorrow: false
    testOnReturn: false
    poolPreparedStatements: true

    #         filters,stat:    、log4j:    、wall:  sql  
    #       :java.lang.ClassNotFoundException:org.apache.log4j.Priority
    #    log4j     ,maven  :https://mvnrepository.com/artifact/log4j/log4j
    filters: stat,wall,log4j
    maxPoolPreparedStatementPerConnectionSize: 20
    useGlobalDataSourceStat: true
    connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
마지막 으로 데이터베이스 연결 접근 이 성 공 했 는 지 테스트 합 니 다.

@SpringBootTest
class SpringbootDataApplicationTests {
    @Autowired
    private DataSource dataSource;

    @Test
    void testConnection() throws SQLException {
        System.out.println(dataSource.getClass());
        Connection connection = dataSource.getConnection();
        System.out.println(connection);
    }
}
인쇄 에 성 공 했 습 니 다.데이터 원본 정 보 를 가 져 왔 습 니 다.

1.3.인터페이스 액세스 인터페이스 테스트

@RestController
public class JDBCController {
    @Autowired
    private JdbcTemplate jdbcTemplate;

    @RequestMapping("/queryList")
    public List<Map<String, Object>> query() {
        String sql = "select * from user";
        List<Map<String, Object>> queryForList = jdbcTemplate.queryForList(sql);
        return queryForList;
    }

    @RequestMapping("/addUser")
    public String AddUser(){
        String sql = "insert into mybatis02_0322.user(id, username, password) values(4, '  ', '654321')";
        int update = jdbcTemplate.update(sql);
        return "AddUser Ok";
    }

    @RequestMapping("/update/{id}")
    public String update(@PathVariable("id") Integer id){
        String sql = "update mybatis02_0322.user set username = ?, password = ? where id = " + id;
        Object[] objects = new Object[2];
        objects[0] = "     111";
        objects[1] = "32321";
        int update = jdbcTemplate.update(sql, objects);
        return "updateUser Ok";
    }

    @RequestMapping("/delete/{id}")
    public String delete(@PathVariable("id") Integer id){
        String sql = "delete from mybatis02_0322.user where id = " + id;
        int update = jdbcTemplate.update(sql);
        return "delete Ok";
    }
}
여기 서 인터페이스 요청 페이지 에 대응 하여 테스트 를 요청 하면 됩 니 다.배경 데이터 베이스 차원 에서 검증 을 하면 비교적 간단 합 니 다.여 기 는 일일이 설명 하지 않 고 제 소스 코드 를 보 러 갈 수 있 습 니 다.
2.SpringBoot 통합 DruidDataSource
2.1.druid 안내
드 루 아 이 드 는 알 리 바 바 오픈 소스 플랫폼 의 데이터베이스 연결 풀 로,C3P 0,DBCP,PROXOOL 등 DB 풀 의 우수한 실천 을 결합 하면 서 로그 모니터링 을 추가 했다.
Druid 는 DB 풀 연결 과 Sql 의 실행 상황 을 잘 모니터링 할 수 있 으 며,타고 난 모니터링 을 위 한 DB 연결 풀 이다.
SpringBoot 2.0 이상 은 기본적으로 Hikari 데이터 원본 을 사용 합 니 다.HiKari 와 Druid 는 현재 자바 웹 에서 개 원 된 우수한 데이터 원본 이 라 고 할 수 있 습 니 다.
2.2.Druid 관련 의존 도 가 져 오기
pom.xml 파일 에 대응:

<!--  alibaba druid   -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.2.3</version>
</dependency>
<!--  log4j   -->
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>
2.3.Druid 설정 및 모니터링 페이지 사용
① DruidConfig 클래스 를 작성 하고 배경 모니터링 기능 Bean 및 필터 Bean 을 사용 합 니 다.

@Configuration
public class DruidConfig {

    @ConfigurationProperties(prefix = "spring.datasource")
    @Bean
    public DataSource druidDataSource(){
        return new DruidDataSource();
    }

    //      
    @Bean
    public ServletRegistrationBean statViewServlet(){
        ServletRegistrationBean<StatViewServlet> bean = new ServletRegistrationBean<>(new StatViewServlet(), "/druid/*");
        //        ,      
        HashMap<String, String> initParameters = new HashMap<>();
        initParameters.put("loginUsername", "admin");  //  key,      loginUsername loginPassword
        initParameters.put("loginPassword", "123456");
        //       
        initParameters.put("allow", "");
        //          initParameters.put("fengye", "192.168.1.10");
        bean.setInitParameters(initParameters);     //       

        return bean;
    }

    //   
    @Bean
    public FilterRegistrationBean webStatFilter(){
        FilterRegistrationBean<Filter> bean = new FilterRegistrationBean<>();
        bean.setFilter(new WebStatFilter());

        HashMap<String, String> initParameters = new HashMap<>();
        //       
        initParameters.put("exclusions", "*.js,*.css,/druid/*");
        bean.setInitParameters(initParameters);

        return bean;
    }
}
② 시작 페이지 가 Druid 에 접근 하고 sql 에 접근 하 는 것 을 테스트 합 니 다.

본 블 로그 작성 참고 문서 관련:
https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#using-boot-starter
https://www.yuque.com/atguigu/springboot/aob431#wtNk1
Spring Boot 2 학습 노트(위):https://blog.csdn.net/u011863024/article/details/113667634
Spring Boot 2 학습 노트(하):
https://blog.csdn.net/u011863024/article/details/113667946
예제 코드 가 Github 주소 로 업로드 되 었 습 니 다.
https://github.com/devyf/SpringBoot_Study
SpringBoot 통합 JDBC,Druid 데이터 원본 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 SpringBoot 통합 JDBC,Druid 데이터 원본 내용 은 저희 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보시 기 바 랍 니 다.앞으로 많은 응원 부탁드립니다!

좋은 웹페이지 즐겨찾기