insertrecordstodb.java#1.1.1.1
来自「数据库远程同步软件NetBeans项目源文件 项目采用Jdesktop集成组件」· 1 代码 · 共 130 行
1
130 行
package com.qixuan.jdbc.util;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.List;
import com.qixuan.jdbc.common.TargetDataBase;
public class InsertRecordsToDb {
private Connection conn;
private String TabName = "";//表名
private List<ColumnData> columns;//字段
private int count;
public String getTabName() {
return TabName;
}
public void setTabName(String tabName) {
TabName = tabName;
}
public List<ColumnData> getColumns() {
return columns;
}
public void setColumns(List<ColumnData> columns) {
this.columns = columns;
}
public void ExecuteInsertSql(){
PreparedStatement pstmt = null;
if(conn==null){
conn = TargetDataBase.getConnection();
}
DatabaseMetaDataUtil dbmu = new DatabaseMetaDataUtil(conn);
ResultSetMetaDataUtil rmdu = new ResultSetMetaDataUtil(conn);
List<String> tableNames = dbmu.getTableNames();
boolean exist=Boolean.FALSE;
for(String tableName:tableNames){
if(TabName.equals(tableName)){
exist=Boolean.TRUE;
}
}
if(!exist){
//System.out.println(" Table '"+TabName+"' doesn't exist");
throw new RuntimeException(" Table '"+TabName+"' doesn't exist");
}
int rs=0;
StringBuffer sqlsb=new StringBuffer();
String sql="insert into ";
String[] str = new String[count];
StringBuffer strNum = new StringBuffer();
for (int i = 0; i <count; i++) {
if(i!=0){
str[i] = ",?";
}else{
str[i] = "?";
}
strNum.append(str[i]);
}
sqlsb.append(sql).append(TabName).append(" values(").append(strNum ).append(") ");
System.out.println(sqlsb+";columns.size()="+columns.size());
try {
pstmt = conn.prepareStatement(sqlsb.toString());//建立预编译的对象
// int i=1;
int i=0;
for(ColumnData column:columns){
i++;
pstmt.setObject(column.getIndex(),column.getColumnValue(), column.getColumnTypeValue());
if(i % count == 0) {
pstmt.addBatch();
}
}
System.out.println(i);
int[] rss = pstmt.executeBatch(); //进行预编译 将一组记录一组记录存入数据库中
pstmt.clearParameters();
for(int n=0;n<rss.length;n++){
rs+=rss[n];
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}//连接目标端数据库
System.out.println("表"+TabName+"已插入"+rs+"条数据");
}
/* public void setPsmt(PreparedStatement pstmt,ColumnData column){
int type = column.getColumnTypeValue();
pstmt.setObject(parameterIndex, x, targetSqlType);
switch (type) {
case (1):
pstmt.setObject(parameterIndex, x, targetSqlType);
break;
case (4):
ret = String.valueOf(rst.getInt(colNum));
break;
case (5):
ret = String.valueOf(rst.getInt(colNum));
break;
case (6):
ret = String.valueOf(rst.getFloat(colNum));
break;
case (8):
ret = String.valueOf(rst.getDouble(colNum));
break;
case (12):
ret = rst.getString(colNum);
break;
default:
ret = "not know";
}
}*/
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public Connection getConn() {
return conn;
}
public void setConn(Connection conn) {
this.conn = conn;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?