首頁>Club>
資料庫連線和操作資料庫的物件,有必然聯絡嗎?這是否合乎邏輯?
9
回覆列表
  • 1 # 此生唯一

    資料庫作為一個提供了強大的關係型持久儲存和查詢的資料模型,通常操作資料庫需要使用專門的結構化語言(SQL)進行操作,而連線不同的資料庫(oracle,mysql,sqlserver等)所需要註冊的驅動都不同,導致其他語言連線資料庫存在困難!

    而JAVA中抽象了一組連線資料庫的介面和類,jdbc(JAVA database connectivity)專門為不同的資料庫提供統一的標準進行連線,可以說無論連線資料庫的框架怎麼封裝,底層都是使用的java jdbc!

    下面看下jdbc連線資料庫的步驟:

    ①,註冊驅動:不同的資料庫提供商會提供不同的驅動類進行註冊使用,通常使用JNDI反射的方式進行,eg: Class.forName("com.mysql.jdbc.Driver");

    ②,建立連線:包括資料庫連線地址,庫,使用者名稱和密碼用於連線資料庫服務並進行認證,eg:Connection connection = DriverManager.getConnection(x,x,x);

    ③,執行SQL:建立statement物件,獲取執行sql的例項,呼叫SQL的執行方法!eg:Statement s =connnection.createStatement();s.excuteQuery("select * fron t");

    ④,組裝結果:statement中執行方法會得到相應的返回值,使用resultSet進行接受後處理資料!eg:ResultSet r=s.excuteQuery();

    String name =r.getString("name");

    ⑤,關閉連線:至關重要的一步,因為像oracle就是根據連線時間進行收費的,如果一直開著連線,破產指日可待!connection.close();

    上面提到了,任何其他的JAVA框架(mybatis,hibenate,springTemplate等)基本都是封裝了原生的jdbc進行操作資料庫,所以免不了上訴幾個步驟!

    我們看到,對於資料庫驅動註冊,連線開啟和關閉這些與業務無關的東西其實並不是開發者關心的,所以進一步的封裝很有必要!

    spring是怎麼進行封裝的呢?

    1,封裝驅動註冊和連線:spring透過dbcp等資料來源實現包,只需要配置資料庫驅動資訊,連線資訊等就可以實現自動註冊和連線資料庫,並透過配置destroy-method =true就可以在自動關閉連線!

    2,提供jdbcTemplate更為豐富的API,實現更加簡便的開發流程,包括增刪改查,batch處理等!

    如下面程式碼所示:

    jdbcTemplate.queryForInt("select count(*) from test"); //2. 查詢一行資料並將該行資料轉換為Map返回 jdbcTemplate.queryForMap("select * from test where name="name5""); //3.查詢一行任何型別的資料,最後一個引數指定返回結果型別 jdbcTemplate.queryForObject("select count(*) from test", Integer.class); //4.查詢一批資料,預設將每行資料轉換為Map jdbcTemplate.queryForList("select

    可以說springTemplate的封裝十分輕量級,可以用於替代原生jdbc的開發,不過現在大多數企業都是用的mybatis,提供快取,動態SQL,方便的對映的ORM框架,是值得學習的資料庫操作框架,今天的分享就到這,更多的技術分享,敬請關注!!

  • 2 # Java非著名程式設計師

    Spring Boot可以大大簡化持久化任務,幾乎不需要寫SQL語句,在之前我們新建了一個

    Spring Boot應用程式,本章在原有的工程中與資料庫建立連線。

    Spring Boot有兩種方法與資料庫建立連線,一種是使用,另一種整合,下面分別為大家介紹一下如何整合和使用這兩種方式。

    1. 使用JdbcTemplate

    在resource資料夾下新增application.properties配置檔案並輸入資料庫引數,內容如下:

    新建Controller類測試資料庫連線,例項如下:

    執行App輸入地址輸出資料庫資料。

    2. 整合Mybatis

    新增mybatis依賴,在pom.xml檔案中增加如下:

    在resource資料夾下新增application.properties配置檔案並輸入資料庫引數,如下:

    依次新增mapper的介面類和xml檔案,類分別如下:

    AppMessageMapper.java

    AppMessageMapper.xml

    AppMessage.java

    AppMessageService.java

    APPMessageController.java

    問題描述?

    SpringBoot掃描包提示找不到mapper的問題,異常資訊:

    分析原因

    專案的Bean裝配預設規則是根據類所在的包位置從上往下掃描,“類”是指專案入口類。如果類所在的包為:,則只會掃描包及其所有子包,如果service或dao所在包不在及其子包下,則不會被掃描。

    解決方法

    方式一:使用註解,其中,為包路徑。

    方式二:將啟動類放在上一級包中,注意的是啟動類必須要保證在包的根目錄下。

  • 3 # 一席話君

    java操作關係型資料庫的底層都是JDBC

    下面看下jdbc連線資料庫的步驟:

    ①,註冊驅動

    ②,建立連線

    ④,組裝結果

    ⑤,關閉連線

    任何其他的JAVA框架(mybatis,hibenate,springTemplate等)基本都是封裝了原生的jdbc進行操作資料庫,所以免不了上訴幾個步驟

    只看到一位仁兄答對!@哎喲JAVA不錯

    本人專注大資料,資料採集,資料處理,資料治理,希望大家多多交流學習!

  • 中秋節和大豐收的關聯?
  • 排超聯賽新賽制有什麼變化?你預測進入四強的球隊是哪幾家?