jdbc 生成建表语句_java使用JDBC动态创建数据表及SQL预处理的方法

本文实例讲述了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

//添加字段

sql+=tab_fields[i].trim()+" varchar(50)";

//防止最后一个,

if(i

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 = "

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值