Skip to content

Commit b6d75e8

Browse files
committed
fix driverclassname , and save job not compile
1 parent 6e9b6c8 commit b6d75e8

File tree

2 files changed

+147
-9
lines changed

2 files changed

+147
-9
lines changed

src/main/java/org/nlpcn/jcoder/scheduler/TaskRunManager.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,8 @@ public static void flush(Task oldTask, Task newTask) throws Exception {
166166

167167
if (newTask.getType() == 1 && newTask.getStatus() == 1) {
168168
addApi(oldTask, newTask);
169+
}else if(newTask.getType() == 2 && newTask.getStatus() == 1){
170+
new JavaRunner(newTask).compile(); //定時任務進行一次編譯
169171
}
170172

171173
}

src/main/java/org/nlpcn/jcoder/util/dao/BasicDao.java

Lines changed: 145 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,42 @@
2727
*/
2828
public class BasicDao {
2929

30+
//加载Nutz所支持的数据库的驱动!!
31+
static {
32+
String[] drivers = {"org.h2.Driver",
33+
"com.ibm.db2.jcc.DB2Driver",
34+
"org.hsqldb.jdbcDriver",
35+
"oracle.jdbc.OracleDriver",
36+
"org.postgresql.Driver",
37+
"net.sourceforge.jtds.jdbc.Driver",
38+
"com.microsoft.sqlserver.jdbc.SQLServerDriver",
39+
"org.sqlite.JDBC",
40+
"com.mysql.jdbc.Driver",
41+
"com.beyondb.jdbc.BeyondbDriver"};
42+
for (String driverClassName : drivers) {
43+
try {
44+
Class.forName(driverClassName);
45+
} catch (Throwable e) {
46+
}
47+
}
48+
}
49+
3050
@Inject
3151
protected Dao dao;
3252
private HikariDataSource ds;
3353

3454
public BasicDao(String jdbcUrl, String username, String password) {
3555
ds = new HikariDataSource();
56+
ds.setDriverClassName(getDriverClassName(jdbcUrl));
57+
ds.setJdbcUrl(jdbcUrl);
58+
ds.setUsername(username);
59+
ds.setPassword(password);
60+
this.dao = new NutDao(ds);
61+
}
62+
63+
public BasicDao(String driverClassName, String jdbcUrl, String username, String password) {
64+
ds = new HikariDataSource();
65+
ds.setDriverClassName(driverClassName);
3666
ds.setJdbcUrl(jdbcUrl);
3767
ds.setUsername(username);
3868
ds.setPassword(password);
@@ -320,10 +350,8 @@ public <T> List<T> searchByPage(Class<T> c, String fieldName, String value, int
320350
* 分页带条件查询所有数据
321351
*
322352
* @param <T>
323-
* @param c 查询的表
324-
* @param condition 查询条件,用Cnd的静态方法构造
325-
* @param currentPage 当前页码
326-
* @param pageSize 每页显示的数据量
353+
* @param c 查询的表
354+
* @param condition 查询条件,用Cnd的静态方法构造
327355
* @return List
328356
*/
329357
public <T> List<T> searchByPage(Class<T> c, Condition condition, Pager pager) {
@@ -406,7 +434,7 @@ public <T> void deleteWidth(T t, String fieldName) {
406434
* 根据指定条件删除对象
407435
*
408436
* @param <T>
409-
* @param Condition 匹配条件
437+
* @param con 匹配条件
410438
* @return int
411439
*/
412440
public <T> int delByCondition(Class<T> c, Condition con) {
@@ -605,8 +633,6 @@ public List<Record> query(String tableName, Cnd cnd) {
605633
/**
606634
* 无pojo查询记录
607635
*
608-
* @param tableName
609-
* @param cnd
610636
* @return
611637
*/
612638
@SuppressWarnings("unchecked")
@@ -629,8 +655,7 @@ public List<Record> invoke(Connection conn, ResultSet rs, Sql sql) throws SQLExc
629655
/**
630656
* 无pojo查询记录
631657
*
632-
* @param tableName
633-
* @param cnd
658+
* @param sqlStr
634659
* @return
635660
*/
636661
public Record selectOne(String sqlStr) {
@@ -662,6 +687,117 @@ public void close() {
662687
}
663688
}
664689

690+
private static Boolean mysql_driver_version_6 = null;
691+
692+
public static String getDriverClassName(String rawUrl) {
693+
if (rawUrl == null) {
694+
return null;
695+
}
696+
697+
if (rawUrl.startsWith("jdbc:derby:")) {
698+
return "org.apache.derby.jdbc.EmbeddedDriver";
699+
} else if (rawUrl.startsWith("jdbc:mysql:")) {
700+
if (mysql_driver_version_6 == null) {
701+
try {
702+
mysql_driver_version_6 = Class.forName("com.mysql.cj.jdbc.Driver") != null;
703+
} catch (ClassNotFoundException e) {
704+
mysql_driver_version_6 = false;
705+
}
706+
}
707+
708+
if (mysql_driver_version_6) {
709+
return "com.mysql.cj.jdbc.Driver";
710+
} else {
711+
return "com.mysql.jdbc.Driver";
712+
}
713+
} else if (rawUrl.startsWith("jdbc:log4jdbc:")) {
714+
return "net.sf.log4jdbc.DriverSpy";
715+
} else if (rawUrl.startsWith("jdbc:mariadb:")) {
716+
return "org.mariadb.jdbc.Driver";
717+
} else if (rawUrl.startsWith("jdbc:oracle:") //
718+
|| rawUrl.startsWith("JDBC:oracle:")) {
719+
return "oracle.jdbc.OracleDriver";
720+
} else if (rawUrl.startsWith("jdbc:alibaba:oracle:")) {
721+
return "com.alibaba.jdbc.AlibabaDriver";
722+
} else if (rawUrl.startsWith("jdbc:microsoft:")) {
723+
return "com.microsoft.jdbc.sqlserver.SQLServerDriver";
724+
} else if (rawUrl.startsWith("jdbc:sqlserver:")) {
725+
return "com.microsoft.sqlserver.jdbc.SQLServerDriver";
726+
} else if (rawUrl.startsWith("jdbc:sybase:Tds:")) {
727+
return "com.sybase.jdbc2.jdbc.SybDriver";
728+
} else if (rawUrl.startsWith("jdbc:jtds:")) {
729+
return "net.sourceforge.jtds.jdbc.Driver";
730+
} else if (rawUrl.startsWith("jdbc:fake:") || rawUrl.startsWith("jdbc:mock:")) {
731+
return "com.alibaba.druid.mock.MockDriver";
732+
} else if (rawUrl.startsWith("jdbc:postgresql:")) {
733+
return "org.postgresql.Driver";
734+
} else if (rawUrl.startsWith("jdbc:edb:")) {
735+
return "com.edb.Driver";
736+
} else if (rawUrl.startsWith("jdbc:odps:")) {
737+
return "com.aliyun.odps.jdbc.OdpsDriver";
738+
} else if (rawUrl.startsWith("jdbc:hsqldb:")) {
739+
return "org.hsqldb.jdbcDriver";
740+
} else if (rawUrl.startsWith("jdbc:db2:")) {
741+
return "COM.ibm.db2.jdbc.app.DB2Driver";
742+
} else if (rawUrl.startsWith("jdbc:sqlite:")) {
743+
return "org.sqlite.JDBC";
744+
} else if (rawUrl.startsWith("jdbc:ingres:")) {
745+
return "com.ingres.jdbc.IngresDriver";
746+
} else if (rawUrl.startsWith("jdbc:h2:")) {
747+
return "org.h2.Driver";
748+
} else if (rawUrl.startsWith("jdbc:mckoi:")) {
749+
return "com.mckoi.JDBCDriver";
750+
} else if (rawUrl.startsWith("jdbc:cloudscape:")) {
751+
return "COM.cloudscape.core.JDBCDriver";
752+
} else if (rawUrl.startsWith("jdbc:informix-sqli:")) {
753+
return "com.informix.jdbc.IfxDriver";
754+
} else if (rawUrl.startsWith("jdbc:timesten:")) {
755+
return "com.timesten.jdbc.TimesTenDriver";
756+
} else if (rawUrl.startsWith("jdbc:as400:")) {
757+
return "com.ibm.as400.access.AS400JDBCDriver";
758+
} else if (rawUrl.startsWith("jdbc:sapdb:")) {
759+
return "com.sap.dbtech.jdbc.DriverSapDB";
760+
} else if (rawUrl.startsWith("jdbc:JSQLConnect:")) {
761+
return "com.jnetdirect.jsql.JSQLDriver";
762+
} else if (rawUrl.startsWith("jdbc:JTurbo:")) {
763+
return "com.newatlanta.jturbo.driver.Driver";
764+
} else if (rawUrl.startsWith("jdbc:firebirdsql:")) {
765+
return "org.firebirdsql.jdbc.FBDriver";
766+
} else if (rawUrl.startsWith("jdbc:interbase:")) {
767+
return "interbase.interclient.Driver";
768+
} else if (rawUrl.startsWith("jdbc:pointbase:")) {
769+
return "com.pointbase.jdbc.jdbcUniversalDriver";
770+
} else if (rawUrl.startsWith("jdbc:edbc:")) {
771+
return "ca.edbc.jdbc.EdbcDriver";
772+
} else if (rawUrl.startsWith("jdbc:mimer:multi1:")) {
773+
return "com.mimer.jdbc.Driver";
774+
} else if (rawUrl.startsWith("jdbc:dm:")) {
775+
return "dm.jdbc.driver.DmDriver";
776+
} else if (rawUrl.startsWith("jdbc:kingbase:")) {
777+
return "com.kingbase.Driver";
778+
} else if (rawUrl.startsWith("jdbc:gbase:")) {
779+
return "com.kingbase.Driver";
780+
} else if (rawUrl.startsWith("jdbc:xugu:")) {
781+
return "com.xugu.cloudjdbc.Driver";
782+
} else if (rawUrl.startsWith("jdbc:hive:")) {
783+
return "org.apache.hive.jdbc.HiveDriver";
784+
} else if (rawUrl.startsWith("jdbc:hive2:")) {
785+
return "org.apache.hive.jdbc.HiveDriver";
786+
} else if (rawUrl.startsWith("jdbc:phoenix:thin:")) {
787+
return "org.apache.phoenix.queryserver.client.Driver";
788+
} else if (rawUrl.startsWith("jdbc:phoenix://")) {
789+
return "org.apache.phoenix.jdbc.PhoenixDriver";
790+
} else if (rawUrl.startsWith("jdbc:kylin:")) {
791+
return "org.apache.kylin.jdbc.Driver";
792+
} else if (rawUrl.startsWith("jdbc:elastic:")) {
793+
return "com.alibaba.xdriver.elastic.jdbc.ElasticDriver";
794+
} else if (rawUrl.startsWith("jdbc:clickhouse:")) {
795+
return "ru.yandex.clickhouse.ClickHouseDriver";
796+
} else {
797+
throw new RuntimeException("unkow jdbc driver : " + rawUrl);
798+
}
799+
}
800+
665801
@Override
666802
protected void finalize() throws Throwable {
667803
super.finalize();

0 commit comments

Comments
 (0)