没有合适的资源?快使用搜索试试~ 我知道了~
首页java使用JDBC动态创建数据表及SQL预处理的方法
资源详情
资源评论
资源推荐

java使用使用JDBC动态创建数据表及动态创建数据表及SQL预处理的方法预处理的方法
主要介绍了java使用JDBC动态创建数据表及SQL预处理的方法,涉及JDBC操作数据库的连接、创建表、添加数
据、查询等相关实现技巧,需要的朋友可以参考下
本文实例讲述了java使用JDBC动态创建数据表及SQL预处理的方法。分享给大家供大家参考,具体如下:
这两天由于公司的需求,客户需要自定义数据表的字段,导致每张表的字段都不是固定的而且很难有一个通用的模板去维护,
所以就使用JDBC动态去创建数据表,然后通过表的字段动态添加数据,数据的来源主要是用户提供的Excel直接导入到数据
库中。
如果考虑到字段的类型,可以通过反射的机制去获取,现在主要用户需求就是将数据导入到数据库提供查询功能,不能修改,
所以就直接都使用String类型来处理数据更加便捷。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import java.util.PropertyResourceBundle;
import java.util.ResourceBundle;
public class DataBaseSql {
//配置文件 读取jdbc的配置文件
private static ResourceBundle bundle = PropertyResourceBundle.getBundle("db");
private static Connection conn;
private static PreparedStatement ps;
/**
* 创建表
* @param tabName 表名称
* @param tab_fields 表字段
*/
public static void createTable(String tabName,String[] tab_fields) {
conn = getConnection(); // 首先要获取连接,即连接到数据库
try {
String sql = "create table "+tabName+"(id int auto_increment primary key not null";
if(tab_fields!=null&&tab_fields.length>0){
sql+=",";
int length = tab_fields.length;
for(int i =0 ;i<length;i++){
//添加字段
sql+=tab_fields[i].trim()+" varchar(50)";
//防止最后一个,
if(i<length-1){
sql+=",";
}
}
}
//拼凑完 建表语句 设置默认字符集
sql+=")DEFAULT CHARSET=utf8;";
System.out.println("建表语句是:"+sql);
ps = conn.prepareStatement(sql);
ps.executeUpdate(sql);
ps.close();
conn.close(); //关闭数据库连接
} catch (SQLException e) {
System.out.println("建表失败" + e.getMessage());
}
}
/**
* 添加数据
* @param tabName 表名
* @param fields 参数字段
* @param data 参数字段数据
*/
public static void insert(String tabName,String[] fields,String[] data) {
conn = getConnection(); // 首先要获取连接,即连接到数据库
try {
String sql = "insert into "+tabName+"(";
int length = fields.length;
for(int i=0;i<length;i++){
sql+=fields[i];
//防止最后一个,
if(i<length-1){
sql+=",";
}
}
















安全验证
文档复制为VIP权益,开通VIP直接复制

评论0