摘要:以下程序和代码中,所需要用到的数据库和相关插件没有进行提供,需要做的小伙伴可以自行搭建和下载,如果这两个都不能自行搭建下载,建议小伙伴先去学习相关知识!
一、常见的数据库连接的DRIVER和URL写法
/**
* 1、—oracle—
*/
驱动(driverClass):oracle.jdbc.driver.OracleDriver
URL:jdbc:oracle:thin:@localhost:1521:SID
协议:jdbc:oracle
ip地址:localhost
port:端口号,默认是1521
SID:数据库,如:orcl
/**
* 2、—mysql—
*/
!注意这里!--MySQL 5.0--
驱动(driverClass):com.mysql.jdbc.Driver
URL:jdbc:mysql://localhost:3306/databaseName
!注意这里!--MySQL 8.0--
驱动(driverClass):com.mysql.cj.jdbc.Driver
URL:jdbc:mysql://localhost:3306/databaseName?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true
协议:jdbc:mysql
ip地址:localhost
port:端口号,默认3306
databaseName:数据库名称,如:test
/**
* 3、—sqlserver—
*/
驱动(driverClass):com.microsoft.sqlserver.jdbc.SQLServerDriver
URL:jdbc:sqlserver://localhost:1433;databaseName=databaseName
协议:jdbc:sqlserver
ip地址:localhost
port:端口号,默认1433
databaseName:数据库名称,如:test
二、JDBC连接 数据库
/*
*JDBC连接数据库:方式一
*/
public void connectionTest1() throws Exception {
//1.加载驱动:驱动怎么来的可以通过百度查询,我们不需要记住,用的时候再去找出来
Driver driver = new com.microsoft.sqlserver.jdbc.SQLServerDriver();
//2.填入URL,username,password
String url = "jdbc:sqlserver://localhost:1433;databaseName=test";
//这里通过Properties将用户名和密码进行封装
Properties info = new Properties();
info.setProperty("user","sa");
info.setProperty("password","sa");
//3.创建连接
Connection conn = driver.connect(url, info);
//4.运行测试,有输出则代表连接成功
System.out.println(conn);
System.out.println("方式一:连接成功!");
}
/*
*JDBC连接数据库:方式二
*/
public void connectionTest2() throws Exception{
//1.加载驱动,通过使用反射获取Driver实现类对象
Class clazz = Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//强转成Driver类对象
Driver driver = (Driver) clazz.newInstance();
//2.填入URL,username,password
String url = "jdbc:sqlserver://localhost:1433;databaseName=test";
//这里通过Properties将用户名和密码进行封装
Properties info = new Properties();
info.setProperty("user","sa");
info.setProperty("password","sa");
//3.创建连接
Connection conn = driver.connect(url,info);
System.out.println("方式二:连接成功!");
}
/*
*JDBC连接数据库:方式三
*/
public void connectionTest3() throws Exception{
//1.加载驱动,通过使用反射获取Driver实现类对象
Class clazz = Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//强转成Driver类对象
Driver driver = (Driver) clazz.newInstance();
//2.填入URL,username,password
String url = "jdbc:sqlserver://localhost:1433;databaseName=test";
String user = "sa";
String password="sa";
//3.注册驱动,使用DriverManager替换Driver
DriverManager.registerDriver(driver);
//4.创建连接
Connection conn = DriverManager.getConnection(url, user, password);
System.out.println("方式三:连接成功!");
}
/*
*JDBC连接数据库:方式四
*/
public void connectionTest4() throws Exception{
//1.加载驱动,通过使用反射获取Driver实现类对象;原因:导入驱动后,进行数据库连接时Driver.class有一个static方法(idea:按住Ctrol+单机Driver,跳转)会自动加载。(大概这意思,知道就行)
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
//2.填入URL,username,password
String url = "jdbc:sqlserver://localhost:1433;databaseName=test";
String user = "sa";
String password="sa";
//3.创建连接
Connection conn = DriverManager.getConnection(url, user, password);
System.out.println("方式四:连接成功!");
}
方式五:通过配置文件的方式,将我们所需要的信息,包括:访问地址(URL)、驱动信息(driverClass)、数据库用户(username)、数据库用户密码(password)等,保存到配置文件(例:jdbc.properties)。
好处:我们需要这些信息时,通过输入流传入即可,当需要更换新的数据库时,只需要更新配置文件的信息,就能重新连接数据库,而不需要去修改程序中的代码。
/*
*JDBC连接数据库:方式五:::重点,必须掌握
*/
public class JDBCUtils {
/**
* 获取数据库连接池中的连接
* @return
*/
public static Connection getConnection() {
try {
//1.通过IO流将 jdbc.properties 配置文件中的信息进行读取
//通过使用反射技术来加载类文件进内存
ClassLoader classLoader = JDBCUtils.class.getClassLoader();
InputStream is = classLoader.getResourceAsStream("jdbc.properties");
//2.get获取到的信息
Properties prop = new Properties();
prop.load(is);
String driverClass = prop.getProperty("driverClass");
String url = prop.getProperty("url");
String username = prop.getProperty("username");
String password = prop.getProperty("password");
//3.加载驱动
Class.forName(driverClass);
//4.创建连接
Connection conn = DriverManager.getConnection(url,username,password);
return conn;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
三、配置文件
##这个是配置文件例子,文件名+后缀:jdbc.properties
username=root
password=root
url=jdbc:mysql://localhost:3306/book?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true
driverClass=com.mysql.cj.jdbc.Driver
maxActive=30
maxIdle=10
maxWait=6000