JDBC连接池

JDBC连接池

连接池概念:

管理数据库的连接

作用: 提高项目的性能,就是在连接池初始化的时候存入一定数量的连接,用的时候通过方法去获取,不用的时候归还连接即可,常用连接池:DBCP, C3P0

DBCP:使用步骤:1 导入jar包(commons-dbcp-1.4.jar和commons-pool-1.5.6.jar)

​ 2.使用api

​ 3.硬编码 (不推荐)

//创建连接池

BasiDataSource ds = new    BasiDataSource()

//配置信息

ds.setDriveClassName("com.mysql.jdbc.Driver");

ds.setUrl("jdbc:mysql://day07");

ds.setUsername("root");
ds.setPassword("1234");

Connection conn=ds.getConnection();
String sql="insert into category values(?,?);";
PreparedStatement st=conn.prepareStatement(sql); 
//设置参数
  	st.setString(1, "c011");
  	st.setString(2, "饮料");
  	
  	int i = st.executeUpdate();
  	System.out.println(i);


//配置文件
Properties prop = new Properties();
prop.load(new FileInputStream("src/dbcp.properties"));
DataSource ds = new BasicDataSourceFactory().createDataSource(prop);
Connection conn=ds.getConnection();
String sql="insert into category values(?,?);";
PreparedStatement st=conn.prepareStatement(sql); 
//设置参数
  	st.setString(1, "c011");
  	st.setString(2, "饮料");
  	
  	int i = st.executeUpdate();
  	System.out.println(i);

C3P0:

1.导入jar包(c3p0-0.9.1.2.jar)

2.使用api

//硬编码
     ComboPooledDataSource ds =new ComboPooledDataSource();
     ds.setDriveClass("com.mysql.jdbc.Driver");
     ds.setJdbcUrl("jdbc:mysql://day07");
     ds.setUser("root");
     ds.setPassword("1234");
     
     Connection conn=ds.getConnection();
     String sql="insert into category values(?,?);";
     PreparedStatement st=conn.prepareStatement(sql); 
      //设置参数
		st.setString(1, "c011");
		st.setString(2, "饮料");
		
		int i = st.executeUpdate();
		System.out.println(i);
		
		
		
//配置文件
要求1:配置文件的名称c3p0.properties 或者 c3p0-config.xml
要求2:配置文件的路径:src下
   ComboPooledDataSource ds =new ComboPooledDataSource();

     

dbutils

deutils 是apache组织的一个工具类,jdbc的框架,更方便我们的使用
使用步骤:
1.导入jar包
2.创建一个queryrunner类
queryrunner作用:操作sql语句
构造方法:new Queryrunner(Datasource ds)
3.编写sql
4.执行sql
query(..)执行r操作
update()执行cud操作

//底层帮我们创建连接
QueryRunner runner = new QueryRunner(new ComboPooledDataSource());
String sql = "insert into bank(username,money) values(?,?)";
		// 执行sql
		runner.update(sql,"赵六",500);

Druid

DRuid是阿里巴巴开源平台上一个数据库连接池实现,它结合了层c3p0,DSCP,PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和sql的执行情况,可以说是针对监控而生的DB连接池

使用步骤,到入德鲁伊的jar包
硬编码
      DruidDataSource ds =new DruidDataSource();
      //设置参数
      dataSource.setDriverClassName("com.mysql.jdbc.Driver");
        dataSource.setUsername("root");
        dataSource.setPassword("123456");
        dataSource.setUrl("jdbc:mysql://127.0.0.1:3306/crm");
        
        DruidPooledConnection conn =ds.getconnnect();
        String sql="select*from list where username=?and password=?";
        PreparedStatement st=conn.prepareStatement(sql); 
        st.setString(1,"zhangsna");
        st.setString(2,"123456");
        st.executeQuery();
        
        //配置文件
          //采用加载配置文件的方式
        Properties properties = new Properties();
        properties.load(new FileInputStream("src/db_server.properties"));
        DataSource dataSource = DruidDataSourceFactory.createDataSource(properties);
        Connection conn = dataSource.getConnection();
        String sql="select*from list where username=?and password=?";
        PreparedStatement st=conn.prepareStatement(sql); 
        st.setString(1,"zhangsna");
        st.setString(2,"123456");
        st.executeQuery();
        
        

你可能感兴趣的:(java基础)