Driver 是一个接口: 数据库厂商必须提供实现的接口 能从其中获取数据库连接
可以通过Driver的实现类对象获取数据库连接
1…加入mysql驱动
2. 解压mysql-connector-java-5.1.7.zip
3. 在当前项目下新建lib目录
4.右键 build-path , add to buildpath 加入到类路径下.
JDBC — 1
void testDriver() throws SQLException {
//1. 创建一个Driver 实现类的对象
Driver driver = new Driver();
String url = "jdbc:mysql://localhost:3306/test";
//2 准备连接数据的基本信息: url , user , password
Properties info = new Properties();
info.put("user", "root"); //登录用户为root
info.put("password", ""); //密码为无
//3 调用Driver 接口的 connect(url,info) 获取数据库连接
Connection connection = driver.connect(url, info);
System.out.println(connection);
}
| | |
|--|--|
| | |
JDBC — 2: 因为user url driver 可能会改变 我们就创建一个 properties文件 在该文件中写入准备连接数据库的4个字符串 user,url,password,driver
操作:我们在当前包底下创建一个File文件 命名为: jdbc.properties
编写一个通用的方法,在不修改源程序的情况下,可以获取认识数据库的连接
解决方案: 把数据库驱动Driver 实现类的全类名 url、user、password、放入一个
配置文件中 通过修改配置文件的方法实现和具体的数据库解耦
@throws Exception
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");
//通过反射创建 Driver 对象.
Driver driver =
(Driver) Class.forName(driverClass).newInstance();
Properties info = new Properties();
info.put("user", user);
info.put("password", password);
//通过Driver 的connect 方法获取数据库连接.
Connection connection = driver.connect(jdbcUrl, info);
return connection;
}
JDBC — 3
为了改进Driver
DriverManager 是驱动的管理类
1). 可以通过重载的getConnection()方法获取数据库连接, 较为方便
2). 可以同时管理多个驱动程序:若注册了多个数据库连接
则调用getConnection() 方法是传入的参数不同,即返回不同的数据库连接。
public void testDrierManager() throws Exception
{
//1. 准备连接数据库的4个字符串
//驱动的全类名
String driverClass = "com.mysql.jdbc.Driver";
//JDBC URL 注意:这里是在数据库名为test的目录下
String jdbcUrl = "jdbc:mysql://localhost:3306/test";
//user
String user = "root";
//password
String password = "";
//2.加载数据库驱动程序(对应的Driver 实现类中有注册驱动的静态代码块)
Class.forName(driverClass);
//3. 通过DriverManager 的getConnection() 方法获取数据库连接.
Connection connection =
DriverManager.getConnection(jdbcUrl, user,password);
System.out.println(connection);
}
JDBC — 4 : 读取配置文件和调用DriverManager方法
public Connection getConnection2() throws Exception
{
//1. 准备连接数据库的4个字符串
//1).创建Properties 对象
Properties properties = new Properties();
//2)。 获取jdbc.properties 对应的输入流
InputStream in =
getClass().getClassLoader().getResourceAsStream("jdbc.properties");
//3). 加载2) 对应的输入流
properties.load(in);
//4). 具体决定user , password 等4个字符串
String driver = properties.getProperty("driver");
String jdbcUrl = properties.getProperty("jdbcUrl");
String user = properties.getProperty("user");
String password = properties.getProperty("password");
//2.加载数据库驱动程序(对应的Driver 实现类中有注册驱动的静态代码块)
Class.forName(driver);
//3. 通过DriverManager 的getConnection() 方法获取数据库连接.
return DriverManager.getConnection(jdbcUrl, user, password);
}