第一章 框架概述
1.1 軟體開發常用結構
三層架構包含的三層:
界面層(User Interface layer)、業務邏輯層(Business Logic Layer)、資料訪問層(Data access layer)
三層的職責
1、界面層(表示層,視圖層):主要功能是接受用戶的資料,顯示請求的處理結果,使用web頁面和用戶互動,手機app也是表示層,用戶在app中操作,業務邏輯在服務器端處理,
2、業務邏輯層:接受表示傳遞過來的資料,檢查資料,計算業務邏輯,呼叫資料訪問層獲取資料,
3、資料訪問層(也叫持久層):與資料打交道,主要實作對書籍的增、刪、改、查,將資料在資料庫中的資料提交給業務層,同時將業務層處理的資料保存到資料庫中,
三層對應的包:
? 界面層:controller包(servlet)
? 業務邏輯層:service包(xxxxservice類)
? 資料訪問層:dao包(xxxDao類)
三層對應的處理框架:
? 界面層:----servlet----->SpringMVC(框架)
? 業務邏輯層:service類---->spring(框架)
? 資料訪問層:---->dao類----->mybatis(框架)
三層的處理請求互動:
? 用戶---->界面層------->業務邏輯層—>資料訪問層------>DB資料庫
1.2 框架是什么
框架(Framework)是整個或部分系統的可重用設計,表現為一組抽象構件及構件實體間互動的方法;另一種定義認為,框架是可被應用開發者定制的應用骨架,前者是從應用方面而后者是從目的方面給出的定義,簡而言之,框架其實就是某種應用的半成品,就是一組組件,供你選用完成你自己的系統,
簡單說就是使用別人搭好的舞臺,你來做表演,別人也可以來使用,使用舞臺現有的道具(框架的功能)來達到不同的效果,舞臺是可以重復使用的,而且,框架一般是成熟的,不斷升級的軟體,
1.3 JDBC編程
1.3.1 JDBC程式的回顧
publicstaticvoidmain(String[] args) {
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try{
//加載資料庫驅動
Class.forName("com.mysql.jdbc.Driver");
//通過驅動管理類獲取資料庫鏈接
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);
preparedStatement.setString(1, "王五");
//向資料庫發出sql執行查詢,查詢出結果集
resultSet = preparedStatement.executeQuery();
//遍歷查詢結果集
while(resultSet.next()){
System.out.println(resultSet.getString("id")+"
"+resultSet.getString("username"));
}
}catch(Exception e){
e.printStackTrace();
}
//釋放資源 代碼省略
......
//上邊使用jdbc的原始方法(未經封裝)實作了查詢資料庫表記錄的操作,
}
1.3.2 JDBC的問題分析
1、資料庫鏈接創建、釋放頻繁造成系統資源浪費從而影響系統性能,
如果使用資料庫鏈接池可解決此問題,
2、Sql陳述句在代碼中硬編碼,造成代碼不易維護,
實際應用sql變化的可能較大,sql變動需要改變java代碼,
3、使用preparedStatement向占有位符號傳引數存在硬編碼,
因為sql陳述句的where條件不一定,可能多也可能少,修改sql還要修改代碼,系統不易維護,
4、對結果集決議存在硬編碼(查詢列名),
sql變化導致決議代碼變化,系統不易維護,如果能將資料庫記錄封裝成pojo物件決議比較方便,
1.4 MyBatis框架概述
? Mybatis本是apche的一個開源專案iBatis,2010年這個專案由apache software foundation 遷移到了goole code,并改名為Mybatis,2013年11月遷移到Github,
? iBATIS一詞源于“internet”和“abatis”的組合,是一個基于java的持久層框架,iBATIS提供的持久層框架包括SQL Maps和Data Access Objects(DAOs)
? 當前,最新版本是Mybatis3.5.1,其發布時間是2019年4月8日,
總結: mybatis是一個sql映射框架,提供資料庫的操作能力,增強的JDBC,使用Mybatis讓開發人員集中精神寫sql陳述句就行了,不必關心Connection、Statement、ResultSet的創建,銷毀,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/272863.html
標籤:其他
