JDBC【介绍JDBC、使用JDBC连接数据库、简单的工具类】
生活随笔
收集整理的這篇文章主要介紹了
JDBC【介绍JDBC、使用JDBC连接数据库、简单的工具类】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
什么是JDBC
JDBC全稱為:Java Data Base Connectivity,它是可以執(zhí)行SQL語句的Java API
為什么我們要用JDBC
- 市面上有非常多的數據庫,本來我們是需要根據不同的數據庫學習不同的API,sun公司為了簡化這個操作,定義了JDBC API【接口】
- sun公司只是提供了JDBC API【接口】,數據庫廠商負責實現。
- 對于我們來說,操作數據庫都是在JDBC API【接口】上,使用不同的數據庫,只要用數據庫廠商提供的數據庫驅動程序即可
- 這大大簡化了我們的學習成本
簡單操作JDBC
步驟:
上面我們已經簡單使用JDBC去查詢數據庫的數據了,接下來我們去了解一下上面代碼用到的對象
Connection對象
客戶端與數據庫所有的交互都是通過Connection來完成的。
常用的方法:
//創(chuàng)建向數據庫發(fā)送sql的statement對象。createcreateStatement()//創(chuàng)建向數據庫發(fā)送預編譯sql的PrepareSatement對象。prepareStatement(sql) //創(chuàng)建執(zhí)行存儲過程的callableStatement對象prepareCall(sql)//設置事務自動提交setAutoCommit(boolean autoCommit)//提交事務commit()//回滾事務rollback()Statement對象
Statement對象用于向數據庫發(fā)送Sql語句,對數據庫的增刪改查都可以通過此對象發(fā)送sql語句完成。
Statement對象的常用方法:
//查詢executeQuery(String sql)//增刪改executeUpdate(String sql)//任意sql語句都可以,但是目標不明確,很少用execute(String sql)//把多條的sql語句放進同一個批處理中addBatch(String sql)//向數據庫發(fā)送一批sql語句執(zhí)行executeBatch()ResultSet對象
ResultSet對象代表Sql語句的執(zhí)行結果,當Statement對象執(zhí)行executeQuery()時,會返回一個ResultSet對象
ResultSet對象維護了一個數據行的游標【簡單理解成指針】,調用ResultSet.next()方法,可以讓游標指向具體的數據行,進行獲取該行的數據
常用方法:
//獲取任意類型的數據getObject(String columnName)//獲取指定類型的數據【各種類型,查看API】getString(String columnName)//對結果集進行滾動查看的方法next()Previous()absolute(int row)beforeFirst()afterLast()寫一個簡單工具類
通過上面的理解,我們已經能夠使用JDBC對數據庫的數據進行增刪改查了,我們發(fā)現,無論增刪改查都需要連接數據庫,關閉資源,所以我們把連接數據庫,釋放資源的操作抽取到一個工具類
/** 連接數據庫的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
更多專業(yè)前端知識,請上 【猿2048】www.mk2048.com
總結
以上是生活随笔為你收集整理的JDBC【介绍JDBC、使用JDBC连接数据库、简单的工具类】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 判断js中数据类型 的最短代码
- 下一篇: node.js 搭建http调取 mys