首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Java 控制台交互實現數據庫增刪改查完整示例

     編輯:Java 綜合教學

Java 控制台交互實現數據庫增刪改查完整示例

本示例演示通過控制台輸入輸出,完成考生信息的數據庫插入與查詢操作,涵蓋 JDBC 工具類封裝、實體類、DAO 模式、屬性配置等基礎架構,適合初學者理解 Java 數據庫編程全流程。

數據庫表結構

exam_student 表結構

表 exam_student 包含字段:flow_id(PK)、type、id_card、exam_card、student_name、location、grade。

示例數據

項目結構

包結構
  • examStudent:實體類、DAO、測試入口
  • properties:JDBC 配置文件
  • tools:JDBC/SQL 通用工具類

核心代碼實現

1. 實體類 ExamStudent

package examStudent;
public class ExamStudent {
    private int flowId, type, idCard, examCard, grade;
    private String studentName, location;
    // getter/setter 省略
}

2. 配置文件


jdbcName=mySql


driver=com.mysql.jdbc.Driver
jdbcUrl=jdbc:mysql://localhost:3306/dic
user=root
password=123456

3. JDBC 工具類 JDBCTools

  • 讀取屬性文件獲取連接參數
  • 註冊驅動、獲取 Connection
  • 提供釋放資源重載方法(ResultSet/Statement/Connection)

4. SQL 通用工具類 SqlTools

  • update(sql):執行 INSERT/UPDATE/DELETE
  • findOne(sql):執行 SELECT,使用 ResultSetMetaData 將結果映射為 List<Map>

5. DAO 層 ExamStudentDao

  • update():Scanner 讀取控制台輸入 → 構建實體 → 拼接 SQL 插入
  • findByIdCard(idCard) / findByExamCard(examCard):參數化查詢(示例為字符串拼接,生產應用 PreparedStatement)

6. 測試入口 TestExamStudent

public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.println("輸入1插入,輸入2查詢");
    int temp = sc.nextInt();
    if (temp == 1) esd.update();
    else if (temp == 2) { /* 查詢邏輯 */ }
}

運行效果

控制台交互式輸入考生信息,插入成功提示;查詢時按身份證/准考證號碼檢索,輸出結果或"查無此人"。

代碼不足與改進方向

  • SQL 拼接存在注入風險 → 改用 PreparedStatement
  • 資源管理可引入連接池(Druid/HikariCP)
  • 異常處理過於簡單 → 統一異常體系
  • DAO 返回 List<Map> 非強類型 → 改用 ORM 或 RowMapper

注意:需將 MySQL 驅動包放入 lib 目錄並加入構建路徑。入口為 TestExamStudent.main()。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved