一、插入資料
- 對于資料的增刪改查都有兩種可選的操作模式,一種是直接使用SQL陳述句進行增刪改查,另一種是通過可更新的結果集物件間接增刪改查,首先創建陳述句物件
Statement stmt = con.creatStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CUNCUR_UPDATABEL);
- 一下插入資料的兩種方式:
string sqlins = "INSERT INO students values(' " + name +" ','" +age + "','" + sex + "','" +wage + "','" +" ','" + addr + " ')";
- 第二種方式
rs.moveToInsertRow();
rs.updateString("name","LiMing");
rs.updateInt("age",40);
rs.updateString("sex","男");
rs.updateInt("wage",4500);
rs.updateString("addr","北京市");
rs.insetRow();
package com.bjpowernode.java_learning;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class D136_1_InsertSQL {
private static final String URL = "jdbc:Access:///e:xsgl.mdb";
static {
try {
Class.forName("com.hxtt,sql.access.AccessDriver");
}catch(ClassNotFoundException e) {
e.printStackTrace();//輸出捕獲到的例外資訊
}
}
public static void main(String[] args) {
try {
Connection conn = DriverManager.getConnection(URL);
Statement statement = conn.createStatement();
String sql = "insert into studentInfo(studentID,studentName) values (201701,'老陳')";
statement.executeUpdate(sql);
statement.close();
conn.close();
System.out.println("資料更新成功");
}catch(SQLException e) {
e.printStackTrace();
}
}
}
- 當需要批量添加資料的時候,我們通常使用PreparedStatement實體或者CallableStatement實體來完成,
package com.bjpowernode.java_learning;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class D136_2_PreparedStatementInsert {
private static final String URL = "jdbc:Access:///e:/xsgl.mdb";
static {
try {
Class.forName("com.hxtt,sql.access.AccessDriver");
}catch(ClassNotFoundException e) {
e.printStackTrace();//輸出捕獲到的例外資訊
}
}
public static void main(String[] args) {
try {
Connection conn = DriverManager.getConnection(URL);
String[][] records = {{"201702","老張"},{"201703","Tony"}};
String sql = "insert into studentInfo(studentID,studentName values(?,?)";//定義動態INSERT陳述句
PreparedStatement prpdStmt = conn.prepareStatement(sql);//預處理動態INSERT陳述句
for(int i=0;i<records.length;i++) {
prpdStmt.setInt(1, Integer.valueOf(records[i][0]).intValue()); //為引數賦值
prpdStmt.setString(2, records[i][1]); //為引數賦值
prpdStmt.addBatch(); //將INSERT陳述句添加到Batch中
}
prpdStmt.executeBatch(); //批量執行Batch中的Insert陳述句
prpdStmt.close();
conn.close();
}catch(SQLException e) {
e.printStackTrace();
}
}
}
- 要特別注意在為動態SQL陳述句中的引數賦值的時候,引數的索引值是從1開始的,而不是從0開始的,另外要為動態SQL陳述句中的每一個引數賦值,否則在提交將會拋出“錯誤的引數系結”例外,當通過PreparedStatement實體和CallableStatement實體添加單條記錄的時候,在設定完引數后,也需要呼叫executeUpdate()方法,這是才真正執行INSERT陳述句向資料庫中添加記錄,
二、原始碼:
-
D136_1_InsertSQL.java
-
D136_2_PreparedStatementInsert.java
-
https://github.com/ruigege66/Java/blob/master/D136_1_InsertSQL.java
-
https://github.com/ruigege66/Java/blob/master/D136_2_PreparedStatementInsert.java
-
CSDN:https://blog.csdn.net/weixin_44630050
-
博客園:https://www.cnblogs.com/ruigege0000/
-
歡迎關注微信公眾號:傅里葉變換,個人賬號,僅用于技術交流
-

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/45087.html
標籤:Java
