• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

SpringBoot整合JDBC、Druid数据源的示例代码

springboot 搞代码 4年前 (2022-01-09) 14次浏览 已收录 0个评论
文章目录[隐藏]

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、C3P0整合,下面也给出了整合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 Ad<i>本文来源gaodai$ma#com搞$$代**码)网@</i>dUser(){
        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";
    }
}

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:SpringBoot整合JDBC、Druid数据源的示例代码
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址