谷歌推 AAB 安裝包是為了背刺華為鴻蒙OS?真相在這裡
阿新 • • 發佈:2021-07-16
分層設計原理
- dao(主要進行持久化操作(對於資料庫的操作都是持久化操作;jdbc;dbutils;mybatis;hibernate;springjpa;springjdbctemoplete等等))資料訪問層(一般是介面跟實現)
- service(主要進行業務層的操作,主要是承上啟下;向下呼叫dao;向上返回資料給控制層controller(servlet)業務層(也是介面跟實現)
- controller(主要進行前端請求接收;根據請求進入不同的方法操作,向下呼叫service)控制層
- entity(pojo、domain:存放與資料庫表一一對應的javaBean)實體類
- tools(基本上的所有的工具類都放在裡面(資料庫連線,String轉換,日期轉換,數字轉換,json轉換,自己寫的工具))Hutool糊塗工具封裝了各種各樣的工具
PO,VO,BO,POJO的區別
PO:持久化物件,一個PO就是資料庫中的一條記錄
POJO:一個簡單普通的Java物件,不包含業務邏輯或持久邏輯,持久化後是PO,傳遞過程中是DTO,對應表示層是VO
BO:業務物件,一個物件的行為和動作
VO:Value Object值物件,體現在檢視的物件,在控制層與檢視層進行傳輸交換
DTO(TO):資料傳輸物件,經過處理後的PO
資料庫的連線
static String user = "賬號"; static String password = "密碼"; static String url = "jdbc:mysql://localhost:埠號/資料庫名?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=UTF-8"; static { try { Class.forName("com.mysql.cj.jdbc.Driver");//8.0的資料庫 } catch (ClassNotFoundException e) { e.printStackTrace(); } } //獲取連線 public static Connection getConnection() { Connection conn = null; try { conn = DriverManager.getConnection(url, user, password); } catch (SQLException e) { e.printStackTrace(); } return conn; } //關閉資源 public static void close(Connection connection, ResultSet rs, Statement ps) { if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (ps != null) { try { ps.close(); } catch (SQLException e) { e.printStackTrace(); } } if (connection != null) { try { connection.close(); } catch (SQLException e) { e.printStackTrace(); } } }
Connection:介面
Statement、PreparedStatement:介面
ResultSet:介面
介面:相當模板,所有的操作都寫在裡邊,dao中的介面跟boot中的介面不一樣
資料庫設定的型別為char或varchar,在java中都是設定成String
資料查詢
public static ResultSet getData(String sql,Object... datas) { try{ conn= DBUtils.getConnection(); ps = conn.prepareStatement(sql); if(datas!=null){ for(int i=0;i<datas.length;i++){ ps.setObject(i+1,datas[i]); } } rs = ps.executeQuery(); }catch(Exception e){ e.printStackTrace(); }finally { close(); } return rs; }
資料增加、刪除、修改
public static int DataOpera(String sql,Object... datas) {
int count=0;
try{
conn= DBUtils.getConnection();
ps = conn.prepareStatement(sql);
if(datas!=null){
for(int i=0;i<datas.length;i++){
ps.setObject(i+1,datas[i]);
}
}
count = ps.executeUpdate();
}catch(Exception e){
e.printStackTrace();
}finally {
close();
}
return count;
}