package com.sql; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.GregorianCalendar; import java.util.Properties; import com.base.Com; import com.config.AppConfig; public class Sql_Sybase { public final static int SQL_TYPE_SYBASE_DEMO = 0; public final static int SQL_TYPE_SYBASE = 1; public final static int SQL_TYPE_MSSQLSERVER = 2; private int m_SQL_TYPE = SQL_TYPE_SYBASE_DEMO; //´´½¨Êý¾Ý¿âÁ¬½Ó³Ø //private ComboPooledDataSource sybase_ds = new ComboPooledDataSource(); private String mSQLServerIp = "127.0.0.1"; private String mSQLServerUsrName = "sxfg001"; private String mSQLServerPWD = "sxfg001"; private int mSQLServerPort = 5000; private ResultSet sql_res = null; private Connection sql_conn = null; public Sql_Sybase(AppConfig cfg) { m_SQL_TYPE = cfg.getSourceSQLServerType(); mSQLServerIp = cfg.getSourceSQLServerIp(); mSQLServerUsrName = cfg.getSourceSQLServerUsrName(); mSQLServerPWD = cfg.getSourceSQLServerPWD(); mSQLServerPort = cfg.getSourceSQLServerPort(); sql_conn = getConnection(); } public int get_SQL_TYPE() { return m_SQL_TYPE; } public String getQueryVolString(String st_id, GregorianCalendar gc_start, GregorianCalendar gc_end, String time_order) { String str = ""; if(SQL_TYPE_SYBASE == m_SQL_TYPE) { str = "SELECT StationId,EquipmentId,SignalId,FloatValue FROM " + " HistoryBattery" + (gc_start.get(GregorianCalendar.MONTH) + 1) + " WHERE " + " StationId=" + st_id + " AND RecordTime>'" + Com.getDateTimeFormat(gc_start.getTime(), Com.DTF_YMDhms) + "'" + " AND RecordTime<='" + Com.getDateTimeFormat(gc_end.getTime(), Com.DTF_YMDhms) + "'" + " ORDER BY RecordTime " + time_order; } else if(SQL_TYPE_SYBASE_DEMO == m_SQL_TYPE) { str = "SELECT StationId,EquipmentId,SignalId,FloatValue FROM " + " HistoryBattery" + (gc_start.get(GregorianCalendar.MONTH) + 1) + " WHERE " + " StationId='" + st_id + "'" + " AND RecordTime>'" + Com.getDateTimeFormat(gc_start.getTime(), Com.DTF_YMDhms) + "'" + " AND RecordTime<='" + Com.getDateTimeFormat(gc_end.getTime(), Com.DTF_YMDhms) + "'" + " ORDER BY RecordTime " + time_order; } else if(SQL_TYPE_MSSQLSERVER == m_SQL_TYPE) { str = "SELECT StationId,EquipmentId,SignalId,FloatValue FROM " + " TBL_HistorySignal" + (gc_start.get(GregorianCalendar.MONTH) + 1) + " WHERE " + " StationId=" + st_id + " AND SampleTime>'" + Com.getDateTimeFormat(gc_start.getTime(), Com.DTF_YMDhms) + "'" + " AND SampleTime<='" + Com.getDateTimeFormat(gc_end.getTime(), Com.DTF_YMDhms) + "'" + " ORDER BY SampleTime " + time_order; } return str; } /** * ¸ù¾Ý¿ªÊ¼Ê±¼äºÍ½áÊøÊ±¼äÒÔ¼°id»ñÈ¡ÏàÓ¦µÄ²éѯÓï¾ä * @param st_id * @param gc_start * @param gc_end * @param time_order * @return */ public String getQueryCurrentString(String st_id, GregorianCalendar gc_start, GregorianCalendar gc_end, String time_order) { String str = ""; if(SQL_TYPE_SYBASE == m_SQL_TYPE) { str = "SELECT StationId,EquipmentId,SignalId,FloatValue FROM " + " HistorySignal" + (gc_start.get(GregorianCalendar.MONTH) + 1) + " WHERE " + " StationId=" + st_id + " AND RecordTime >'" + Com.getDateTimeFormat(gc_start.getTime(), Com.DTF_YMDhms) + "'" + " AND RecordTime <='" + Com.getDateTimeFormat(gc_end.getTime(), Com.DTF_YMDhms) + "'" + " ORDER BY RecordTime " + time_order; } return str; } public Connection getConnection(){ Connection con = null; if((SQL_TYPE_SYBASE_DEMO == m_SQL_TYPE) || (SQL_TYPE_SYBASE == m_SQL_TYPE)) { try { Class.forName("com.sybase.jdbc3.jdbc.SybDriver").newInstance(); String url = "jdbc:sybase:Tds:" + mSQLServerIp + ":" + mSQLServerPort + "/SiteWeb"; Properties sysProps = System.getProperties(); sysProps.put("user", mSQLServerUsrName); sysProps.put("password", mSQLServerPWD); con = DriverManager.getConnection(url, sysProps); } catch (InstantiationException | IllegalAccessException | ClassNotFoundException | SQLException e) { //e.printStackTrace(); //System.err.println(e.getMessage()); } } else if(SQL_TYPE_MSSQLSERVER == m_SQL_TYPE) { try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); String url = "jdbc:sqlserver://" + mSQLServerIp + ";DatabaseName=SiteWeb"; /* String userName = "fuguang"; String userPwd = "jian(12)"; */ con = DriverManager.getConnection(url, mSQLServerUsrName, mSQLServerPWD); } catch (ClassNotFoundException | SQLException e) { //e.printStackTrace(); } } return con; } /* public class sybaseThread extends Thread { boolean dres; public sybaseThread(boolean res) { dres = res; } @SuppressWarnings("deprecation") @Override public void run() { try { long count_tr = 0; System.out.println(Thread.currentThread().getName()); while(true) { count_tr++; Connection conn = sql_conn;//sybase_ds.getConnection();//getConnection();// Statement sql = conn.createStatement();//conn .createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); sql.setQueryTimeout(10); String sqlstr = "select * from tb_battdata"; // ±í"sp_getTestData";// ResultSet rs = sql.executeQuery(sqlstr); while(rs.next()) { System.out.println(Thread.currentThread().getName() + " " + count_tr + " " + rs.getString("StationId") + " " + rs.getString("StationName") + " " + rs.getTimestamp("rc_time").toLocaleString() +" "//.format(DateTimeFormatter.ofLocalizedDateTime(FormatStyle.FULL)) + " " + rs.getString("SignalName") + " " + rs.getString("SignalValue") + " " ); } sql.close(); conn.close(); //Thread.sleep(10); } } catch (Exception e) { System.out.println(e.getMessage()); } } } */ public ResultSet getSqlres() { return sql_res; } public void close_conn() throws SQLException { if(null != sql_conn) { sql_conn.close(); sql_conn = null; } } public boolean get_conn_state() { if(null == sql_conn) return false; else return true; } /** * ¸ù¾Ý²éѯÓï¾ä»ñÈ¡ ResultSet ¼¯ºÏ * @param sql_str ²éѯÓï¾ä * @return ResultSet¼¯ºÏ * @throws SQLException */ public ResultSet sqlSybaseQuery(String sql_str) throws SQLException { Statement sql = sql_conn.createStatement(); sql.setQueryTimeout(30); ResultSet rs = sql.executeQuery(sql_str); return rs; } public void sqlSybaseExecute(String str) throws SQLException { Statement sql = sql_conn.createStatement(); sql.setQueryTimeout(30); sql.execute(str); } }