main
黄海 2 years ago
parent 0792205464
commit d8d72f354a

@ -3,18 +3,19 @@ package Tools;
import cn.hutool.poi.excel.ExcelReader;
import cn.hutool.poi.excel.ExcelUtil;
import com.dsideal.FengHuang.Util.CommonUtil;
import com.dsideal.FengHuang.Util.PgSqlUtil;
import com.jfinal.kit.PropKit;
import com.jfinal.kit.StrKit;
import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Record;
import com.jfinal.plugin.activerecord.dialect.PostgreSqlDialect;
import com.jfinal.plugin.druid.DruidPlugin;
import com.jfinal.plugin.redis.RedisPlugin;
import java.io.File;
import java.util.*;
public class CC_DangJianImportQuestion {
public static void main(String[] args) {
//1、配置数据库
PropKit.use("application.properties");
@ -24,9 +25,28 @@ public class CC_DangJianImportQuestion {
druid.start();
// 配置ActiveRecord插件
ActiveRecordPlugin arp = new ActiveRecordPlugin(druid);
//遍历sql目录下所有的sql文件
File sqlDir;
String basePath = CC_DangJianImportQuestion.class.getClassLoader().getResource(".").getPath();
sqlDir = new File(basePath + "/Sql");
File[] sqlFiles = sqlDir.listFiles();
for (File sqlFile : sqlFiles != null ? sqlFiles : new File[0]) {
//只加载.sql文件
if (sqlFile.getName().indexOf(".sql") > 0) {
arp.addSqlTemplate("/Sql/" + sqlFile.getName());
}
}
//设置方言
arp.setDialect(new PostgreSqlDialect());
arp.start();
String excelFile = "D:\\dsWork\\ccDangJianExam\\Doc\\党建试题.xlsx";
//清库脚本
PgSqlUtil.Truncate("t_exam_person");
PgSqlUtil.Truncate("t_exam_record");
PgSqlUtil.Truncate("t_exam_question");
String excelFile = "D:\\dsWork\\ccDangJianExamForOpenGauss\\Doc\\党建试题.xlsx";
ExcelReader reader = ExcelUtil.getReader(excelFile);
List<Map<String, Object>> list = reader.readAll();
@ -36,11 +56,6 @@ public class CC_DangJianImportQuestion {
for (Record record : typeList) {
_map.put(record.getStr("type_name"), record.getInt("type_id"));
}
sql = "truncate table t_exam_question";
Db.update(sql);
sql = "truncate table t_exam_record";
Db.update(sql);
int cnt = 0;
for (Map<String, Object> record : list) {
@ -61,13 +76,13 @@ public class CC_DangJianImportQuestion {
Record writeR = new Record();
writeR.set("type_id", type_id);
writeR.set("content", content);
writeR.set("A", A);
writeR.set("B", B);
writeR.set("C", C);
writeR.set("D", D);
writeR.set("E", E);
writeR.set("F", F);
writeR.set("G", G);
writeR.set("a", A);
writeR.set("b", B);
writeR.set("c", C);
writeR.set("d", D);
writeR.set("e", E);
writeR.set("f", F);
writeR.set("g", G);
writeR.set("answer", answer);
writeR.set("memo", memo);
writeR.set("score", score);

@ -0,0 +1,41 @@
package com.dsideal.FengHuang.Util;
import com.jfinal.kit.Kv;
import com.jfinal.kit.StrKit;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Record;
import com.jfinal.plugin.activerecord.SqlPara;
import java.util.List;
public class PgSqlUtil {
protected static String getPkColumnName(String table_name) {
Kv kv = Kv.by("table_name", table_name);
SqlPara sp = Db.getSqlPara("PgSql.getSinglePk", kv);
List<Record> list = Db.find(sp);
if (list.size() == 0) return null;
return Db.find(sp).get(0).getStr("colname");
}
protected static String getSeqNameByTableName(String table_name) {
String pkName = getPkColumnName(table_name);
if (!pkName.equals(null)) {
String sql = "SELECT pg_get_serial_sequence(?,?) as sq_name";
String sqName = Db.findFirst(sql, table_name, pkName).getStr("sq_name");
if (StrKit.isBlank(sqName)) return null;
return sqName.replace("public.", "");
}
return null;
}
public static void Truncate(String table_name) {
String sql = "truncate table " + table_name;
Db.update(sql);
String seq_name = getSeqNameByTableName(table_name);
if (!StrKit.isBlank(seq_name)) {
sql = "SELECT setval('" + seq_name + "', 1, false);";
Db.find(sql);
}
}
}

@ -0,0 +1,12 @@
#namespace("PgSql")
#sql("getSinglePk")
select pg_constraint.conname as pk_name,pg_attribute.attname as colname,pg_type.typname as typename from
pg_constraint inner join pg_class
on pg_constraint.conrelid = pg_class.oid
inner join pg_attribute on pg_attribute.attrelid = pg_class.oid
and pg_attribute.attnum = pg_constraint.conkey[1]
inner join pg_type on pg_type.oid = pg_attribute.atttypid
where pg_class.relname = #para(table_name)
and pg_constraint.contype='p'
#end
#end

@ -0,0 +1,12 @@
#namespace("PgSql")
#sql("getSinglePk")
select pg_constraint.conname as pk_name,pg_attribute.attname as colname,pg_type.typname as typename from
pg_constraint inner join pg_class
on pg_constraint.conrelid = pg_class.oid
inner join pg_attribute on pg_attribute.attrelid = pg_class.oid
and pg_attribute.attnum = pg_constraint.conkey[1]
inner join pg_type on pg_type.oid = pg_attribute.atttypid
where pg_class.relname = #para(table_name)
and pg_constraint.contype='p'
#end
#end
Loading…
Cancel
Save