文章目錄
- 三層架構和SSM架構的對應關系
- 一、什麼是架構?
- 二、三層架構
- 三、持久層技術解決方案
- 四、Jdbc程式設計的分析
- 主要回顧
三層架構和SSM架構的對應關系
一、什麼是架構?
架構( Framework)是整個或部分系統的可重用設計,表現為一組抽象構件及構件執行個體間互動的方法;另一種定義認為,架構是可被應用開發者定制的應用骨架。前者是從應用方面而後者是從目的方面給出的定義。簡而言之,架構其實就是某種應用的半成品,就是一組元件,供你選用完成你自己的系統。簡單說就是使用别人搭好的舞台,你來做表演。而且,架構一般是成熟的,不斷更新的軟體。
通俗的講,它是軟體開發中的一套解決方案,不同的架構解決的是不同的問題。
* 使用架構的好處:
封裝了很多的細節,使開發者可以使用極簡的方式實作功能,大大提高開發效率~
傳回頂部
二、三層架構
- 表現層:展示資料
- 業務層:處理業務需求
- 持久層:與資料庫互動
三層架構分為:表現層(UI)(web層)、業務邏輯層(BLL)(service層)、資料通路層(DAL)(dao層) ,再加上實體類庫(Model)
1.實體類庫(Model),在Java中,往往将其稱為Entity實體類。資料庫中用于存放資料,而我們通常選擇會用一個專門的類來抽象出資料表的結構,類的屬性就一對一的對應這表的屬性。
·一般來說,Model實體類庫層需要被DAL層,BIL層和UI層引用。
2.資料通路層(DAL — dao層 ),主要是存放對資料類的通路,即對資料庫的添加、删除、修改、更新等基本操作
·DAL就是根據業務需求,構造SQL語句,構造參數,調用幫助類,擷取結果,DAL層被BIL層調用
3.業務邏輯層(BLL — service層)
·BLL層好比是橋梁,将UI表示層與DAL資料通路層之間聯系起來。所要負責的,就是處理涉及業務邏輯相關的問題,比如在調用通路資料庫之前,先處理資料、判斷資料。
傳回頂部
三、持久層技術解決方案
- JDBC技術
- Connection
- PreparedStatement
- ResultSet
- Spring的JdbcTemplate
- Spring中對jdbc的簡單封裝
- Apache的DBUtils
- 它和SpringJdbcTemplate很像,也是對jdbc的簡單封裝
以上這些都不是架構,JDBC是規範,Spring的JdbcTemplate和Apache的DBUtils都隻是工具類
四、Jdbc程式設計的分析
主要回顧
public class dbHelper {
// 添加資料庫配置資訊
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DATABASE_URL ="jdbc:mysql://localhost:3306/jdbc";
static String username="root";
static String password="123456";
// 常用對象
static Connection conn = null;
static PreparedStatement preparedStatement = null;
static Statement statement = null;
static ResultSet resultSet = null;
/**
* 連接配接資料庫
*/
public static Connection getConn(){
try {
// 1.加載驅動
Class.forName(JDBC_DRIVER);
// 2.使用DriverManager建立連接配接
conn = DriverManager.getConnection(DATABASE_URL,username,password);
} catch (Exception e){
e.printStackTrace();
}
return conn;
}
/**
* 進行查詢
*/
public static void select(String sql){
try {
getConn();
// 通過conn建立statement,幫助執行sql語句
statement = conn.createStatement();
// 執行sql語句存入結果集
resultSet = statement.executeQuery(sql);
System.out.println(resultSet);
// 輸出查詢結果
System.out.println("id\t|name\t|sex\t|email\t\t\t|birthday");
// 周遊結果集擷取表記錄
while (resultSet.next()){
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
String sex = resultSet.getString("sex");
String email = resultSet.getString("email");
Date birthday = resultSet.getDate("birthday");
// 輸出結果
System.out.println(id+"\t|"+name+"\t|"+sex+"\t\t|"+email+"\t|"+birthday);
}
} catch (Exception e){
e.printStackTrace();
}
}
/**
* 關閉資源
*/
public static void close(){
if (conn!=null){
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (preparedStatement!=null){
try {
preparedStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (statement!=null){
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (resultSet!=null){
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}