本文为大家介绍下使用jsp连接MySQL操作GIS地图数据并实现添加point的功能思路及代码如下感兴趣的朋友可以参考下
index_mapjsp中的代码
复制代码 代码如下:
<%@ page language="java" pageEncoding="utf"%>
<%@ page contentType="text/html;charset=utf"%>
<%
requestsetCharacterEncoding("UTF");
responsesetCharacterEncoding("UTF");
responsesetContentType("text/html; charset=utf");
%>
insert_mapjsp的代码
复制代码 代码如下:
<%@ page language="java" import="javautil*javasql*" pageEncoding="utf"%>
<%@ page contentType="text/html;charset=utf"%>
<%
requestsetCharacterEncoding("UTF");
responsesetCharacterEncoding("UTF");
responsesetContentType("text/html; charset=utf");
%>
<%
String id=requestgetParameter("id"); //从表单获得
String name=requestgetParameter("name"); //从表单获得
String voltage_level=requestgetParameter("voltage_level"); //从表单获得
String lon=requestgetParameter("lon"); //从表单获得
String lat=requestgetParameter("lat"); //从表单获得
javautilDate date=new javautilDate();
String datetime=new Timestamp(dategetTime())toString();
try
{
/** 连接数据库参数 **/
String driverName = "commysqljdbcDriver"; //驱动名称
String DBUser = "root"; //mysql用户名
String DBPasswd = ""; //mysql密码
String DBName = "map_db"; //数据库名
String connUrl = "jdbc:mysql://localhost/" + DBName + "?user=" + DBUser + "&password=" + DBPasswd;
ClassforName(driverName)newInstance();
Connection conn = DriverManagergetConnection(connUrl);
Statement stmt = conncreateStatement();
stmtexecuteQuery("SET NAMES UTF");
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 {
stmtexecute(insert_sql);
}catch(Exception e) {
eprintStackTrace();
}
try {
ResultSet rs = stmtexecuteQuery(query_sql);
while(rsnext()) {
%>
ID<%=rsgetString("id")%>
名称<%=rsgetString("name")%>
电压等级<%=rsgetString("voltage_level")%>
经纬度<%=rsgetString("the_geom")%>
<%
}
}catch(Exception e) {
eprintStackTrace();
}
//rsclose();
stmtclose();
connclose();
}catch (Exception e) {
eprintStackTrace();
}
%>
访问index_mapjsp
提交前数据库的值
输入测试值并提交得到如下页面
数据库的变化如下
可以看出在上面的提交后的页面上经纬度是乱码的原因是the_geom的数据类型是POINT类型是几何数据类geometry类中的一个子类有特定的格式可能这种特定的格式没能被浏览器识别我正在考虑的解决方案是将the_geom数据进行剥离得到两个数值及经纬度不过可能没这个必要因为没必要显示这两个值
总的来说大功告成了一半吧呵呵今天收获很大啊!很开心!