java数据库连接方法.doc
文本预览下载声明
问题引入
在java程序中,需要访问数据库,做增删改查等相关操作。如何访问数据库,做数据库的相关操作呢?
Java连接数据库方法概述
java.sql提供了一些接口和类,用于支持数据库增删改查等相关的操作。同时,各个数据库厂商都提供了该jar包中定义的各个接口的实现类,用于具体实现数据库的增删改查操作,即称之为“数据库驱动jdbc driver”。例如mysql的数据库驱动为:com.mysql.jdbc.driver;oracle的数据库驱动为:oracle.jdbc.driver.oracledriver。
在java程序中访问数据库,做数据库连接时,可以采用两种方式:
1、使用java.sql API利用该包提供的各种接口和类访问数据库。
例子:
2、使用数据库连接池C3p0
Apache 的Jakarta DBCP
BoneCP
其中,sping框架依赖的第三方使用了c3p0和dbcp两种方式;而bonecp号称是速度最快的数据库连接池。JNDI方式创建实现的datasource是真正实现了javax.sql.datasource;其他的三种方式都不是。下面的列表,列出了几种方式的区别和不同:
序号 连接池名称 依赖的jar包 实现的datasource类 备注 1 JNDI 该数据源是由相应的web服务器(例如:tomcat,weblogic,websphere)负责初始化,创建,管理。程序中不需要引入特别的jar包。 Javax.sql.datasource 2 C3P0 c3p0-0.9.xxx.jar com.mchange.v2.c3p0.ComboPooledDataSource 3 DBCP commons-dbcp.jar,commons-pool.jar mons.dbcp.BasicDataSource 4 BoneCP
bonecp-0.6.5.jar
· google-collections-1.0.jar
· slf4j-api-1.5.11.jar
· slf4j-log4j12-1.5.11.jar
·log4j-1.2.15.jar
BoneCPDataSource 备注:以上几种方式的数据库连接池的配置参数大同小异,略有差别;其参数的配置,既可以通过配置文件的方式配置,也可以通过硬编码的方式配置。
分别列出几种连接池的编码例子
(所有的例子均可以参考D:\work\qsyworkspace2\jdbctest项目)
使用java.sql API直接访问数据库
详细请参考javasql.java文件。
Class.forName(com.mysql.jdbc.Driver);
String url=jdbc:mysql://localhost:3306/editortest;
String user=root;
String password=123456;
Connection cn=DriverManager.getConnection(url, user, password);
Statement st=cn.createStatement();
String sql=select * from artical where id=1;
ResultSet rs=st.executeQuery(sql);
while(rs.next()){
System.out.println(1:+rs.getString(1));
System.out.println(2:+rs.getString(2));
System.out.println(3:+rs.getString(3));
System.out.println(4:+rs.getString(4));
}
使用JNDI方式
这种方式,是由web服务器,实现了java.sql.datasource。由web服务器负责初始化数据源,创建connection,分配,管理connection。由于本身是由web服务器实现的功能,因此不需要在项目project中引入特别的jar包,但是需要在服务器的某些配置文件中增加相关的配置。下面,以tomcat服务器为例,讲述这种方式的使用。
(1)、修改tomcat的conf下的context.xml文件,增加Resource的配置的支持。
(2)、由于数据源是由tomcat负责创建,所以需要的jdbc驱动应该放到tomcat的lib路径下。
(3)、编写使用java代码,并放在tomcat环境下使用,如下:
public void jnditest(){
// TODO A
显示全部