1.通过Driver接口获取数据库连接(尚硅谷笔记)

数据持久化:把数据保存到可掉电式存储设备中以供之后使用。

主要应用:将内存中的数据存储在关系型数据库、磁盘文件、XML中。

在Java中,数据库存取技术:

1)JDBC直接访问数据库(基石)

2)JDO技术

3)第三方O/R工具,如Hibernate,ibatis等。

JDBC是一个独立于特定数据库管理系统、通用的SQL数据库存取和操作的公告接口(一组API),定义了用来访问数据库的标准Java类库

JDBC为访问不同的数据库提供了一种统一的途径。

JDBC的目标是使Java程序员使用JDBC可以连接任何提供了JDBC驱动程序的数据库系统。

JDBC接口(API)包括两个层次:

面向应用的API:Java API,抽象接口,供应用程序开发人员使用(连接数据库、执行SQL语句、获得结果)。

面向数据库的API:Java Driver API,供开发商开发数据库驱动程序用。

JDBC驱动程序:各个数据库厂商根据JDBC的规范制作的JDBC实现类的类库

本地协议的纯Java驱动程序:完全使用Java编写,通过与数据库建立的Socket连接,采用具体与厂商的网络协议把JDBC调用转换为直接连接的网络调用。

JDBC API是一系列的接口, 它使得应用程序能够进行数据库联接,执行SQL语句,并且得到返回结果。

Java.sql.Driver接口是数据库厂商必须提供实现的接口,能从中获取数据库连接

在程序中不需要直接去访问实现了Driver接口的类,而是由驱动程序管理器类(java.sql.DriverManager)去调用这些Driver实现。

加入mysql驱动程序

1)在当前项目下新建lib目录

2)把mysql-connector-java-5.1.7-bin.jar复制到lib目录下

3)右键build-path,add to duildpath加到类路径下。

调用Driver类的connect()方法建立到数据库的连接:

JDBC URL用于标识一个被注册的驱动程序,驱动程序管理器通过这个URL选择正确的驱动程序,从而建立到数据库的连接。

JDBC URL的标准由三部分组成,各部分间用冒号分隔。

-jdbc:<子协议>:<子名称>

-协议:JDBC URL中的协议总是jdbc

-子协议:子协议用于标识一个数据库驱动程序

-子名称:一种标识数据库的方法,子名称可以依不同的子协议而变化,用子名称的目的是为了定位数据库提供足够的信息。

例:"jdbc:mysql://localhost/users"

public static void testDriver() throws SQLException {
	//1.创建一个Driver实现类的对象
	Driver driver=new com.mysql.jdbc.Driver();
	//2.准备连接数据库的基本信息:url,user,password
	String url="jdbc:mysql://localhost:3306/users";
	Properties info=new Properties();
	info.put("user", "root");
	info.put("password","12345678");
	//3.调用Driver接口的connect(url,info)获取数据库连接
	Connection connection=driver.connect(url, info);
	System.out.println(connection);
}

编写一个通用方法发,在不修改源程序的情况下,可以获取任何数据库的连接。

解决方案:把数据库驱动Driver实现类的全类名、url、user、password放入一个配置文件中,通过修改配置文件的方式实现和具体的数据库解耦。

public static Connection getConnection() throws Exception{
        //1.准备连接数据库的4个字符串
	//驱动的全类名
	String driverClass=null;
	String jdbcUrl=null;
	String user=null;
	String password=null;
	//加载配置文件
	ClassLoader loader = Thread.currentThread().getContextClassLoader();
	Properties properties=new Properties();
	properties.load(loader.getResourceAsStream("jdbc.properties"));
        //读取类路径下的jdbc.properties文件中连接数据库的4个字符串
	driverClass=properties.getProperty("driver");//读取接口类型
	jdbcUrl=properties.getProperty("jdbcUrl");
	user=properties.getProperty("user");
	password=properties.getProperty("password");
	//2.创建一个Driver实现类的对象
	Driver driver=(Driver)Class.forName(driverClass).newInstance();//反射
        properties.put("user", user);
	properties.put("password",password);
	//3.调用Driver接口的connect(url,info)获取数据库连接
	Connection connection=driver.connect(jdbcUrl, properties);
	return connection;
}
发布了90 篇原创文章 · 获赞 48 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/Asher_S/article/details/90209812