摘要:常用的方法創建向數據庫發送的對象。創建執行存儲過程的對象設置事務自動提交提交事務回滾事務對象對象用于向數據庫發送語句,對數據庫的增刪改查都可以通過此對象發送語句完成。
1.什么是JDBC
JDBC全稱為:Java Data Base Connectivity,它是可以執行SQL語句的Java API
2.為什么我們要用JDBC市面上有非常多的數據庫,本來我們是需要根據不同的數據庫學習不同的API,sun公司為了簡化這個操作,定義了JDBC API【接口】
sun公司只是提供了JDBC API【接口】,數據庫廠商負責實現。
對于我們來說,操作數據庫都是在JDBC API【接口】上,使用不同的數據庫,只要用數據庫廠商提供的數據庫驅動程序即可
這大大簡化了我們的學習成本
3.簡單操作JDBC步驟:
導入MySQL或者Oracle驅動包
裝載數據庫驅動程序
獲取到與數據庫連接
獲取可以執行SQL語句的對象
執行SQL語句
關閉連接
Connection connection = null; Statement statement = null; ResultSet resultSet = null; try { /* * 加載驅動有兩種方式 * * 1:會導致驅動會注冊兩次,過度依賴于mysql的api,脫離的mysql的開發包,程序則無法編譯 * 2:驅動只會加載一次,不需要依賴具體的驅動,靈活性高 * * 我們一般都是使用第二種方式 * */ //1. //DriverManager.registerDriver(new com.mysql.jdbc.Driver()); //2. Class.forName("com.mysql.jdbc.Driver"); //獲取與數據庫連接的對象-Connetcion connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/zhongfucheng", "root", "root"); //獲取執行sql語句的statement對象 statement = connection.createStatement(); //執行sql語句,拿到結果集 resultSet = statement.executeQuery("SELECT * FROM users"); //遍歷結果集,得到數據 while (resultSet.next()) { System.out.println(resultSet.getString(1)); System.out.println(resultSet.getString(2)); } } catch (SQLException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } finally { /* * 關閉資源,后調用的先關閉 * * 關閉之前,要判斷對象是否存在 * */ if (resultSet != null) { try { resultSet.close(); } catch (SQLException e) { e.printStackTrace(); } } if (statement != null) { try { statement.close(); } catch (SQLException e) { e.printStackTrace(); } } if (connection != null) { try { connection.close(); } catch (SQLException e) { e.printStackTrace(); } } }
上面我們已經簡單使用JDBC去查詢數據庫的數據了,接下來我們去了解一下上面代碼用到的對象
4.Connection對象客戶端與數據庫所有的交互都是通過Connection來完成的。
常用的方法:
//創建向數據庫發送sql的statement對象。 createcreateStatement() //創建向數據庫發送預編譯sql的PrepareSatement對象。 prepareStatement(sql) //創建執行存儲過程的callableStatement對象 prepareCall(sql) //設置事務自動提交 setAutoCommit(boolean autoCommit) //提交事務 commit() //回滾事務 rollback()5.Statement對象
Statement對象用于向數據庫發送Sql語句,對數據庫的增刪改查都可以通過此對象發送sql語句完成。
Statement對象的常用方法:
//查詢 executeQuery(String sql) //增刪改 executeUpdate(String sql) //任意sql語句都可以,但是目標不明確,很少用 execute(String sql) //把多條的sql語句放進同一個批處理中 addBatch(String sql) //向數據庫發送一批sql語句執行 executeBatch()6.ResultSet對象
ResultSet對象代表Sql語句的執行結果,當Statement對象執行executeQuery()時,會返回一個ResultSet對象
ResultSet對象維護了一個數據行的游標【簡單理解成指針】,調用ResultSet.next()方法,可以讓游標指向具體的數據行,進行獲取該行的數據
常用方法:
//獲取任意類型的數據 getObject(String columnName) //獲取指定類型的數據【各種類型,查看API】 getString(String columnName) //對結果集進行滾動查看的方法 next() Previous() absolute(int row) beforeFirst() afterLast()7.寫一個簡單工具類
通過上面的理解,我們已經能夠使用JDBC對數據庫的數據進行增刪改查了,我們發現,無論增刪改查都需要連接數據庫,關閉資源,所以我們把連接數據庫,釋放資源的操作抽取到一個工具類
/* * 連接數據庫的driver,url,username,password通過配置文件來配置,可以增加靈活性 * 當我們需要切換數據庫的時候,只需要在配置文件中改以上的信息即可 * * */ private static String driver = null; private static String url = null; private static String username = null; private static String password = null; static { try { //獲取配置文件的讀入流 InputStream inputStream = UtilsDemo.class.getClassLoader().getResourceAsStream("db.properties"); Properties properties = new Properties(); properties.load(inputStream); //獲取配置文件的信息 driver = properties.getProperty("driver"); url = properties.getProperty("url"); username = properties.getProperty("username"); password = properties.getProperty("password"); //加載驅動類 Class.forName(driver); } catch (IOException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } } public static Connection getConnection() throws SQLException { return DriverManager.getConnection(url,username,password); } public static void release(Connection connection, Statement statement, ResultSet resultSet) { if (resultSet != null) { try { resultSet.close(); } catch (SQLException e) { e.printStackTrace(); } } if (statement != null) { try { statement.close(); } catch (SQLException e) { e.printStackTrace(); } } if (connection != null) { try { connection.close(); } catch (SQLException e) { e.printStackTrace(); } } }
-
如果文章有錯的地方歡迎指正,大家互相交流。習慣在微信看技術文章的同學,可以關注微信公眾號:Java3y
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/76310.html
摘要:是訪問數據庫的標準規范提供了一種基準據此可以構建更高級的工具和接口,使數據庫開發人員能夠編寫數據庫應用程序。在將此值發送到數據庫時,驅動程序將它轉換成一個類型值。例如值不支持中文,如果需要使用非英文字符,將進行轉換。 01JDBC概念和數據庫驅動程序 * A: JDBC概念和數據庫驅動程序 * a: JDBC概述 * JDBC(Java Data...
摘要:是訪問數據庫的標準規范。提供了一種基準據此可以構建更高級的工具和接口,使數據庫開發人員能夠編寫數據庫應用程序。代碼如下工具類數據庫驅動注冊失敗提供獲取連接的方法獲得連接返回連接 本文為大家介紹 Java 如何使用JDBC 連接 MySQL 數據庫。 JDBC概述 JDBC(Java Data Base Connectivity,java數據庫連接)是一種用于執行SQL語句的Java A...
摘要:是訪問數據庫的標準規范。提供了一種基準據此可以構建更高級的工具和接口,使數據庫開發人員能夠編寫數據庫應用程序。代碼如下工具類數據庫驅動注冊失敗提供獲取連接的方法獲得連接返回連接 本文為大家介紹 Java 如何使用JDBC 連接 MySQL 數據庫。 JDBC概述 JDBC(Java Data Base Connectivity,java數據庫連接)是一種用于執行SQL語句的Java A...
閱讀 1985·2021-11-22 14:45
閱讀 2593·2021-10-12 10:11
閱讀 768·2021-09-22 10:02
閱讀 1198·2019-08-30 15:55
閱讀 1142·2019-08-30 15:54
閱讀 3247·2019-08-30 15:54
閱讀 1181·2019-08-29 17:16
閱讀 3080·2019-08-28 17:55