展开全部
你是想后台查询数据库,取出数据在google maps上面显示吧,具体就是用JDBC查出数据,然后用AJAX返回,存入JS数组或MAP表,然后调用google maps api
取数据也可以用JSON 不管JSON还是AJAX 都是局部的刷新页面
如果是要向GPS那样实时的追踪 那么取数据应该去最新的 也就是ID号最大的,取出来在地图上标记就行,这个时间间隔不宜过大 最小也要10秒左右 也可以通过开始时间和结束时间查询数据库取出来画线 即为路线的查询 如果没有GPS设备 可以用软件做个模拟器
package com.XXXX.gps.manager;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
public class DbConnectionManager {
private static final String DRIVER_NAME = "org.postgresql.Driver";
private static final String USER_NAME = "postgres";
private static final String PASSWORD = "postgres";
private static final String URL = "jdbc:postgresql://localhost:5432/gps";
public static Connection getConnection() {
Connection conn = null;
try {
Context context = new InitialContext();
//实例系统上下文对象
DataSource dataSource = (DataSource) context.lookup("java:/comp/env/jdbc/postgres");
//从系统上下文中通过JNDI方式获取数据连接池资源
conn = dataSource.getConnection();
//从数据连接池中取出连接
} catch (Exception e) {
// TODO: handle exception
try {
conn = getConnectionDirectly();
} catch (Exception e1) {
}
System.err.println("[" + DbConnectionManager.class.getName()
+ "] An Error Occurred:" + e.getMessage());
}
return conn;
}
private static Connection getConnectionDirectly() throws Exception {
Connection conn = null;
Class.forName(DRIVER_NAME);
conn = DriverManager.getConnection(URL, USER_NAME, PASSWORD);
return conn;
}
public static void closeConnection(Connection conn, Statement stmt,
ResultSet rs) {
try {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
} catch (Exception e) {
}
}
public static boolean isConnectionOK() {
boolean result = false;
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
String sql = "SELECT * FROM m_user";
try {
conn = DbConnectionManager.getConnection();
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
if (rs.next()) {
}
result = true;
} catch (Exception e) {
e.printStackTrace();
} finally {
DbConnectionManager.closeConnection(conn, pstmt, rs);
}
return result;
}
}
数据库的链接是很简单的 我用的数据库是postgresQL 别的我就不能给你了 因为是公司做过的项目 涉及到所谓的商业机密 虽然不会有什么大事 但不想找麻烦 是吧 作为软件开发者你可以理解的
取数据也可以用JSON 不管JSON还是AJAX 都是局部的刷新页面
如果是要向GPS那样实时的追踪 那么取数据应该去最新的 也就是ID号最大的,取出来在地图上标记就行,这个时间间隔不宜过大 最小也要10秒左右 也可以通过开始时间和结束时间查询数据库取出来画线 即为路线的查询 如果没有GPS设备 可以用软件做个模拟器
package com.XXXX.gps.manager;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;
public class DbConnectionManager {
private static final String DRIVER_NAME = "org.postgresql.Driver";
private static final String USER_NAME = "postgres";
private static final String PASSWORD = "postgres";
private static final String URL = "jdbc:postgresql://localhost:5432/gps";
public static Connection getConnection() {
Connection conn = null;
try {
Context context = new InitialContext();
//实例系统上下文对象
DataSource dataSource = (DataSource) context.lookup("java:/comp/env/jdbc/postgres");
//从系统上下文中通过JNDI方式获取数据连接池资源
conn = dataSource.getConnection();
//从数据连接池中取出连接
} catch (Exception e) {
// TODO: handle exception
try {
conn = getConnectionDirectly();
} catch (Exception e1) {
}
System.err.println("[" + DbConnectionManager.class.getName()
+ "] An Error Occurred:" + e.getMessage());
}
return conn;
}
private static Connection getConnectionDirectly() throws Exception {
Connection conn = null;
Class.forName(DRIVER_NAME);
conn = DriverManager.getConnection(URL, USER_NAME, PASSWORD);
return conn;
}
public static void closeConnection(Connection conn, Statement stmt,
ResultSet rs) {
try {
if (rs != null) {
rs.close();
}
if (stmt != null) {
stmt.close();
}
if (conn != null) {
conn.close();
}
} catch (Exception e) {
}
}
public static boolean isConnectionOK() {
boolean result = false;
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
String sql = "SELECT * FROM m_user";
try {
conn = DbConnectionManager.getConnection();
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
if (rs.next()) {
}
result = true;
} catch (Exception e) {
e.printStackTrace();
} finally {
DbConnectionManager.closeConnection(conn, pstmt, rs);
}
return result;
}
}
数据库的链接是很简单的 我用的数据库是postgresQL 别的我就不能给你了 因为是公司做过的项目 涉及到所谓的商业机密 虽然不会有什么大事 但不想找麻烦 是吧 作为软件开发者你可以理解的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询