Jdbc,数据库连接池,jdbcTemplate

Jdbc,数据库连接池,jdbcTemplate

jdbc

  • 思维导图

image-20200531095527204

  • 代码
public static void main(String[] args) throws ClassNotFoundException, SQLException {
    //1.注册驱动
    Class.forName("com.mysql.jdbc.Driver");

    //2.获取数据库连接对象
    Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/javademo","root","123456");

    //3.定义sql语句
    String sql="create table jdbcdemo1(id int)";
    
    //4.获取执行sql的对象Statement
    Statement statement = con.createStatement();
    
	//5.执行sql
    boolean isCreate=statement.execute(sql);

    //6.释放资源
    statement.close();
    con.close();

    
}

数据池

  • 思维导图

image-20200531103405544

  • 代码

配置文件

<c3p0-config>
  <!-- 使用默认的配置读取连接池对象 -->
  <default-config>
   <!--  连接参数 -->
    <property name="driverClass">com.mysql.jdbc.Driver</property>
    <property name="jdbcUrl">jdbc:mysql://localhost:3306/javademo</property>
    <property name="user">root</property>
    <property name="password">123456</property>
    
    <!-- 连接池参数 -->
    <property name="initialPoolSize">5</property>
    <property name="maxPoolSize">10</property>
    <property name="checkoutTimeout">3000</property>
  </default-config>

  <named-config name="otherc3p0"> 
    <!--  连接参数 -->
    <property name="driverClass">com.mysql.jdbc.Driver</property>
    <property name="jdbcUrl">jdbc:mysql://localhost:3306/javademo</property>
    <property name="user">root</property>
    <property name="password">123456</property>
    
    <!-- 连接池参数 -->
    <property name="initialPoolSize">5</property>
    <property name="maxPoolSize">8</property>
    <property name="checkoutTimeout">1000</property>
  </named-config>
</c3p0-config>
public static void main(String[] args) throws SQLException {
        //1.创建数据库连接池对象 使用默认配置
        ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource();
        //不使用默认配置
//        ComboPooledDataSource comboPooledDataSource = new ComboPooledDataSource("otherc3p0");
        //2.获取连接对象,可以在配置文件中设定连接池中最大数量
        for (int i = 0; i <=10 ; i++) {
            Connection connection = comboPooledDataSource.getConnection();
            System.out.println(i+":"+connection);
            
        }

    }

jdbcTemplate

  • 导入jia包

  • 创建一个jdbcTemplate.依赖于数据源Datasource

​ jdbcTemplate template =new JdbcTemplate(ds);

  • 调用jdbcTemplate方法完成CRUD操作

​ update():执行DML语句.

​ queryFormao():查询结果将结果封装为map集合

​ queryForList():查询结果将结果封装为list集合

​ query():查询结果,将结果封装为javaBean对象

​ queryForObject:查询结果,将结果封装为对象

获取数据源,这里采用的是druid连接池

private static DataSource ds ;

static{
    try {
        //1.加载配置文件
        Properties pro = new Properties();
        pro.load(JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties"));
        //2.获取DataSource
        ds = DruidDataSourceFactory.createDataSource(pro);
    } catch (IOException e) {
        e.printStackTrace();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

 public static DataSource getDataSource(){
        return  ds;
    }
public static void main(String[] args) {
    
    JdbcTemplate jdbcTemplate = new JdbcTemplate(JDBCUtils.getDataSource());
    String sql="update account set balance=2000 where id=?";
    int count=jdbcTemplate.update(sql,2);
    System.out.println(count);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值