萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> jsp編程 >> jsp連接MySQL操作GIS地圖數據實現添加point的功能代碼

jsp連接MySQL操作GIS地圖數據實現添加point的功能代碼

  本文為大家介紹下使用jsp連接MySQL操作GIS地圖數據並實現添加point的功能,思路及代碼如下,感興趣的朋友可以參考下

jsp連接MySQL操作GIS地圖數據實現添加point的功能代碼 三聯

  index_map.jsp中的代碼:

  復制代碼 代碼如下:

  <%@ page language="java" pageEncoding="utf-8"%>

  <%@ page contentType="text/html;charset=utf-8"%>

  <%

  request.setCharacterEncoding("UTF-8");

  response.setCharacterEncoding("UTF-8");

  response.setContentType("text/html; charset=utf-8");

  %>

  

  

  

  

  

  ID :

  名稱 :

  電壓等級 :

  經度 :

  緯度 :

  

  

  

  

  

  insert_map.jsp的代碼:

  復制代碼 代碼如下:

  <%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="utf-8"%>

  <%@ page contentType="text/html;charset=utf-8"%>

  <%

  request.setCharacterEncoding("UTF-8");

  response.setCharacterEncoding("UTF-8");

  response.setContentType("text/html; charset=utf-8");

  %>

  

  

  

  

  

  <%

  String id=request.getParameter("id"); //從表單獲得

  String name=request.getParameter("name"); //從表單獲得

  String voltage_level=request.getParameter("voltage_level"); //從表單獲得

  String lon=request.getParameter("lon"); //從表單獲得

  String lat=request.getParameter("lat"); //從表單獲得

  java.util.Date date=new java.util.Date();

  String datetime=new Timestamp(date.getTime()).toString();

  try

  {

  /** 連接數據庫參數 **/

  String driverName = "com.mysql.jdbc.Driver"; //驅動名稱

  String DBUser = "root"; //mysql用戶名

  String DBPasswd = "123456"; //mysql密碼

  String DBName = "map_db"; //數據庫名

  String connUrl = "jdbc:mysql://localhost/" + DBName + "?user=" + DBUser + "&password=" + DBPasswd;

  Class.forName(driverName).newInstance();

  Connection conn = DriverManager.getConnection(connUrl);

  Statement stmt = conn.createStatement();

  stmt.executeQuery("SET NAMES UTF8");

  String insert_sql = "INSERT INTO biandianzhan_point_tb VALUES('" + id + "','" + name + "','" + voltage_level + "',GeometryFromText('POINT (" + lon + " " + lat + ")') )";

  String query_sql = "select * from biandianzhan_point_tb";

  try {

  stmt.execute(insert_sql);

  }catch(Exception e) {

  e.printStackTrace();

  }

  try {

  ResultSet rs = stmt.executeQuery(query_sql);

  while(rs.next()) {

  %>

  ID:<%=rs.getString("id")%>

  名稱:<%=rs.getString("name")%>

  電壓等級:<%=rs.getString("voltage_level")%>

  經緯度:<%=rs.getString("the_geom")%>
 

  <%

  }

  }catch(Exception e) {

  e.printStackTrace();

  }

  //rs.close();

  stmt.close();

  conn.close();

  }catch (Exception e) {

  e.printStackTrace();

  }

  %>

  

  

  訪問index_map.jsp:

  提交前數據庫的值:

  輸入測試值並提交,得到如下頁面:

  數據庫的變化如下:

  可以看出,在上面的提交後的頁面上經緯度是亂碼的,原因是the_geom的數據類型是POINT類型,是幾何數據類geometry類中的一個子類,有特定的格式,可能這種特定的格式沒能被浏覽器識別。我正在考慮的解決方案是將the_geom數據進行剝離,得到兩個數值及經緯度。不過可能沒這個必要,因為沒必要顯示這兩個值。

  總的來說,大功告成了一半吧,呵呵,今天收獲很大啊!很開心!

copyright © 萬盛學電腦網 all rights reserved