能夠說,一個框架是一個可複用的設計構件,它規定了應用的體系結構,闡明瞭整個設計、協做構件之間的依賴關係、責任分配和控制流程,表現爲一組抽象類以及其實例之間協做的方法,它爲構件複用提供了上下文(Context)關係。所以構件庫的大規模重用也須要框架。html
由於軟件系統發展到今天已經很複雜了,特別是服務器端軟件,涉及到的知識,內容,問題太多。java
在某些方面使用別人成熟的框架,就至關於讓別人幫你完成一些基礎工做,你只須要集中精力完成系統的業務邏輯設計。mysql
並且框架通常是成熟,穩健的,它能夠處理系統不少細節問題,好比,事務處理,安全性,數據流控制等問題。git
還有框架通常都通過不少人使用,因此結構很好,因此擴展性也很好,並且它是不斷升級的,你能夠直接享受別人升級代碼帶來的好處。程序員
咱們用三層結構主要是使項目結構更清楚,分工更明確,有利於後期的維護和升級.github
三層架構包含:表現層、業務層、持久化層sql
MyBatis參考網址:http://www.mybatis.org/mybatis-3/zh/index.html數據庫
MyBatis什麼?apache
MyBatis是一個優秀的持久層框架,它是一個半自動化的ORM框架編程
它對使用JDBC操做數據庫的過程進行封裝,使開發者只須要關注 SQL 自己,而不須要花費精力去處理例如註冊驅動、建立connection、建立statement、手動設置參數、結果集檢索等jdbc繁雜的過程代碼。
MyBatis由來?
MyBatis 本是apache的一個開源項目iBatis
2010年這個項目由apache software foundation 遷移到了google code,而且更名爲MyBatis 。
2013年11月遷移到Github。
Mybatis在哪寫SQL語句?如何設置SQL參數和封裝查詢結果?
Mybatis經過XML或註解的方式,將要執行的各類statement(statement、preparedStatemnt、CallableStatement)配置起來。
並經過java對象和statement中的sql進行映射生成最終執行的sql語句,最後由mybatis框架執行sql並將結果映射成java對象並返回。
public class JDBCTest {
public static void main(String[] args) {
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
// 加載數據庫驅動
Class.forName("com.mysql.jdbc.Driver");
// 經過驅動管理類獲取數據庫連接connection = DriverManager
connection = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8",
"root",
"root"
);
// 定義sql語句 ?表示佔位符
String sql = "select * from user where username = ?";
// 獲取預處理 statement
preparedStatement = connection.prepareStatement(sql);
// 設置參數,第一個參數爲 sql 語句中參數的序號(從 1 開始),第二個參數爲設置的
preparedStatement.setString(1, "王五");
// 向數據庫發出 sql 執行查詢,查詢出結果集
resultSet = preparedStatement.executeQuery();
// 遍歷查詢結果集
while (resultSet.next()) {
System.out.println(
resultSet.getString("id")
+ " " +
resultSet.getString("username")
);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
// 釋放資源
if (resultSet != null) {
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (preparedStatement != null) {