(文章內(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框架
