服务器单独运行jar包方法
程序员文章站
2022-03-30 22:58:40
...
项目中遇到个问题,要为7000多张表加索引,不可能手动添加,于是就需要写个单独的程序来添加
分为几步:
1,写一个java程序
2,创建MF文件,指定引入的jar包,以及函数入口
3,导出jar文件
4,上传jar文件以及 所需jar包到服务器
5,在服务器执行 java -jar 文件名.jar
下面是程序源码以及包结构
package com.xc.main;
import java.util.ArrayList;
import java.util.List;
import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Record;
import com.jfinal.plugin.druid.DruidPlugin;
public class Main {
public static void main(String[] args) {
String jdbcUrl = "jdbc:mysql://127.0.0.1:3306/数据库名?characterEncoding=utf8&zeroDateTimeBehavior=convertToNull";
DruidPlugin druidPlugin = new DruidPlugin(jdbcUrl,"用户名", "密码");
druidPlugin.start();
ActiveRecordPlugin arp = new ActiveRecordPlugin(druidPlugin);
arp.start();
//指定需要创建索引的设备表
List<String> deviceIds=new ArrayList<String>();
deviceIds.add("20000000000a1");
deviceIds.add("15200017");
deviceIds.add("15460001");
deviceIds.add("10000000000e1");
deviceIds.add("10000000000f1");
deviceIds.add("10000000001a1");
deviceIds.add("10000000001b1");
deviceIds.add("10000000001c1");
deviceIds.add("10000000001d1");
deviceIds.add("10000000001e1");
//为指定的表创建索引
for(String s:deviceIds){
System.err.println("查询表:"+s);
List<Record> dataIndexList=Db.find("show index from xc_cool_data_"+s+";");
List<Record> gpsIndexList=Db.find("show index from xc_cool_gps_"+s+";");
boolean dataHasDatelineIndex=false;
boolean gpsHasDatelineIndex=false;
//查看是否已经建了索引
if(dataIndexList!=null&&dataIndexList.size()>0){
for(Record r:dataIndexList){
if(r.getStr("Column_name").equals("dateLine")){
dataHasDatelineIndex=true;
}
}
}
if(gpsIndexList!=null&&gpsIndexList.size()>0){
for(Record r:gpsIndexList){
if(r.getStr("Column_name").equals("dateLine")){
gpsHasDatelineIndex=true;
}
}
}
if(!dataHasDatelineIndex){
System.err.println("为xc_cool_data_"+s+" 加索引");
Db.update("ALTER TABLE `xc_cool_data_"+s+"` ADD INDEX xc_cool_data_"+s+"_dateline ( `dateLine`)");
}
if(!gpsHasDatelineIndex){
System.err.println("为xc_cool_gps_"+s+" 加索引");
Db.update("ALTER TABLE `xc_cool_gps_"+s+"` ADD INDEX xc_cool_gps_"+s+"_dateline ( `dateLine`)");
}
}
}
}
MANIFEST,.MF文件
Manifest-Version: 1.0
Class-Path: lib/druid-0.2.20.jar lib/jfinal-3.0-bin-with-src.jar lib/mysql-connector-java-5.1.20-bin.jar
Main-Class: com.xc.main.Main