栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java使用JDBC动态创建数据表及SQL预处理的方法

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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;
  
  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 queryForPage(String tabName,int pageNo,int pageSize ,String[] tab_fields){
    conn = getConnection();  // 首先要获取连接,即连接到数据库
    List list = new ArrayList();
    try {
      String sql = "select * from "+tabName+" LIMIT ?,? ; ";
System.out.println("查询sql:"+sql);
//预处理SQL 防止注入
ps = conn.prepareStatement(sql);
//注入参数
ps.setInt(1,pageNo);
ps.setInt(2,pageSize);
      //查询结果集
      ResultSet rs = ps.executeQuery();
      //存放结果集
      while(rs.next()){
  String[] result = new String[tab_fields.length];
   for (int i = 0; i < tab_fields.length; i++) {
     result[i] = rs.getString(tab_fields[i]);
   }
  list.add(result);
 }
      //关闭流
      rs.close();
      ps.close();
      conn.close();  //关闭数据库连接
    } catch (SQLException e) {
System.out.println("查询失败" + e.getMessage());
    }
    return list;
  }
  
  public static void delete(String tabName){
      conn = getConnection();  // 首先要获取连接,即连接到数据库
      try {
 String sql = "delete from "+tabName+";";
 System.out.println("删除数据的sql:"+sql);
 //预处理SQL 防止注入
 ps = conn.prepareStatement(sql);
 //执行
 ps.executeUpdate();
 //关闭流
 ps.close();
 conn.close();  //关闭数据库连接
      } catch (SQLException e) {
 System.out.println("删除数据失败" + e.getMessage());
      }
  }
  
   private static void excutePs(String sql,int length,String[] data) throws SQLException{
     //预处理SQL 防止注入
     ps = conn.prepareStatement(sql);
     //注入参数
     for(int i=0;i

数据库的配置文件 db.properties

db.username=root
db.password=root
db.classname=com.mysql.jdbc.Driver
db.url = jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull

更多关于java相关内容感兴趣的读者可查看本站专题:《Java+MySQL数据库程序设计总结》、《Java数据结构与算法教程》、《Java文件与目录操作技巧汇总》、《Java操作DOM节点技巧总结》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/144740.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号