您的位置:首页 > 其它

JDBC(一) 简介与获取数据连接

2017-02-21 21:46 162 查看

1. JDBC 简介:

JDBC(Java
Data Base Connectivity : java数据库连接)是一种用于执行SQL语句的Java API,就是一组接
口(基本上在 java.sql 包中)。

用途:与数据库建立连接、发送 操作数据库的语句并处理结果。


2. JDBC 驱动程序:数据库厂商提供的实现 JDBC 接口的实现类

所以想访问数据库只需实现这组接口就行,当然不同的数据库就有不同的实现。(多态)

数据库厂商为了生意更好,为客户服务,他们就提供对 JDBC 的实现,即JDBC驱动程序。


3. JDBC API



4. 测试获取数据库连接

    Driver 是一个接口:数据库厂商必须提供实现的接口, 从其中获取数据库连接
     准备工作:
 


   实现代码如下:
@Test
public void testDriver() throws Exception {
// 1. mysql厂商提供Driver 接口的实现类
Driver driver = new com.mysql.jdbc.Driver();

// 2. 准备连接数据库的基本信息
//url 写法:jdbc:mysql://localhost:3306/dason
//	   协议:子协议://子名称/数据库名
String url ="jdbc:mysql://localhost:3306/dason";
Properties info = new Properties();
// 数据库的登录名和密码
info.put("user","root");
info.put("password","root");

// 3. 调用driver 的coonnect(url,info) 方法获取数据库连接
Connection conn = driver.connect(url, info);
System.out.println(conn);
}

    输出结果为:com.mysql.jdbc.JDBC4Connection@c666ef0

5. 但是不同的数据的 Driver 实现类的全类名、数据库信息是不同的,我们需要写一个适合各个数据库的获取连接的方法:

    如图所示编写文件名为jdbc.properties 的配置文件



代码如下:
/**
* 通用的方法:可以获取任何数据库的连接
* 改进:将Driver 实现类的全类名、数据库信息放入配置文件中
* 配置文件在src下,文件名为jdbc.properties
* @throws Exception
*/
public Connection getConnection() throws Exception {
/**
* //读取配置文件中的信息
* getClass():取得当前对象所属的Class对象
* getClassLoader():取得该Class对象的类装载器
*/
InputStream in =
getClass().getClassLoader().getResourceAsStream("jdbc.properties");
Properties properties = new Properties();
properties.load(in);

String drviverClass = properties.getProperty("driverClass");
String jdbcUrl = properties.getProperty("jdbcUrl");
String user = properties.getProperty("user");
String password = properties.getProperty("password");

Properties info = new Properties();
info.put("user", user);
info.put("password", password);

// 利用反射创建对象
Driver driver = (Driver) Class.forName(drviverClass).newInstance();
Connection conn = driver.connect(jdbcUrl, info);

return conn;
}


6. DriverManager 是驱动的管理类. 
 1). 可以通过重载的 getConnection() 方法获取数据库连接. 较为方便
  2). 可以同时管理多个驱动程序: 若注册了多个数据库连接, 则调用 getConnection()
       方法时传入的参数不同, 即返回不同的数据库连接。

public Connection getConnection() throws Exception{
String driverClass = null;
String jdbcUrl = null;
String user = null;
String password = null;

//读取类路径下的 jdbc.properties 文件
InputStream in =
getClass().getClassLoader().getResourceAsStream("jdbc.properties");
Properties properties = new Properties();
properties.load(in);
driverClass = properties.getProperty("driver");
jdbcUrl = properties.getProperty("jdbcUrl");
user = properties.getProperty("user");
password = properties.getProperty("password");

//2. 加载数据库驱动程序(对应的 Driver 实现类中有注册驱动的静态代码块.)
Class.forName(driverClass);
//3. 通过 DriverManager 的 getConnection() 方法获取数据库连接.
Connection connection =
DriverManager.getConnection(jdbcUrl, user, password);
return connection;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: