Commit 8c1c9414 authored by 陈良富's avatar 陈良富

编写查询脚本

parent 9a891c20
# statistics
# 超前统计功能
......@@ -12,5 +12,21 @@
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>com.jfinal</groupId>
<artifactId>jfinal</artifactId>
<version>4.9.02</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.20</version>
</dependency>
<dependency>
<groupId>com.jfinal</groupId>
<artifactId>jfinal-undertow</artifactId>
<version>2.2</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
package com.gs.statistics;
import com.gs.utils.DBService;
import com.gs.utils.ScfSitebasic;
import com.jfinal.aop.Inject;
import com.jfinal.config.*;
import com.jfinal.core.Const;
import com.jfinal.ext.handler.ContextPathHandler;
import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
import com.jfinal.plugin.activerecord.CaseInsensitiveContainerFactory;
import com.jfinal.plugin.activerecord.dialect.MysqlDialect;
import com.jfinal.plugin.cron4j.Cron4jPlugin;
import com.jfinal.plugin.druid.DruidPlugin;
import com.jfinal.plugin.ehcache.EhCachePlugin;
import com.jfinal.server.undertow.UndertowServer;
import com.jfinal.template.Engine;
public class Config extends JFinalConfig {
@Inject
DBService dbService;
/**
* 注意:用于启动的 main 方法可以在任意 java 类中创建,在此仅为方便演示
* 才将 main 方法放在了 DemoConfig 中
*
* 开发项目时,建议新建一个 App.java 或者 Start.java 这样的专用
* 启动入口类放置用于启动的 main 方法
*/
public static void main(String[] args) {
UndertowServer.start(Config.class, 8888, true);
}
public void configConstant(Constants me) {
//在调用getPropertyToBoolean之前需要先调用loadPropertyFile
loadPropertyFile("config.properties");
//设置jfinal的开发模式
// me.setDevMode(getPropertyToBoolean("devMode",true));
//
String url=getProperty("upfile");
me.setBaseUploadPath(url);// 配置文件上传路径
me.setDevMode(true);
me.setMaxPostSize(500* Const.DEFAULT_MAX_POST_SIZE);
//开启支持注解,支持 Controller、Interceptor 之中使用 @Inject 注入业务层,并且自动实现 AOP
me.setInjectDependency(true);
me.setInjectSuperClass(true);
me.setError404View("/error.html");
me.setError500View("/error.html");
// me.setJsonFactory(new FastJsonFactory());
}
public void configRoute(Routes me) {
me.setBaseViewPath("/webapp");
//me.add(new RouteConfig());
me.add("/api", StatisticsController.class);
}
public void configEngine(Engine me) {
// me.setBaseTemplatePath("webapp");
// me.setToClassPathSourceFactory();
}
public void configPlugin(Plugins me) {
loadPropertyFile("config.properties");
// me.add(new JwtTokenPlugin(UserService.me));
/**配置权限拦截插件*/
int initialSize = getPropertyToInt("initialSize");
int minIdle = getPropertyToInt("minIdle");
int maxActive = getPropertyToInt("maxActive");
//获取jdbc连接池
String url=getProperty("jdbcUrl");
String user=getProperty("user");
String pw=getProperty("password");
String driver=getProperty("jdbcDriver");
me.add(new EhCachePlugin());
DruidPlugin druidPlugin = new DruidPlugin(url, user,pw.trim());
druidPlugin.setDriverClass(driver);
druidPlugin.setValidationQuery("select 1 from scf_line"); //Users是你的数据库中的某一个表
me.add(druidPlugin);
ActiveRecordPlugin arp = new ActiveRecordPlugin(druidPlugin);
//ActiveRecordPlugin arp = new ActiveRecordPlugin(druidPlugin);
// arp. setContainerFactory(new CaseInsensitiveContainerFactory(true));
// arp.getEngine().setToClassPathSourceFactory();
arp.setShowSql(true);
// 配置Sqlserver方言
arp.setDialect(new MysqlDialect());
arp.setShowSql(true);
arp.addSqlTemplate("/sql/sql.sql");
// 配置属性名(字段名)大小写不敏感容器工厂
arp.setContainerFactory(new CaseInsensitiveContainerFactory());
//_MappingKit.mapping(arp);
arp.addMapping("Scf_SiteBasic", "Scf_SiteBasicID", ScfSitebasic.class);
me.add(arp);
Cron4jPlugin cp = new Cron4jPlugin();
// cp.addTask(" 00 05 * * * ", new TaskJob());
// cp.addTask(" 0-59/1 * * * *", new TisJob());
me.add(cp);
}
public void configInterceptor(Interceptors me)
{
//me.add(new JwtTokenInterceptor());
// me.add(new JwtInterceptor()); // 权限拦截器
}
public void configHandler(Handlers me) {
me.add(new ContextPathHandler("basePath"));
}
public void onStart() {
System.out.println("系统启动完成后回调");
System.out.println("初始化应用池");
DBService.initDB();
System.out.println("初始化应用池完成");
}
}
\ No newline at end of file
package com.gs.statistics;
import com.jfinal.core.Controller;
public class StatisticsController extends Controller {
}
package com.gs.utils;
import com.jfinal.plugin.activerecord.IBean;
import com.jfinal.plugin.activerecord.Model;
public abstract class BaseScfSitebasic<M extends BaseScfSitebasic<M>> extends Model<M> implements IBean {
public void setScfSitebasicid(java.lang.String scfSitebasicid) {
set("Scf_SiteBasicID", scfSitebasicid);
}
public java.lang.String getScfSitebasicid() {
return get("Scf_SiteBasicID");
}
public void setSiteName(java.lang.String SiteName) {
set("SiteName", SiteName);
}
public java.lang.String getSiteName() {
return get("SiteName");
}
public void setScfLineid(java.lang.String scfLineid) {
set("Scf_LineID", scfLineid);
}
public java.lang.String getScfLineid() {
return get("Scf_LineID");
}
public void setScfSegmentid(java.lang.String scfSegmentid) {
set("Scf_SegmentID", scfSegmentid);
}
public java.lang.String getScfSegmentid() {
return get("Scf_SegmentID");
}
public void setDispOrder(java.lang.Integer DispOrder) {
set("DispOrder", DispOrder);
}
public java.lang.Integer getDispOrder() {
return get("DispOrder");
}
public void setSqlCnnString(java.lang.String SqlCnnString) {
set("SqlCnnString", SqlCnnString);
}
public java.lang.String getSqlCnnString() {
return get("SqlCnnString");
}
public void setScfSitetypeid(java.lang.String scfSitetypeid) {
set("Scf_SiteTypeID", scfSitetypeid);
}
public java.lang.String getScfSitetypeid() {
return get("Scf_SiteTypeID");
}
public void setStdConstructypeid(java.lang.String stdConstructypeid) {
set("Std_ConstrucTypeID", stdConstructypeid);
}
public java.lang.String getStdConstructypeid() {
return get("Std_ConstrucTypeID");
}
public void setDescription(java.lang.String Description) {
set("Description", Description);
}
public java.lang.String getDescription() {
return get("Description");
}
public void setStatus(java.lang.Integer Status) {
set("Status", Status);
}
public java.lang.Integer getStatus() {
return get("Status");
}
public void setCreateTime(java.util.Date CreateTime) {
if(CreateTime==null) return;
set("CreateTime", new java.sql.Timestamp(CreateTime.getTime()));
}
public java.util.Date getCreateTime() {
return get("CreateTime");
}
public void setStartTime(java.util.Date StartTime) {
if(StartTime==null) return;
set("StartTime", new java.sql.Timestamp(StartTime.getTime()));
}
public java.util.Date getStartTime() {
return get("StartTime");
}
public void setEndTime(java.util.Date EndTime) {
if(EndTime==null) return;
set("EndTime", new java.sql.Timestamp(EndTime.getTime()));
}
public java.util.Date getEndTime() {
return get("EndTime");
}
public void setDuration(java.lang.Integer Duration) {
set("Duration", Duration);
}
public java.lang.Integer getDuration() {
return get("Duration");
}
public void setHasContract(java.lang.Integer HasContract) {
set("HasContract", HasContract);
}
public java.lang.Integer getHasContract() {
return get("HasContract");
}
public void setHasDetail(java.lang.Integer HasDetail) {
set("HasDetail", HasDetail);
}
public java.lang.Integer getHasDetail() {
return get("HasDetail");
}
public void setHasGeology(java.lang.Integer HasGeology) {
set("HasGeology", HasGeology);
}
public java.lang.Integer getHasGeology() {
return get("HasGeology");
}
public void setHasMaterial(java.lang.Integer HasMaterial) {
set("HasMaterial", HasMaterial);
}
public java.lang.Integer getHasMaterial() {
return get("HasMaterial");
}
public void setInitWaterDeep(java.lang.Double InitWaterDeep) {
set("InitWaterDeep", InitWaterDeep);
}
public java.lang.Double getInitWaterDeep() {
return get("InitWaterDeep");
}
public void setEnviLevel(java.lang.Integer EnviLevel) {
set("EnviLevel", EnviLevel);
}
public java.lang.Integer getEnviLevel() {
return get("EnviLevel");
}
public void setStdGeocategoryid(java.lang.String stdGeocategoryid) {
set("Std_GeoCategoryID", stdGeocategoryid);
}
public java.lang.String getStdGeocategoryid() {
return get("Std_GeoCategoryID");
}
public void setPosPrefixName(java.lang.String PosPrefixName) {
set("PosPrefixName", PosPrefixName);
}
public java.lang.String getPosPrefixName() {
return get("PosPrefixName");
}
public void setPosStart(java.lang.Double PosStart) {
set("PosStart", PosStart);
}
public java.lang.Double getPosStart() {
return get("PosStart");
}
public void setPosEnd(java.lang.Double PosEnd) {
set("PosEnd", PosEnd);
}
public java.lang.Double getPosEnd() {
return get("PosEnd");
}
public void setDataUploadDeadLine(java.util.Date DataUploadDeadLine) {
if(DataUploadDeadLine==null) return;
set("DataUploadDeadLine", new java.sql.Timestamp(DataUploadDeadLine.getTime()));
}
public java.util.Date getDataUploadDeadLine() {
return get("DataUploadDeadLine");
}
public void setSiteCode(java.lang.String SiteCode) {
set("SiteCode", SiteCode);
}
public java.lang.String getSiteCode() {
return get("SiteCode");
}
public void setThirdSiteID(java.lang.String ThirdSiteID) {
set("ThirdSiteID", ThirdSiteID);
}
public java.lang.String getThirdSiteID() {
return get("ThirdSiteID");
}
public void setStartKilo(java.lang.String StartKilo) {
set("StartKilo", StartKilo);
}
public java.lang.String getStartKilo() {
return get("StartKilo");
}
public void setStopKilo(java.lang.String StopKilo) {
set("StopKilo", StopKilo);
}
public java.lang.String getStopKilo() {
return get("StopKilo");
}
public void setScfStructureid(java.lang.String scfStructureid) {
set("Scf_StructureID", scfStructureid);
}
public java.lang.String getScfStructureid() {
return get("Scf_StructureID");
}
public void setSource(java.lang.Integer Source) {
set("Source", Source);
}
public java.lang.Integer getSource() {
return get("Source");
}
public String getName() {
return this.getSiteName();
}
public String getId() {
return this.getScfSitebasicid();
}
}
package com.gs.utils;
import com.jfinal.aop.Inject;
import com.jfinal.plugin.activerecord.Config;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.DbKit;
import com.jfinal.plugin.activerecord.Record;
import com.jfinal.plugin.activerecord.dialect.MysqlDialect;
import com.jfinal.plugin.druid.DruidPlugin;
import javax.sql.DataSource;
import java.net.InetAddress;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
//多数据源操作类
public class DBService {
//根据id获取数据源
@Inject
Scf_SiteBasicService scf_siteBasicService;
public String getDbUrl(String Scf_SiteDatabaseID){
ScfSitebasic d= scf_siteBasicService.getSegmentById(Scf_SiteDatabaseID);
if (d!=null){
d.getSqlCnnString();
}
return "";
}
//获取数据源
public static Record SqlCnntoMysqlCon(String con){
if (!con.equals("")){
Record db=new Record();
String [] arr= con.split(";");
for (String item:arr) {
if (item.toLowerCase().indexOf("Data Source=".toLowerCase())>-1){
String []b= item.split("=");
db.set("ip",b[1]);
}
if (item.toLowerCase().indexOf("Initial Catalog".toLowerCase())>-1){
String []b= item.split("=");
db.set("db",b[1]);
}
if (item.toLowerCase().indexOf("User ID".toLowerCase())>-1){
String []b= item.split("=");
db.set("user",b[1]);
}
if (item.toLowerCase().indexOf("Password".toLowerCase())>-1){
String []b= item.split("=");
db.set("pw",b[1]);
}
}
db.set("jdbc","jdbc:mysql://"+db.get("ip")+"/"+db.get("db")+"?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai");
return db;
}
return null;
}
public static void initDB(){
List<ScfSitebasic> db= Scf_SiteBasicService.getSegmentBySorce();
if (db!=null){
for (ScfSitebasic d:db) {
try
{
Record s= SqlCnntoMysqlCon(d.getSqlCnnString());
initMTXOracleDruidPlugin(s.getStr("jdbc"), s.getStr("user"),s.getStr("pw").trim(),s.getStr("db"));
System.out.println(s.getStr("jdbc"));
}
catch (Exception ex){
System.out.println(ex.getMessage());
}
}
}
}
/**
* 动态添加数据源
* @param sqlCnnString
*/
public static void intSynDB(String sqlCnnString) {
try {
Record s = SqlCnntoMysqlCon(sqlCnnString);
initMTXOracleDruidPlugin(s.getStr("jdbc"), s.getStr("user"), s.getStr("pw").trim(), s.getStr("db"));
System.out.println(s.getStr("jdbc"));
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
}
/**
* 初始化数据源
* @param jdbc
* @param user
* @param pw
* @param db
*/
public static void initMTXOracleDruidPlugin(String jdbc, String user, String pw, String db){
try{
System.out.println(jdbc);
DruidPlugin druidPlugin = new DruidPlugin(jdbc.replace(",",":"), user,pw);
//druidPlugin.setDriverClass("com.microsoft.sqlserver.jdbc.SQLServerDriver");
druidPlugin.setDriverClass("com.mysql.cj.jdbc.Driver");
if (druidPlugin.start()){
if(DbKit.getConfig(db)==null){
DataSource d= druidPlugin.getDataSource();
com.jfinal.plugin.activerecord.Config config=new Config(db,d,new MysqlDialect());
DbKit.addConfig(config);
}
System.out.println("创建成功!");
}
}catch (Exception ex){
System.out.println(ex.getMessage());
}}
}
package com.gs.utils;
public class ScfSitebasic extends BaseScfSitebasic<ScfSitebasic> {
public static final ScfSitebasic dao = new ScfSitebasic();
}
package com.gs.utils;
import java.util.List;
public class Scf_SiteBasicService {
private static ScfSitebasic sitebasic= ScfSitebasic.dao;
public ScfSitebasic getSegmentById(String id){
return sitebasic.findById(id);
}
//获取运行中的数据源
public static List<ScfSitebasic> getSegmentBySorce() {
String sql= "select *from Scf_SiteBasic where SqlCnnString !=''";
return sitebasic.find(sql);
}
public List<ScfSitebasic> getScfSitebasicLis(String scfSegmentid) {
String sql = "select * from Scf_SiteBasic where Scf_SegmentID='" + scfSegmentid + "' ";
return sitebasic.find(sql);
}
public static List<ScfSitebasic> getScf_SiteBasic(String scfStructureid) {
//
String filed=" Scf_SiteBasicID,SiteName,Scf_LineID,Scf_SegmentID,DispOrder,Scf_SiteTypeID,Std_ConstrucTypeID,Description,Status,CreateTime,StartTime,EndTime,Duration,HasContract,HasDetail,HasGeology,HasMaterial,InitWaterDeep,EnviLevel,Std_GeoCategoryID,PosPrefixName,PosStart,PosEnd,DataUploadDeadLine,SiteCode,ThirdSiteID,StartKilo,StopKilo,Scf_StructureID,Source";
return sitebasic.find("select "+filed+" from Scf_SiteBasic where Scf_StructureID='"+scfStructureid+"' and Source=1");
}
public void save(ScfSitebasic sitebasic) {
String sql = "select * from Scf_SiteBasic where ThirdSiteID='" + sitebasic.getThirdSiteID() + "' ";
ScfSitebasic da= sitebasic.findFirst(sql);
if (da==null){
sitebasic.save();
}else {
da.setSiteName(sitebasic.getSiteName());
da.setStartKilo(sitebasic.getStartKilo());
da.setSiteCode(sitebasic.getSiteCode());
da.setStopKilo(sitebasic.getStopKilo());
da.update();
}
}
public List<ScfSitebasic> findBySegmentId(String scfSegmentid) {
return sitebasic.find("select * from Scf_SiteBasic where Scf_SegmentID='"+scfSegmentid+"'");
}
public ScfSitebasic finbySite(Integer d) {
return sitebasic.findFirst("select * from Scf_SiteBasic where ThirdSiteID="+d);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment