1. 程式人生 > 資訊 >谷歌推 AAB 安裝包是為了背刺華為鴻蒙OS?真相在這裡

谷歌推 AAB 安裝包是為了背刺華為鴻蒙OS?真相在這裡

分層設計原理

  1. dao(主要進行持久化操作(對於資料庫的操作都是持久化操作;jdbc;dbutils;mybatis;hibernate;springjpa;springjdbctemoplete等等))資料訪問層(一般是介面跟實現)
  2. service(主要進行業務層的操作,主要是承上啟下;向下呼叫dao;向上返回資料給控制層controller(servlet)業務層(也是介面跟實現)
  3. controller(主要進行前端請求接收;根據請求進入不同的方法操作,向下呼叫service)控制層
  4. entity(pojo、domain:存放與資料庫表一一對應的javaBean)實體類
  5. 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;
 }