mysql資料庫:jdbc:mysql://localhost:3306/test
IDE:IDEA 2022
JDK:JDK8
#mysql:mysql 5.7
JDBC:5.1.37
使用靜態載入驅動方式,連接mysql
這種方式靈活性差,依賴性強
public void connection01() throws SQLException { // 注册驱动 Driver driver = new Driver(); // 创建Properties对象,用于保存mysql账号和密码键值对 Properties properties = new Properties(); properties.setProperty("user", "root"); properties.setProperty("password", "123456"); String url = "jdbc:mysql://localhost:3306/test"; // 得到mysql的连接 Connection connection = driver.connect(url, properties); // 得到可以与mysql语句进行交互的对象 Statement statement = connection.createStatement(); // 关闭与 mysql语句进行交互的对象 statement.close(); // 关闭与mysql的连接 connection.close();
在第一種方式的基礎上使用反射動態載入驅動,依賴性減少、靈活性提高
public void connection02() throws ClassNotFoundException, InstantiationException, IllegalAccessException, SQLException { // 使用反射动态加载mysql驱动件程序 Class<?> aClass = Class.forName("com.mysql.jdbc.Driver"); Driver driver = (Driver) aClass.newInstance(); // 创建Properties对象,用于保存mysql账号和密码键值对 Properties properties = new Properties(); properties.setProperty("user", "root"); properties.setProperty("password", "123456"); String url = "jdbc:mysql://localhost:3306/test"; // 得到mysql的连接 Connection connection = driver.connect(url, properties); // 得到可以与mysql语句进行交互的对象 Statement statement = connection.createStatement(); // 关闭与 mysql语句进行交互的对象 statement.close(); // 关闭与 mysql语句进行交互的对象 connection.close(); }
使用DriverManager統一管理
public void connection03() throws ClassNotFoundException, InstantiationException, IllegalAccessException, SQLException { // 使用反射动态加载mysql驱动件程序 Class<?> aClass = Class.forName("com.mysql.jdbc.Driver"); Driver driver = (Driver) aClass.newInstance(); String user = "root"; String password = "123456"; String url = "jdbc:mysql://localhost:3306/test"; // 使用DriverManager加载Driver DriverManager.registerDriver(driver); // 得到mysql的连接 Connection connection = DriverManager.getConnection(url, user, password); // 得到可以与mysql语句进行交互的对象 Statement statement = connection.createStatement(); // 关闭与 mysql语句进行交互的对象 statement.close(); // 关闭与 mysql语句进行交互的对象 connection.close(); }
其實Class.forName(“com.mysql.jdbc.Driver”)在底層已經自動載入好了Driver實例
所以Driver driver = (Driver) aClass.newInstance();這句話可以省略
##這種方式也是開發中使用最多的一種方式
public void connection04() throws ClassNotFoundException, SQLException { // 使用反射动态加载mysql驱动件程序 Class<?> aClass = Class.forName("com.mysql.jdbc.Driver"); String user = "root"; String password = "123456"; String url = "jdbc:mysql://localhost:3306/test"; // 得到mysql的连接 Connection connection = DriverManager.getConnection(url, user, password); // 得到可以与mysql语句进行交互的对象 Statement statement = connection.createStatement(); // 关闭与 mysql语句进行交互的对象 statement.close(); // 关闭与 mysql语句进行交互的对象 connection.close(); }
從jdk1.5以後使用了jdbc4,不再需要顯示調用class.forName()註冊驅動而是自動調用驅動jar包下META-INF\services\java.sql.Driver文本中的類別名稱去註冊
建議還是寫上CLass . forName(“com.mysql.jdbc.Driver”),更明確,相容性更好
推薦使用這種方式
src/com/mysql/mysql.properties設定檔內容如下url=jdbc:mysql://localhost:3306/test user=root password=123456
public void connection05() throws SQLException, ClassNotFoundException, IOException { // 使用Properties读取配置文件下的内容 Properties properties = new Properties(); properties.load(new FileInputStream("src/com/mysql/mysql.properties")); String url = properties.getProperty("url"); String user = properties.getProperty("user"); String password = properties.getProperty("password"); // 得到mysql的连接 Connection connection = DriverManager.getConnection(url, user, password); // 得到可以与mysql语句进行交互的对象 Statement statement = connection.createStatement(); // 关闭与 mysql语句进行交互的对象 statement.close(); // 关闭与 mysql语句进行交互的对象 connection.close(); }
以上是JDBC連接Mysql的方式有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!