前言
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 ? "資料新增成功!" : "資料新增失敗!");
}
}
|
執行結果