JDBC和DBCP链接数据库
来源:互联网 发布:淘宝助理图片效验出错 编辑:程序博客网 时间:2024/06/05 05:11
JDBC链接数据库。
这是最基本的连接数据库方式,思路是这样的:
- 导入jar包,并add to path。
- 加载数据库驱动。
- 获取数据库链接。
- 创建Statement对象。
- 操作数据库(执行SQL语句)。
- 得到结果集。
- 最后关闭数据库链接。
简单例子:
package DB;import java.sql.*;public class JDBCUtils { static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; static final String URL="jdbc:mysql://localhost:3306/Demo"; static final String name = "root"; static final String password = "9527"; public static void main(String[] args) { // TODO Auto-generated method stub Connection con = null; Statement st = null; try{ //注册驱动 Class.forName(JDBC_DRIVER); //获得数据库链接 con = DriverManager.getConnection(URL, name, password); //创建Statement对象 st = con.createStatement(); //操作数据库 ResultSet rs = st.executeQuery("select * from user"); //读取数据 while(rs.next()){ String name = rs.getString("name"); String pwd = rs.getString("password"); String phone = rs.getString("phone"); System.out.println("-----"); System.out.println("name is:"+name); System.out.println("password is:"+pwd); System.out.println("phone is:"+phone); System.out.println("-----"); } // 完成后关闭 rs.close(); st.close(); con.close(); }catch(Exception e){ e.printStackTrace(); } }}
DBCP链接数据
数据库连接池的操作思路是这样的:
(1)建立数据库连接池对象。
(2)按照事先指定的参数创建初始数量的数据库连接(即:空闲连接数)。
(3)对于一个数据库访问请求,直接从连接池中得到一个连接。如果数据库连接池对象中没有空闲的连接,且连接数没有达到最大(即:最大活跃连接数),创建一个新的数据库连接。
(4)存取数据库。
(5)关闭数据库,释放所有数据库连接(此时的关闭数据库连接,并非真正关闭,而是将其放入空闲队列中。如实际空闲连接数大于初始空闲连接数则释放连接)。
(6)释放数据库连接池对象(服务器停止、维护期间,释放数据库连接池对象,并释放所有连接)。
配置文件,最重要的是driverClassName,url,username,password:
driverClassName=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/Demousername=rootpassword=9527initialSize=10maxActive=50maxIdle=20minIdle=5maxWait=60000connectionProperties=useUnicode=true;characterEncoding=utf8defaultAutoCommit=truedefaultReadOnly=defaultTransactionIsolation=REPEATABLE_READ
package DB;import java.io.InputStream;import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Properties; import javax.sql.DataSource; import org.apache.commons.dbcp2.BasicDataSourceFactory; public class DBCPUtils { static DataSource DS = null; static{ try{ Properties prop = new Properties(); InputStream b = DBCPUtils.class.getClassLoader().getResourceAsStream( "../DBCP.properties"); System.out.println(b); prop.load(DBCPUtils.class.getClassLoader().getResourceAsStream( "DBCP.properties")); DS = BasicDataSourceFactory.createDataSource(prop); }catch(Exception e){ e.printStackTrace(); } } public static Connection getConnection(){ try { return DS.getConnection(); } catch (SQLException e) { throw new RuntimeException(e); } } public static void close(Connection conn, Statement st, ResultSet rs){ if(rs!=null){ try{ rs.close(); }catch(Exception e){ e.printStackTrace(); } rs=null; } if(st!=null){ try{ st.close(); }catch(Exception e){ e.printStackTrace(); } st=null; } if(conn!=null){ try{ conn.close(); }catch(Exception e){ e.printStackTrace(); } conn=null; } } public static void main(String[] args) throws SQLException { // TODO Auto-generated method stub Connection con = DBCPUtils.getConnection(); Statement st = con.createStatement(); ResultSet rs = st.executeQuery("select * from user"); while(rs.next()){ String name = rs.getString("name"); String pwd = rs.getString("password"); String phone = rs.getString("phone"); System.out.println("-----"); System.out.println("name is:"+name); System.out.println("password is:"+pwd); System.out.println("phone is:"+phone); System.out.println("-----"); } DBCPUtils.close(con, st, rs); }}
阅读全文
0 0
- JDBC和DBCP链接数据库
- 数据库:JDBC+DBCP
- jdbc和dbcp
- jdbc和数据库的链接
- spring配置dbcp链接数据库
- jdbc连接dbcp和c3p0
- 数据库--数据库链接池--DBCP--Spring 连接池之 DBCP
- Java 使用JDBC、DBCP、C3P0访问数据库
- Java 使用JDBC、DBCP、C3P0访问数据库
- dbcp和jdbc程序教程实例3——数据库的查询
- 连接池配置c3p0、dbcp、tomcat jdbc pool 及常用数据库的driverClass和驱动包
- jdbc链接各种数据库
- jdbc链接数据库大全
- jdbc链接数据库
- Jdbc 链接数据库
- JDBC数据库链接
- jdbc链接oracle数据库
- JDBC链接数据库
- Java实现遗传算法
- 无类型与无类型指针
- php递归目录
- 极光推送自动集成与手动集成
- 1.1.4 Broken Necklace
- JDBC和DBCP链接数据库
- Python字符串的encode与decode研究心得——解决乱码问题
- 性能分析工具
- 二分图匹配
- PhpStudy 站点配置流程
- 十一月十三日课堂笔记
- android手把手教你开发launcher(一)(AndroidStudio版)
- 线上环境安装及配置实操(mysql)
- [HNOI2001][luogu1128][bzoj1225] 求正整数