Mybatis第一天(含JDBC)

(文章內(nèi)容僅是對自己學(xué)習(xí)內(nèi)容的大致總結(jié),并沒有細(xì)致講解)

1 JDBC復(fù)習(xí)

1.1 JDBC

? ? ? JDBC(Java DataBase Connectivity,java數(shù)據(jù)庫連接)是一種用于執(zhí)行SQL語句的Java API,可以為多種關(guān)系數(shù)據(jù)庫提供統(tǒng)一訪問,它由一組用Java語言編寫的類和接口組成。JDBC提供了一種基準(zhǔn),據(jù)此可以構(gòu)建更高級的工具和接口,使數(shù)據(jù)庫開發(fā)人員能夠編寫數(shù)據(jù)庫應(yīng)用程序,同時,JDBC也是個商標(biāo)名。

1.2 JDBC四部曲

//1、加載數(shù)據(jù)庫驅(qū)動

Class.forName("com.mysql.jdbc.Driver");

//2、獲取數(shù)據(jù)庫連接對象,需要數(shù)據(jù)庫地址、數(shù)據(jù)庫用戶名、密碼三個參數(shù)

Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8","root","terry");

//3、預(yù)編譯

String sql = "SELECT * FROM user WHERE username = ?";

PreparedStatement preparedStatement = connection.prepareStatement(sql);

preparedStatement.setString(1, "張三");

//4、獲取結(jié)果集

ResultSet resultSet = preparedStatement.executeQuery();

//輸出結(jié)果集,獲取表內(nèi)容

while(resultSet.next()){

System.out.println(resultSet.getString("id")+""+resultSet.getString("username"));

}?

//關(guān)閉順序于創(chuàng)建順序相反

resultSet.close();

preparedStatement.close();

connection.close();

(上述例子只是核心的一部分,并不完整)


2 初涉XML

? ? ? ? XML是擴(kuò)展標(biāo)記語言(Extensible Markup Language),被設(shè)計(jì)用來傳輸和存儲數(shù)據(jù),焦點(diǎn)在于數(shù)據(jù)的內(nèi)容,而HTML被設(shè)計(jì)用來顯示數(shù)據(jù),關(guān)注數(shù)據(jù)的外觀顯示。

<?xml version="1.0" encoding="UTF-8"?>

<note>

? ? ? ? <to>Tom</to>

? ? ? ? <from>Terry</from>

? ? ? ? <heading>Reminder</heading>

? ? ? ? <body>Don't forget me this weekend!</body>

</note>

XML樹結(jié)構(gòu)


詳見XML教程

3 Mybatis入門

3.1 mybatis用于解決原生態(tài)JDBC中存在的問題:

(1)數(shù)據(jù)庫連接:使用時創(chuàng)建,使用完立即釋放,對數(shù)據(jù)庫進(jìn)行頻繁連接和關(guān)閉,造成數(shù)據(jù)庫資源浪費(fèi),影響數(shù)據(jù)庫性能。

(2)將sql語句硬編碼到j(luò)ava代碼中,如sql語句修改,需重新編譯java代碼,不利于系統(tǒng)維護(hù)。

(3)向preparedStatement中設(shè)置參數(shù):占位符位置和設(shè)置參數(shù)值是硬編碼,不利于系統(tǒng)維護(hù)。

(4)從resultSet中遍歷時存在硬編碼,并將獲取表的字段進(jìn)行硬編碼,不利于系統(tǒng)維護(hù)。

3.2 Mybatis是什么?

(1) mybatis是一個持久層的框架,是apache下的一個頂級項(xiàng)目。

---mybatis讓程序?qū)⒅饕Ψ旁趕ql上,通過mybatis提供的映射方式,自由靈活地生成(半自動)滿足程序需求的sql。

---mybatis可以將preparedStatement中的輸入?yún)?shù)進(jìn)行輸入映射,將結(jié)果集靈活映射成java對象(輸出映射)。

---托管在guthub

https://github.com/mybatis/mybatis-3/releases

(2)Mybatis框架

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. 簡介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存儲過程以及高級映射的優(yōu)秀的...
    笨鳥慢飛閱讀 6,219評論 0 4
  • 1 引言# 本文主要講解JDBC怎么演變到Mybatis的漸變過程,重點(diǎn)講解了為什么要將JDBC封裝成Mybait...
    七寸知架構(gòu)閱讀 77,473評論 36 979
  • Java數(shù)據(jù)持久化之mybatis 一. mybatis簡介 1.1 原始的JDBC操作: Java 通過 Jav...
    小Q逛逛閱讀 5,389評論 0 16
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,625評論 18 399
  • 因不甘于平凡的生活,不希望父母過的如此辛苦!決定以后不會重蹈父母的路,加上父母的鼓勵,決心一定要出人頭地,但是夢想...
    FAB優(yōu)優(yōu)閱讀 216評論 0 0

友情鏈接更多精彩內(nèi)容