JavaWeb日记——SQL和hibernate实现经纬度求距离并排序

我们在做定位的时候,App端获取到定位,经度和维度都是Double,获取附近的人,就要根据用户经纬度求出附近的人的距离,并按降序排序。

以一个user表为例
表的结构如下

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `latitude` double DEFAULT NULL,
  `longitude` double DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 COMMENT='latin1_swedish_ci'

最原始的sql语句

select *,(2 * 6378.137* ASIN(SQRT(POW(SIN(PI()*(111.8614196777
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: JavaWeb和数据库SQL可以通过JDBC连接实现网站的登录和注册功能。 登录功能可以通过查询数据库中的用户信息来验证用户输入的用户名和密码是否正确。如果正确,则可以将用户信息存储在Session中,以便后续的操作。 注册功能可以通过向数据库中插入新的用户信息来实现。在插入之前,需要先查询数据库中是否已经存在相同的用户名或邮箱等信息,以避免重复注册。 在实现过程中,需要注意安全性问题,如防止SQL注入攻击等。同时,还需要考虑用户体验,如输入框的验证、密码加密等。 ### 回答2: JavaWebJava开发的Web应用程序,常见的包括Servlet、JSP、Struts、SpringMVC等技术。它可以与数据库SQL进行链接,实现网站登录和注册功能。 首先,在JavaWeb实现与数据库SQL的链接需要使用JDBC(Java Database Connectivity)技术,这是Java访问数据库的基础框架。要使用JDBC,需要引入数据库的驱动程序,例如MySQL的驱动程序为com.mysql.jdbc.Driver。 实现网站登录和注册功能需要使用到SQL语句,例如可以使用SELECT语句查询用户名和密码是否正确,使用INSERT语句将注册信息插入到数据库中。 在Java代码中,需要先加载MySQL的驱动程序,然后使用DriverManager.getConnection()方法与数据库进行链接,最后使用Statement执行SQL语句。例如: Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection( "jdbc:mysql://localhost:3306/test?useUnicode=true&characet=utf-8", "root", "root"); Statement stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM user WHERE username='xxx' AND password='xxx'"); // 处理结果集 rs.close(); stmt.close(); conn.close(); 在JSP页面中,可以使用JSTL标签库和EL表达式获取数据库中的数据。例如: <sql:setDataSource var="dataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/test" user="root" password="root"/> <sql:query var="result" dataSource="${dataSource}"> SELECT * FROM user WHERE username='xxx' AND password='xxx' </sql:query> <c:forEach var="row" items="${result.rows}"> <c:out value="${row.username}"/> </c:forEach> 通过以上方法实现与数据库SQL链接网站登录和注册功能,可以使得网站更加安全、稳定和高效。同时,这也是JavaWeb开发中非常基础和常用的技术,需要仔细学习和掌握。 ### 回答3: JavaWeb 和数据库 SQL 是构建 Web 应用程序的基础技术。JavaWeb 是运行在 Java 虚拟机上的 Web 应用程序的开发环境,包括 Servlet、JSP、JavaBean 等技术。数据库 SQL 是数据存储和管理的技术,主要用于存储和处理应用程序的数据。 在实现网站的登录和注册功能时,JavaWeb 和数据库 SQL 的链接至关重要。我们可以通过如下几个步骤来实现: 1.设计数据库:首先要设计一个合适的数据库,在数据库中设计表来存储用户信息,如用户名称、密码等。 2.建立链接:通过 JDBC(Java 数据库连接)技术,建立 JavaWeb 和数据库 SQL 的链接。JDBC 是 Java 用来操作各种关系型数据库的 API,提供各种库的连接、创建、执行 SQL 命令等功能。 3.实现注册功能:在用户注册时,将用户输入的信息存储到数据库中。具体实现方法为:通过表单获取用户输入的信息,将信息转换成 SQL 语句,执行 SQL 语句将数据存储到数据库中。 4.实现登录功能:在用户登录时,需要验证用户输入的用户名和密码是否匹配。具体实现方法为:通过表单获取用户输入的用户名和密码,将其与数据库中存储的用户信息进行比对,若用户名和密码匹配,则用户登录成功;若不匹配,则登录失败。 以上是 JavaWeb 和数据库 SQL 链接实现网站登录和注册功能的基本步骤,但具体实现还需要考虑很多细节问题,如代码安全、用户体验等方面的问题。因此,在实现这些功能时,我们要仔细考虑各种可能出现的问题,保证应用程序的质量和稳定性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值