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();