JDBC全称Java Data Base Connectivity,意义为Java数据库连接,由一些接口和类构成的API,使用使用它可很方便很容易的操作关系型数据库。它J2SE的一部分,由java.sql,javax.sql包组成。这里补充一下:
2. 什么是JDBC驱动
驱动程序是知道如何与实际数据库服务进行会话的软件部件。JDBC是JDBC接口的具体实现,不同的数据库厂商有不同的实现,通常都会打包成jar包。JDBC驱动类型总共有四类,通常用纯java的驱动。
3. 如何连接数据库
A : 载入JDBC驱动
针对不同的数据库,可以去下载不同的驱动。载入驱动的方式可以通过Class.forName或者Properties工具
a)例如oracle数据库:
- Class.forName("oracle.jdbc.driver.OracleDriver");
为了方便,可以定义一个常量:
- private final String ORACLEDRIVER = "oracle.jdbc.driver.OracleDriver";
其实ORACLEDRIVER的值是个路径。
b)Properties工具:
这个实现有点复杂,首先,得建立一个名叫DB.properties文件,在里定义:driverClassName=oracle.jdbc.driver.OracleDriver;
然后在构建一个类,进行读取:具体代码如下:
- Properties prop =new Properties();
- prop.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("DB.properties"));
- ORACLEDRIVER = prop.getProperty(" driverClassName ");
这样就完成了驱动的载入。
B : 定义并连接URL
有以后二个类使用到:Connection,DriverManager。关于这个二类具体的用法可见参考文档。
URL通常包括:jdbc:协议:@主机名:端口号:数据库
例如oracle 的URL: jdbc:oracle:thin:@localhost:1521:orcl;
a)接着定义常量:用户名与密码
- private final String USERNAME = "xxxx";
- private final String PASSWORD= "xxxx";
- Connection conn=DriverManager.getConnection(URL,USERNAME,PASSWORD );
b)在DB.properties里面定义:
USERNAME =XXXXX
PASSWORD=XXXXX
URL=jdbc:oracle:thin:@localhost:1521:orcl
然后调用getProperty("参数"),进行引用。
- Connection conn=DriverManager.getConnection(URL,USERNAME,PASSWORD );
这样就定义并且连接好,但是别忘记try{}catch(){},当然throws异常也可以。
具体代码如下:
版本一号:
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.SQLException;
- //用于连接数据库
- public class Jdbc {
- private final String ORACLEDRIVER ="oracle.jdbc.driver.OracleDriver";//驱动名。
- private final String URL="jdbc:oracle:thin:@localhost:1521:orcl";//url。
- private final String USERNAME="XXX";//数据库名。
- private final String PASSWORD="XXXX";//密码。
- private Connection conn=null;
- public Jdbc()
- {
- //加载驱动
- try {
- Class.forName(ORACLEDRIVER);
- this.conn=DriverManager.getConnection(URL, USERNAME, PASSWORD);
- } catch (ClassNotFoundException e)
- {
- System.out.println("驱动加载异常");
- }catch(SQLException e)
- {
- System.out.println("没有连接到数据库");
- }
- }
- //建立一个方法获得连接
- public Connection getInstance()
- {
- return this.conn;
- }
- //如果this.conn!=null;则把它关闭。
- public void close()
- {
- if(this.conn!=null)
- {
- try {
- this.conn.close();
- } catch (SQLException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- }
}
- 版本二:为区分,就用不同的名字。
- DB.properties文件:
- user=zhangzhi
- password=feiyang
- url=jdbc:oracle:thin:@localhost:1521:orcl
- driverClassName =oracle.jdbc.driver.OracleDriver
- import java.io.IOException;
- import java.sql.Connection;
- import java.sql.DriverManager;
- import java.sql.SQLException;
- import java.util.Properties;
- public class DB {
- private static Connection conn = null;
- private static String url = null;
- private static String username = null;
- private static String password = null;
- private static String driver = null;
- private static Properties prop = null;
- static{
- prop = new Properties();
- try {
- prop.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("DB.properties"));
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- driver = prop.getProperty("driverClassName");
- url = prop.getProperty("url");
- username = prop.getProperty("username");
- password = prop.getProperty("password");
- }
- public static Connection getconn() throws ClassNotFoundException, SQLException{
- Class.forName(driver);
- return conn = DriverManager.getConnection(url,username,password);
- }
- }