mysql 插入 point_jsp连接MySQL操作GIS地图数据实现添加point的功能代码

这篇博客展示了如何在Java中通过jsp连接MySQL数据库,实现向GIS地图数据表中插入POINT类型的数据。通过设置参数,从表单获取ID、名称、电压等级、经度和纬度,然后利用GeometryFromText函数构建POINT对象并插入到biandianzhan_point_tb表中。在插入过程中遇到了经纬度显示为乱码的问题,作者推测可能是数据格式不被浏览器识别,并考虑了解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

展开全部

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");

%>

action="insert_map.jsp"

method="post">

ID

:

type

=

"text"

name="id"

value="0"/>

名称

:

type

=

"text"

name="name"

value="aaa"/>

电压等级

:

type

=

"text"

name="voltage_level"

value="110kv"/>

经度

:

type

=

"text"

name="lon"

value="121."/>

纬度

:

type

=

"text"

name="lat"

value="28."/>

type

=

"submit"

value="提交"/>

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");

%>

add

message

into

table

String

id=request.getParameter("id");

//从表单62616964757a686964616fe58685e5aeb931333431343665获得

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:

名称:

电压等级:

经纬度:

}

}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数据进行剥离,得到两个数值及经纬度。不过可能没这个必要,因为没必要显示这两个值。

总的来说,大功告成了一半吧,呵呵,今天收获很大啊!很开心!

79d488f2101b17ee978ba5c6957a357b.gif

935f76b4b69c23d4f6e4575b0a49c7c3.gif

d0663e078b31ed7300d9d0522ba84c71.gif

bb20e1018da3f98f485a7294eb6d66bf.png

86f3bf8db0b46f390041ff2aa2fce6c1.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值