脚本宝典收集整理的这篇文章主要介绍了9.23JavaWeb之JDBC获取数据库连接方式,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
特点:
示例代码:
package JDBCConnectionNo1;import org.testng.annotations.Test;import java.sql.Connection;import java.sql.Driver;import java.sql.SQLException;import java.util.PRoPErties;/** * 数据库连接测试类1 * @since JDK 1.8 * @date 2021/09/23 * @author Lucifer */public class ConnectionTestNo1 { @Test public void testConnection1() throws SQLException { //获取一个Connection对象--->使用Driver //声明一个Driver Driver driver = new com.MySQL.jdbc.Driver(); //实例化的时候用MySQL具体的Driver的实现类--->这是一个对象,这是一个实现类 //调用Driver的方法获取Connection对象 String url = "jdbc:mysql://localhost/xxxx"; //URL的格式 /* jdbc主协议 mysql子协议--->针对什么数据库 ip地址 port端口号 数据库 */ Properties info = new Properties(); //properties本身就是键值对形式的,用于封装用户名和密码--->新建properties对象 info.setProperty("user", "www"); info.setProperty("password", "654321"); //调用connect方法获取Connection对象 Connection conn = driver.connect(url, info); //返回的是Connection接口的实现类的对象 System.out.println(conn); }}
小结:
Driver
URL
properties
user
password
按照步骤依次获取
示例代码:
//第二个连接数据库的方式,对方式一的迭代 /* 1、面向接口编程的,代码当中尽可能的不要出现任何第三方相关的API 2、在上一个方式当中看到了com.mysql.jdbc.Driver这个第三方的API,所以要换一种实现方式 3、使用反射的方式获取第三方的API--->动态获取第三方的驱动 使下面的程序中不出现第三方API,让程序有更好的移植性 */ @Test public void testConnection2() throws ClassNotFoundException, InstantiationException, IllegalAccessException, SQLException { //获取Driver的实现类对象--->使用反射来获取 Class classNo1 = Class.forName("com.mysql.jdbc.Driver"); //forName后+的是实现类的路径 //调取newInstance方法--->1、有无参构造器。2、权限要够 Driver driver = (Driver) classNo1.newInstance(); //接收为Driver对象(强制转型) /* 这样做的目的: 1、通过反射的方式获取了Driver的实现类对象 2、增强了可移植性 */ //提供要连接的数据库URL String url = "jdbc:mysql://localhost/xxxx"; //提供连接需要的用户名和密码--->Properties的方式 Properties info = new Properties(); //properties本身就是键值对形式的,用于封装用户名和密码--->新建properties对象 info.setProperty("user", "www"); info.setProperty("password", "123456"); //获取连接 Connection conn = driver.connect(url, info); System.out.println(conn); }
小结:
因为com.mysql.jdbc.Driver
是第三方API,所以在程序当中一般不暴露在代码里面
使用反射获取Driver
驱动类
使用Class
类对象下的newInstance
方法创建事务
示例代码:
//使用DriverManager(这是一个具体的类)替换Driver @Test public void testConnection3() throws SQLException, ClassNotFoundException, InstantiationException, IllegalAccessException { /* 步骤合并成了两步: 1、注册驱动 2、获取连接对象 */ //获取Driver的实现类对象--->通过反射获取 Class classNo2 = Class.forName("com.mysql.jdbc.Driver"); Driver driver = (Driver) classNo2.newInstance(); //获取连接信息 String url = "jdbc:mysql://localhost/xxxx"; String user = "www"; String password = "654321"; //注册驱动 DriverManager.registerDriver(driver); //获取连接 Connection conn = DriverManager.getConnection(url, user, password); System.out.println(conn); }
小结:
DriverManager
下提供了获取Connection
对象的方法,调用传参可以获取到返回的对象
使用DriverManager
对注册驱动、获取连接进行统一管理
//省略一些步骤 @Test public void testConnection4() throws ClassNotFoundException, SQLException { //提供基础清晰 String url = "jdbc:mysql://localhost/xxxx"; String user = "www"; String password = "654321"; //加载驱动--->mysql的Driver实现类当中实现了注册驱动等操作 Class.forName("com.mysql.jdbc.Driver"); //获取连接 Connection conn = DriverManager.getConnection(url, user, password); System.out.println(conn); }
//省略一些步骤 @Test public void testConnection4() throws ClassNotFoundException, SQLException { //提供基础清晰 String url = "jdbc:mysql://localhost/xxxx"; String user = "www"; String password = "654321"; //获取连接 Connection conn = DriverManager.getConnection(url, user, password); System.out.println(conn); }
//将提供的信息写到配置文件当中 @Test public void testConnection5() throws IOException, ClassNotFoundException, SQLException { //将数据库连接需要的基本信息声明到配置文件当中,通过读取配置文件的方式连接数据库 /* 1、读取配置文件中的四个基本信息--->获取到当前类的加载器在加载resources目录下的配置文件--->这样就会默认的生成一个流 2、创建一个properties对象引用 3、使用该类下的加载方法加载流文件 4、通过getProperties方法读取文件当中的内容 */ InputStream in = ConnectionTestNo1.class.getClassLoader().getResourceAsStream("JDBC.properties"); Properties prop = new Properties(); prop.load(in); //读取文件内容设置成变量 String user = prop.getProperty("USERNAME"); String password = prop.getProperty("PASSWORD"); String driverClass = prop.getProperty("DRIVER"); String url = prop.getProperty("URL"); //加载驱动 Class.forName(driverClass); //获取连接 Connection conn = DriverManager.getConnection(url, user, password); System.out.println(conn); }
配置文件:
DRIVER=com.mysql.jdbc.DriverURL=jdbc:mysql://localhost/rbac_v2USERNAME=wwwPASSWORD=654321
小结:
获取数据库连接必须要有的四个基本要素:
加载对应数据库的驱动类
要有URL--->数据库的IP地址和数据库名
配置文件
username
password
通过配置文件和代码分离实现了数据和代码的分离--->解耦
如果不分离的话打包了以后要重新的修改代码才能够更改连接。使用文件的话直接更改文件参数即可。不需要对打包好的程序重新打包
以上是脚本宝典为你收集整理的9.23JavaWeb之JDBC获取数据库连接方式全部内容,希望文章能够帮你解决9.23JavaWeb之JDBC获取数据库连接方式所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。