📄 dbserver.java~2~
字号:
package com.gps.center.dataservice;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2006</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
import org.enhydra.jdbc.pool.StandardPoolDataSource;
import org.enhydra.jdbc.standard.StandardConnectionPoolDataSource;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.PreparedStatement;
import java.sql.Statement;
import java.sql.ResultSet;
import java.sql.Time;
import java.util.Calendar;
import java.util.GregorianCalendar;
public class DbServer
{
String name=null;
String password=null;
String driver=null;
String url=null;
StandardPoolDataSource dbpool;
ReadXML read=null;
Statement st=null;
PreparedStatement ps=null;
GregorianCalendar calendar;//日历
public DbServer()
{
calendar = new GregorianCalendar();
read = new ReadXML();
read.readXML();//读取配置信息
this.name=read.name;
this.password=read.password;
this.driver=read.driver;
this.url=read.url;
init();//初始化连接池对象
}
public void updateTrackForceGpsInfo(String[] gpsStr) {
//DeviceID,Longitude,Latitude,Speed
// Connection conn = null;
// Statement stmt = null;
// String sql = null;
// sql = new String("UPDATE IWTRACKEDASSET" + " SET SPEED=" + gpsStr[3] +
// ",CURRENTX=" + gpsStr[1] + ",CURRENTY=" + gpsStr[2] +
// " WHERE MID=" + gpsStr[0]);
// //sql = new String("UPDATE IWTRACKEDASSET SET SPEED = "+"100"+ ",CURRENTX = " + "48.789" + ",CURRENTY = " +"56.789" +" WHERE MID = " + "13810495604")
// try {
// conn = dbPool.getConnection();
// stmt = conn.createStatement();
// stmt.executeUpdate(sql);
// }
// catch (SQLException ex) {
// ex.printStackTrace();
// }
// finally {
// try {
// stmt.close();
// conn.close();
// }
// catch (SQLException ex1) {
// ex1.printStackTrace();
// }
// }
}
private void init()
{
try
{
//创建数据库连接池连接对象
StandardConnectionPoolDataSource connect = new
StandardConnectionPoolDataSource();
connect.setDriverName(driver);
connect.setUrl(url);
connect.setUser(name);
connect.setPassword(password);
//用当前数据库连接对象创建数据库连接池
dbpool = new StandardPoolDataSource(connect);
dbpool.setMaxSize(10);
dbpool.setMinSize(5);
dbpool.setUser(name);
dbpool.setPassword(password);
}catch(Exception e)
{
e.printStackTrace();
System.exit(1);
}
}
//添加或更新车台信息表GPS信息
public void addVehicleInfo()
{
Connection conn=null;
ResultSet set=null;
String id = "13579511357";
String sqlStr=null;
/*long t=(new java.util.Date()).getTime();
Time time = new Time(t);
System.out.println();
*/
try
{
//从连接池中获得数据库连接对象
conn = dbpool.getConnection();
conn.setAutoCommit(false);
st=conn.createStatement();
sqlStr = "Select * FROM VEHICLEINFO WHERE DIV_ID='"+id+"'";
set=st.executeQuery(sqlStr);
if(set.next())//该车台已经存在
{
//调用函数更新该车台信息表
updateVehicleInfo("VEHICLEINFO",id);
//向该车台明晰表中插入新的GPS信息
insertIntoTable("D_"+id);
}else//向车台信息表中插入新车台记录
{
sqlStr="CREATE TABLE D_"+id+"(DIV_ID varchar(12),INCEPT_TIME DATE,"
+"LOCATION_SING varchar2(10) ,LATITUDE varchar2(10),SOUTH_NORTH varchar2(10),"
+"LONGITUDE varchar2(15),EAST_WEST varchar2(10),SPEED varchar2(10),"
+"DIRECTION varchar2(10),STATE varchar2(10),"
+"TEMPERATURE varchar2(10),MILEAGE varchar2(10),TRAVEL_TIME varchar2(10))";
st.executeUpdate(sqlStr);
conn.commit();
st.close();
//向车台信息表中插入新车台的信息
insertIntoTable("VEHICLEINFO");
//向新车台明晰表中插入信息
insertIntoTable("D_"+id);
}
}catch(SQLException e)
{
e.printStackTrace();
System.exit(1);
}finally
{
try
{
set.close();
conn.close();
}catch(SQLException e2)
{
e2.printStackTrace();
System.exit(1);
}
}
}
//添加设备回传的Gps信息
private void insertIntoTable(String tName)
{
Connection conn=null;
String sql="INSERT INTO "+tName+"(DIV_ID,"
+"LOCATION_SING,LATITUDE,SOUTH_NORTH,"
+"LONGITUDE ,EAST_WEST,SPEED,"
+"DIRECTION ,STATE,"
+"TEMPERATURE ,MILEAGE,TRAVEL_TIME,INCEPT_TIME)"
+"VALUES(?,?,?,?,?,?,?,?,?,?,?,?,sysdate)";
try
{
conn=dbpool.getConnection();
conn.setAutoCommit(false);
ps=conn.prepareStatement(sql);
ps.setString(1,"13579511357");
ps.setString(2,"");
ps.setString(3,"");
ps.setString(4,"");
ps.setString(5,"");
ps.setString(6,"");
ps.setString(7,"");
ps.setString(8,"");
ps.setString(9,"");
ps.setString(10,"");
ps.setString(11,"");
ps.setString(12,"");
ps.executeQuery();
conn.commit();
}catch(SQLException e3)
{
e3.printStackTrace();
System.exit(1);
}finally
{
try
{
ps.close();
conn.close();
conn=null;
ps=null;
}catch(SQLException e4)
{
e4.printStackTrace();
System.exit(1);
}
}
}
//更新车台信息表中该车台的GPS信息
private void updateVehicleInfo(String tName,String id)
{
Connection updateConn=null;
PreparedStatement statement=null;
String updateSql="UPDATE "+tName;
updateSql = updateSql+" SET LOCATION_SING=?,LATITUDE=?,SOUTH_NORTH=?,"
+"LONGITUDE=? ,EAST_WEST=?,SPEED=?,"
+"DIRECTION=? ,STATE=?,"
+"TEMPERATURE=? ,MILEAGE=?,TRAVEL_TIME=?,INCEPT_TIME=sysdate";
updateSql = updateSql + " where DIV_ID='"+id+"'";
try
{
updateConn=dbpool.getConnection();
updateConn.setAutoCommit(false);//设置数据库连接自动更新为假
statement=updateConn.prepareStatement(updateSql);
statement.setString(1,"");
statement.setString(2,"");
statement.setString(3,"");
statement.setString(4,"");
statement.setString(5,"");
statement.setString(6,"");
statement.setString(7,"");
statement.setString(8,"");
statement.setString(9,"");
statement.setString(10,"");
statement.setString(11,"");
statement.executeUpdate();
updateConn.commit();
}catch(SQLException e5)
{
e5.printStackTrace();
System.exit(1);
}finally
{
try
{
statement.close();
updateConn.close();
}catch(SQLException e6)
{
e6.printStackTrace();
System.exit(1);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -