JAVA SE使用DBUtils新增資料

DBUtils新增資料範例

前言

JAVA中處理JDBC的方案不少,其中一個就是DBUtils,DBUtils對JDBC進行了簡單的封裝,使用起來十分簡單。楊藝一般處理資料庫操作會以PreparedStatement將語法撰寫好,再一一傳入參數再執行,而使用DBUtils可將各參數轉換成一個陣列後,再一次傳入即可。

實作

以下進行簡單的示範。

資料表

blog

1
2
3
4
5
6
7
8
9
CREATE TABLE `blog` (
  `blogSeqNo` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '部落格流水號',
  `blogName` varchar(100) NOT NULL COMMENT '部落格名稱',
  `author` varchar(100) NOT NULL COMMENT '作者',
  `remark` varchar(255) DEFAULT NULL COMMENT '備註',
  `createdTime` datetime NOT NULL COMMENT '建立時間',
  `updatedTime` datetime DEFAULT NULL COMMENT '更新時間',
  PRIMARY KEY (`blogSeqNo`)
) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

Java程式碼

DBUtilsInsertDataDemo.java

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package cc.artyang;

import java.sql.SQLException;
import org.apache.commons.dbutils.QueryRunner;
import cc.artyang.conf.DataSourceConf;

/**
 * DBUtils 新增資料範例
 *
 * @author Art Yang
 */
public class DBUtilsInsertDataDemo {

    /**
     * 主程式方法
     *
     * @param args 外部參數
     * @throws ClassNotFoundException
     * @throws SQLException
     */
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        String sqlStmt =  "insert into blog(blogName, author, remark, createdTime) values( ?, ?, ?, now(), now())" ;
        Object[] data = new Object[] {  "楊藝的洋溢生活" ,  "Art Yang" ,  "生活記事、系統管理、程式設計、資料庫"  };

        QueryRunner queryRunner = new QueryRunner(DataSourceConf.getDataSource());
        int insertResult = queryRunner.update(sqlStmt, data);

        System.out.println(insertResult > 0 ?  "資料新增成功!"  :  "資料新增失敗!");
    }
}

執行結果

1
資料新增成功!