1. 什么是Druid连接池
    阿里巴巴提供的数据连接池,被广泛使用。

  2. 如何使用

    1. Maven导入Druid连接池API和MYSQL数据库驱动API
    2. 将连接池作为JAVABean在config.java中配置
    3. 测试是否可用。
  3. 实例

pom.xml

		<dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.15</version>
        </dependency>
        <!-- 数据库连接池 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.21</version>
        </dependency>

Config.java

@Configuration
@ComponentScan(basePackages = "cn.tedu.demo")
//读取properties
@PropertySource("classpath:jdbc.properties")
public class Config {
	//自动获取组件
    @Autowired
    Environment env;

    @Bean
    public DataSource dataSource(){
        DruidDataSource ds = new DruidDataSource();
        ds.setDriverClassName(env.getProperty("db.driver"));
        ds.setUrl(env.getProperty("db.url"));
        ds.setUsername(env.getProperty("db.username"));
        ds.setPassword(env.getProperty("db.password"));
        ds.setMaxActive(env.getProperty("db.maxActive",Integer.class));
        ds.setInitialSize(env.getProperty("db.initialSize",Integer.class));
        return ds;
    }
}
  • env.getProperty中的值和properties中的一样

jdbc.properties文件

db.driver=com.mysql.cj.jdbc.Driver
db.url=jdbc:mysql://localhost:3306/mysql?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true
db.username=root
db.password=
db.maxActive=10
db.initialSize=2

最后一步测试链接

    @Test
    public void testDateSource(){
        /*
        * 测试数据库链接是否能成功链接数据库
        * */
        String sql = "select 'Hello World'";
        DataSource ds = ctx.getBean("dataSource", DataSource.class);
        try(Connection conn = ds.getConnection()){
            Statement statement = conn.createStatement();
            ResultSet rs = statement.executeQuery(sql);
            while (rs.next()){
                System.out.println(rs.getString(1));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐