java使用JDBC动态创建数据表及SQL预处理的方法
本文实例讲述了java使用JDBC动态创建数据表及SQL预处理的方法。分享给大家供大家参考,具体如下:
这两天由于公司的需求,客户需要自定义数据表的字段,导致每张表的字段都不是固定的而且很难有一个通用的模板去维护,所以就使用JDBC动态去创建数据表,然后通过表的字段动态添加数据,数据的来源主要是用户提供的Excel直接导入到数据库中。
如果考虑到字段的类型,可以通过反射的机制去获取,现在主要用户需求就是将数据导入到数据库提供查询功能,不能修改,所以就直接都使用String类型来处理数据更加便捷。
importjava.sql.Connection; importjava.sql.DriverManager; importjava.sql.PreparedStatement; importjava.sql.ResultSet; importjava.sql.SQLException; importjava.util.ArrayList; importjava.util.List; importjava.util.PropertyResourceBundle; importjava.util.ResourceBundle; publicclassDataBaseSql{ //配置文件读取jdbc的配置文件 privatestaticResourceBundlebundle=PropertyResourceBundle.getBundle("db"); privatestaticConnectionconn; privatestaticPreparedStatementps; /** *创建表 *@paramtabName表名称 *@paramtab_fields表字段 */ publicstaticvoidcreateTable(StringtabName,String[]tab_fields){ conn=getConnection();//首先要获取连接,即连接到数据库 try{ Stringsql="createtable"+tabName+"(idintauto_incrementprimarykeynotnull"; if(tab_fields!=null&&tab_fields.length>0){ sql+=","; intlength=tab_fields.length; for(inti=0;iqueryForPage(StringtabName,intpageNo,intpageSize,String[]tab_fields){ conn=getConnection();//首先要获取连接,即连接到数据库 List list=newArrayList (); try{ Stringsql="select*from"+tabName+"LIMIT?,?;"; System.out.println("查询sql:"+sql); //预处理SQL防止注入 ps=conn.prepareStatement(sql); //注入参数 ps.setInt(1,pageNo); ps.setInt(2,pageSize); //查询结果集 ResultSetrs=ps.executeQuery(); //存放结果集 while(rs.next()){ String[]result=newString[tab_fields.length]; for(inti=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程序设计有所帮助。