⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dbserver.java~27~

📁 用java写编写的一个GPS源代码请大家多多指教
💻 JAVA~27~
字号:
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 org.enhydra.jdbc.standard.*;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.PreparedStatement;
import java.sql.Statement;
import java.sql.ResultSet;
import java.util.GregorianCalendar;
import java.util.regex.Pattern;
import javax.swing.JOptionPane;
import com.gps.center.dataservice.ReadXML;
import com.gps.center.baseclass.ParseInterface;
import com.gps.center.baseclass.MsgObj;

public class DbServer //implements ParseInterface
{
    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; //日历
    Pattern pattern = null;
  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();//初始化连接池对象
  }

  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(String message)
  {
      Connection conn = null;
      ResultSet set = null;
      String sqlStr = null;
      String mess[] = parseData(message);
      System.out.println(mess.length);
      for (int i = 0; i < mess.length; i++) {
          System.out.println(mess[i]);
      }
      System.out.println(message+"DBSERVER");
    try
    {
      //从连接池中获得数据库连接对象
      conn = dbpool.getConnection();
      conn.setAutoCommit(false);
      st=conn.createStatement();
      sqlStr = "Select * FROM VEHICLEINFO WHERE DIV_ID='"+mess[0].trim()+"'";
      set=st.executeQuery(sqlStr);
      if(set.next())//该车台已经存在
      {
      System.out.println("000000000000000000000000000000000000000");
        //调用函数更新该车台信息表
        updateVehicleInfo("VEHICLEINFO",mess);
        //向该车台明晰表中插入新的GPS信息
        insertIntoTable("D_"+mess[0].trim(),mess);

      }else//向车台信息表中插入新车台记录
      {
        sqlStr="CREATE TABLE D_"+mess[0].trim()+"(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",mess);
         //向新车台明晰表中插入信息
        insertIntoTable("D_"+mess[0].trim(),mess);
    }
    }catch(SQLException e)
    {
      e.printStackTrace();
      System.exit(1);
    }finally
    {
      try
      {
        set.close();
       conn.close();
      }catch(SQLException e2)
      {
        e2.printStackTrace();
        System.exit(1);
      }
    }
 }
 // String DBString = reStr[2]+","+" "+","+reStr[4]+","+reStr[5]+","+reStr[6]+",
 //"+reStr[7]+","+reStr[8]+","+reStr[10]+","+reStr[9]+","+stateStr+","+" "+","+" "+","+" ";
 private String [] parseData(String message)
 {
     pattern = Pattern.compile("[,]");
     String reStr []= pattern.split(message);
     for(int i=0;i<reStr.length;i++)
     {
         if(reStr[i].trim().equalsIgnoreCase("null"))
         {
             reStr[i]="";
         }
     }

     return reStr ;
 }
//添加设备回传的Gps信息
 private void insertIntoTable(String tName,String mess[])
 {
  System.out.println("999999999999999999999999999999999999999999999999999");
   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,mess[0]);
     ps.setString(2,mess[2]);
     ps.setString(3,mess[3]);
     ps.setString(4,mess[4]);
     ps.setString(5,mess[5]);
     ps.setString(6,mess[6]);
     ps.setString(7,mess[7]);
     ps.setString(8,mess[8]);
     ps.setString(9,mess[9]);
     ps.setString(10,mess[10]);
     ps.setString(11,mess[11]);
     ps.setString(12,mess[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 mess[])
 {
     System.out.println("555555555555555555555666666666");
   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='"+mess[0].trim()+"'";

   try
   {
     updateConn=dbpool.getConnection();
     updateConn.setAutoCommit(false);//设置数据库连接自动更新为假
     statement=updateConn.prepareStatement(updateSql);
      statement.setString(1,mess[2]);
      statement.setString(2,mess[3]);
      statement.setString(3,mess[4]);
      statement.setString(4,mess[5]);
      statement.setString(5,mess[6]);
      statement.setString(6,mess[7]);
      statement.setString(7,mess[8]);
      statement.setString(8,mess[9]);
      statement.setString(9,mess[10]);
      statement.setString(10,mess[11]);
      statement.setString(11,mess[12]);
      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 + -