如何自动读取数据库信息配置化和读取中的信息,这里应该如何写

从数据库读取数据后将其输出成html标签的三种方法
&更新时间:日 17:39:00 & 投稿:whsnow
需要输出成html标签时编译器却自动帮我们输出成字符串,这该怎么办?下面有个三个解决方法,一一测试便知其效果是如何
也许很多人从数据库中读的数据是不需要数据成html标签的,但是也许有一天你们会发现当我们需要输出成html标签时编译器却自动帮我们输出成字符串了这是我们可以这样来
最常用的方法,使用JS或JQ
$("#div").html("&span&我是HTML代码&/span&");
var dobj=document.getElementById("div");
dobj.innerHTML = "&span&我是HTML代码&/span&";
当你发现从数据库读的数据用上面两种方法都不行时可以使用它试试
$("#div").html(“@Html.Raw(我是数据库中的HTML代码)”);
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具&&&&&&&&&&&&&&&&&&
posts - 8,comments - 0,trackbacks - 0
刚走上Java的道路,希望和每个大神一起交流学习!今天因为一个项目就个人实现了一个小型的自动滚动界面。具体的内容如下:
1 &%@ page language="java" contentType="text/ charset=UTF-8"
pageEncoding="UTF-8"%&
3 &%@ page import="java.sql.*" %&
5 //获取数据库的地址,端口号,数据库名,用户名,密码还有使用的编码
6 String url = "jdbc:mysql://localhost:3306/test?user=root&password=123456&useUnicode=true&characterEncoding=UTF8";
Class.forName("com.mysql.jdbc.Driver");//加载数据库驱动
Connection conn = DriverManager.getConnection(url);//连接数据库
Statement st = conn.createStatement();//使用Statement对象获取sql语句
String sql = "select * from meeting1";
ResultSet rs = st.executeQuery(sql);//调用sql语句执行statement.executeQuery查询
15 &!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&
18 &meta http-equiv="Content-Type" content="text/ charset=UTF-8" /&
19 &title&会议室的安排(会议数据库信息在jsp中显示,会议信息实现自动滚动)&/title&
20 &style type="text/css"&
22 .showdiv{
23 height: 400px;
24 width: 300px;
25 overflow-y:scroll;
26 background-color: #FFFFFF;
27 position: absolute;
30 .biaoti{
31 position: absolute;
32 margin-top:0;
33 margin-left: 20px;
36 .biaoshi{
37 margin-left: 20px;
38 margin-top: 30px;
39 line-height: 0px;
41 &/style&
42 &/head&
45 &div id="show" class="showdiv"&
47 &h3 class="biaoti"&会议室安排&/h3&
&% while(rs.next()){
/* ResultSet 对象具有指向其当前数据行的光标。最初,光标被置于第一行之前。next 方法将光标移动到下一行;因为该方法在 ResultSet 对象没有下一行时返回 false,所以可以在 while 循环中使用它来迭代结果集*/
/*光标向前移动一位后,发现这个位置有对象,那么rs.next 就返回true,否则返回false*/
/*ResultSet
中获取数据有两种方式,一种是通过列序号getString(1),一种通过字段名getString("name")两种方式,都可以通过getString 来通用的取数据 */
/* next 相当于指针 ,它的起始位置是在结果集的第一条数据之前的,而不是正指着第一条数据本身 ,循环条件下执行一次后 才指向第一条数据 ,同理 当指到最后一条数据再执行一次后 它的位置是最后一条数据的下方 ,next()相当于指针一样,每读取一条,它就会自动向下移动*/%&
&p class="biaoshi"&主题:&span id="theme"&&% out.print(rs.getObject("theme")); %&&/span& &/p&
&p class="biaoshi"&日期:&span id="dates"&&% out.print(rs.getObject("dates")); %&&/span& &/p&
&p class="biaoshi"&时间:&span id="times"&&% out.print(rs.getObject("times")); %&&/span& &/p&
&p class="biaoshi"&会议室:&span id="boardroom"&&% out.print(rs.getObject("boardroom")); %&&/span& &/p&
&p class="biaoshi"&联系人:&span id="contacts"&&% out.print(rs.getObject("contacts")); %&&/span& &/p&
&p class="biaoshi"&使用部门:&span id="department"&&% out.print(rs.getObject("department")); %&&/span& &/p&
conn.close();//释放connection的资源
rs.close();//释放ResultSet的资源
st.close();//释放Statement的资源
71 &/body&
72 &script type="text/javascript" src="js/meeting.js"&&/script&
73 &/html&
以上是一个显示的jsp&里面包含的只是简单的div和&p&等标签!其实现阶段我也只是能在jsp直接和数据库做连接,对于其他方案还需大神们做出指导。因为我个人完全是还不知道其他方案呢。
最后就是一个自动滚动的js,代码如下:
1 /*函数startmarquee的参数:
1h:文字一次滚动的距离或高度
speed:滚动的速度
delay:滚动停顿的时间间隔
6 function startmarquee(lh, speed, delay) {
var p = false;
var oHeight = 400;//div的高度 
var o = document.getElementById("show"); //获取文档中的滚动区域对象,赋值给o
var preTop = 0;
o.scrollTop = 0;//文字内容顶端与滚动区域顶端的距离,初始值为0
function start() {
t = setInterval(scrolling, speed); /*setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。setInterval() 方法会不停地调用函数,直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。;每隔一段时间,setInterval便会执行一次scrolling函数;speed数值越大,滚动时间间隔越大,滚动速度越慢;*/
if(!p){o.scrollTop += 1;}//滚动的停止或开始,取决于p传过来的布尔值
function scrolling() {
if (o.scrollTop % lh != 0
&& o.scrollTop % (o.scrollHeight - oHeight - 1) != 0) {
/*如果不被整除,即上一次移动的高度达不到1h,则内容会继续滚动*/
preTop = o.scrollT
o.scrollTop += 1;
if (preTop &= o.scrollHeight || preTop == o.scrollTop) {
o.scrollTop = 0;
clearInterval(t); //清除t,暂停滚动
setTimeout(start, delay); //经过delay间隔后,启动start()再连续滚动
setTimeout(start, delay); //第一次启动滚动,setTimeout会在一定的时间后执行函数start(),且只执行一次
window.onload=function(){
startmarquee(20, 20, 1500); //startmarquee(一次滚动高度,速度,停留时间); 
其实对于这当中的一个参数&preTop完全不知道是怎么使用的!
整个小型界面的效果有一部分来自互联网,希望可以和各位大神探讨探讨~
阅读(...) 评论()以前的一个项目,需求是根据当前用户上传的经纬度坐标,在数据库几十万万条数据中查询出符合“周围3公里范围内”条件的坐标点。  所以,我首先想到的是,对每条数据去进行遍历,跟数据库中的每个点进行距离计算,当距离小于3公里时候,认为匹配成功。经测试,这样做确实能得到结果,但是效率极其低下,因为每条数据都得去和数据库中的几十万条数据进行比对,其耗费的时间可想而知。对于这种情况,是用户所无法忍受的。  后来利用正方形的四个点,去和用户上传的经纬度进行比较。由此,问题转向了,如何计算正方形四个点经纬度的问题!  无意中看到一个的帖子,里面使用python实现了计算四个点经纬度的方法。  其实现原理也是很相似的,先计算出当前点周围的正方形的四个点,然后使用经纬度直接去数据库匹配数据假设已知点的经纬度分别为lng , lat先实现经度范围的查询,在haversin公式中令φ1 = φ2,可得:**
* 计算某个经纬度的周围某段距离的正方形的四个点
radius 地球半径 平均6371km
lng float 经度
lat float 纬度
distance float 该点所在圆的半径,该圆与此正方形内切,默认值为1千米
* @return array 正方形的四个点的经纬度坐标
public function returnSquarePoint($lng, $lat, $distance = 1, $radius = 6371)
$dlng = 2 * asin(sin($distance / (2 * $radius)) / cos(deg2rad($lat)));
$dlng = rad2deg($dlng);
$dlat = $distance / $
$dlat = rad2deg($dlat);
return array(
'left-top' =& array(
'lat' =& $lat + $dlat,
'lng' =& $lng - $dlng
'right-top' =& array(
'lat' =& $lat + $dlat,
'lng' =& $lng + $dlng
'left-bottom' =& array(
'lat' =& $lat - $dlat,
'lng' =& $lng - $dlng
'right-bottom' =& array(
'lat' =& $lat - $dlat,
'lng' =& $lng + $dlng
}在lat和lng上建立一个联合索引后,使用此项查询,运行效率飞涨。上面可以取出范围内的数据信息,如果单独需要最近的信息的话:获取两点之间的距离/** 其中一个经纬度是自动定位获取的经纬度 */
function getDistanceBetweenPointsNew( $latitude1 , $longitude1 , $latitude2 , $longitude2 )
$theta = $longitude1 - $longitude2;
$miles = (sin(deg2rad($latitude1)) * sin(deg2rad($latitude2))) + (cos(deg2rad($latitude1)) * cos(deg2rad($latitude2)) * cos(deg2rad($theta)));
$miles = acos($miles);
$miles = rad2deg($miles);
$miles = $miles * 60 * 1.1515;
$feet = $miles * 5280;
$yards = $feet / 3;
$kilometers = $miles * 1.609344;
$meters = $kilometers * 1000;
return compact('miles','feet','yards','kilometers','meters');
$point1 = array('lat' =& 40.770623, 'long' =& -73.964367);
$point2 = array('lat' =& 40.758224, 'long' =& -73.917404);
$distance = getDistanceBetweenPointsNew($point1['lat'], $point1['long'], $point2['lat'], $point2['long']);
foreach ($distance as $unit =& $value)
echo $unit.': '.number_format($value,4).'&br /&';
/** 正常情况只需要根据公里参数对比即可 */
百度API获取位置范围内的周边服务
百度API获取位置范围内的周边服务, 自动定位搜索周边的景区,小吃等
Android 高德地图的定位,周边搜索
高德地图定位于搜索
基于HTML5定位使用PHP+MySQL搜索附近的人并AJAX返回结果
var gotrue =
$(document).ready(function(){
loaddata();
selenium全自动获取控件定位方式,完美解决ui频繁变动 模块
抱歉搁置了这么久。
现在开始:
1。对于任何控件,我先把其放在了一张表中,类似于对象库的概念,表中存储了该元素的主键(我们以后只根据主键去调用元素),元素的源码(直接在浏览器中复制到表即可,程序会...
通过经纬度确定一定范围内哪些门店离客户最近,如1000米内有哪些最近的某某门店
最近公司需要通过客户的收货地址查询离客户地址最近有哪些门店,客户可以去最近的门店取货.
那我们是如何计算出客户地址1000米内有哪些门店呢?我们可以通过下面几部计算出来.
1.获取客户地址的经纬度,我...
通过区域坐标获取sqlserver中的geometry 的区域范围内的坐标
使用SQL语句查询经纬度之间的距离和一定范围内的数据
declare @a decimal(18,7) --经度
declare @b decimal(18,7) --维度
set @a=119.921001
set @b=35.943285
在数据库中根据经纬度查找数据中所有附近的经纬度点
根据当前所在的坐标点也即经纬度,查找数据库中附近5公里或10公里附近的所有信息的实现,经过查找资料,原来是我高二学的,就是求弦长,数学忘完了,没想到数学还这么有用,数学啊 真是用途太大了。
用到的什...
没有更多推荐了,如何设置让表中的某一字段自动获取数据库中另一张表的字段值
[问题点数:20分]
本版专家分:0
CSDN今日推荐
本版专家分:175059
2008年12月 其他数据库开发大版内专家分月排行榜第一2008年9月 其他数据库开发大版内专家分月排行榜第一
2014年7月 其他数据库开发大版内专家分月排行榜第二2014年3月 其他数据库开发大版内专家分月排行榜第二2013年7月 其他数据库开发大版内专家分月排行榜第二2013年4月 其他数据库开发大版内专家分月排行榜第二2012年3月 其他数据库开发大版内专家分月排行榜第二2011年8月 其他数据库开发大版内专家分月排行榜第二2011年7月 其他数据库开发大版内专家分月排行榜第二2009年11月 其他数据库开发大版内专家分月排行榜第二2009年7月 其他数据库开发大版内专家分月排行榜第二2009年6月 其他数据库开发大版内专家分月排行榜第二2009年5月 其他数据库开发大版内专家分月排行榜第二2009年4月 其他数据库开发大版内专家分月排行榜第二2009年3月 其他数据库开发大版内专家分月排行榜第二2009年1月 其他数据库开发大版内专家分月排行榜第二2008年10月 其他数据库开发大版内专家分月排行榜第二2008年8月 其他数据库开发大版内专家分月排行榜第二2003年9月 Delphi大版内专家分月排行榜第二
2014年4月 其他数据库开发大版内专家分月排行榜第三2013年10月 其他数据库开发大版内专家分月排行榜第三2013年9月 其他数据库开发大版内专家分月排行榜第三2013年6月 其他数据库开发大版内专家分月排行榜第三2012年12月 其他数据库开发大版内专家分月排行榜第三2012年11月 其他数据库开发大版内专家分月排行榜第三2012年10月 其他数据库开发大版内专家分月排行榜第三2012年9月 其他数据库开发大版内专家分月排行榜第三2012年1月 其他数据库开发大版内专家分月排行榜第三2011年11月 其他数据库开发大版内专家分月排行榜第三2011年9月 其他数据库开发大版内专家分月排行榜第三2011年6月 其他数据库开发大版内专家分月排行榜第三2011年5月 其他数据库开发大版内专家分月排行榜第三2011年4月 其他数据库开发大版内专家分月排行榜第三2011年3月 其他数据库开发大版内专家分月排行榜第三2010年11月 其他数据库开发大版内专家分月排行榜第三2010年4月 其他数据库开发大版内专家分月排行榜第三2010年1月 其他数据库开发大版内专家分月排行榜第三2009年12月 其他数据库开发大版内专家分月排行榜第三2009年2月 其他数据库开发大版内专家分月排行榜第三2008年7月 其他数据库开发大版内专家分月排行榜第三2008年6月 其他数据库开发大版内专家分月排行榜第三2008年1月 其他数据库开发大版内专家分月排行榜第三2007年12月 其他数据库开发大版内专家分月排行榜第三2003年12月 Delphi大版内专家分月排行榜第三2003年10月 Delphi大版内专家分月排行榜第三
本版专家分:471013
2012年 荣获名人称号
2010年 总版技术专家分年内排行榜第二
2009年 总版技术专家分年内排行榜第三
2013年 总版技术专家分年内排行榜第十2011年 总版技术专家分年内排行榜第七
本版专家分:5
匿名用户不能发表回复!
其他相关推荐我的页面元素的相关属性是保存在数据库里的,需要在执行测试代码时读取出来,当时考虑用C#写dll,查了查JNative,只支持32位系统下,dll也需要在32位系统下编译生成,所以放弃调用dll方式(不知道我查的对不对),所以采用JDBC方式。
数据库安装就不多说了,我本地64位计算机,jdk1.8,Sql Server 2008R2
一、下载Microsoft JDBC Driver 6.0
或者 点 ,这个就是官网下载下来的
二、配置CLASSPATH
将下载文件解压,我只留下了sqljdbc4.jar
放在了C:\sqljdbc4目录下面(放在那里无所谓,关键是在配置CLASSPATH时指定好路径)。
环境变量配置:新建或者修改已有CLASSPATH,值:C:\sqljdbc4;
三、复制包到相关目录下
sqljdbc4.jar文件拷到:
E:\Program Files\Java\jdk1.8.0_05\jre\lib\ext
E:\Program Files\Java\jre8\lib\ext
目录下,分别拷贝一份(看你的安装目录了)。
到此,配置已经结束。
使用JDBC连接数据库
连接数据库代码:
import java.sql.*;
public class ReadDBslj {
//描述数据库驱动类型
String driverName;
//描述数据库连接地址
String dbURL;
//描述数据库连接用户名
String userName;
//描述数据库连接密码
String userPwd;
Connection dbConn;
public void connect(){
//设置数据库driver,采用数据库是SQL server
driverName="com.microsoft.sqlserver.jdbc.SQLServerDriver";
//设置数据库连接地址
dbURL="jdbc:sqlserver://localhost:1433;DatabaseName=Selenium_test";
//设置连接数据库用户名和密码
userName="sa";
userPwd="sa";
//载入驱动
Class.forName(driverName);
//连接数据库
dbConn=DriverManager.getConnection(dbURL,userName,userPwd);
System.out.println("连接数据库成功");
catch(Exception e)
e.printStackTrace();
System.out.print("连接失败");
//关闭连接
public void CloseConn()
dbConn.close();
dbConn = null;
} catch (Exception ex) {
System.out.println(ex.getMessage());
dbConn=null;
存储页面元素的表结构如下图:
ID:自增长的int,是主键
Name:页面元素的值(比如:登录名框存成Login_name,密码存成Login_password什么的,自己要能认得)
Value:能定位到元素的具体值(比如://*[='pwdtd'])
Type:通过什么方式定位元素(比如:xpath,id等)
[Desc]:对元素的备注描述
status:状态,锁定或正常使用
createtime:创建时间getdate(),习惯了,我都爱带上这个字段
建库脚本如下:
USE [master]
CREATE DATABASE [Selenium_test] ON
( NAME = N'Selenium_test', FILENAME = N'G:\temp\Selenium_test.mdf' , SIZE = 6072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
( NAME = N'Selenium_test_log', FILENAME = N'G:\temp\Selenium_test_log.ldf' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
use Selenium_test
CREATE TABLE [dbo].[Tb_Locator](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Name] [nvarchar](50) NOT NULL,
[Value] [nvarchar](200) NOT NULL,
[Type] [nvarchar](50) NOT NULL,
[Desc] [nvarchar](50) NOT NULL,
[status] [int] NOT NULL,
[createtime] [datetime] NOT NULL,
CONSTRAINT [PK_Tb_Locator] PRIMARY KEY CLUSTERED
)WITH (PAD_INDEX
= OFF, STATISTICS_NORECOMPUTE
= OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS
= ON, ALLOW_PAGE_LOCKS
= ON) ON [PRIMARY]
) ON [PRIMARY]
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'自增编号,主键' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Tb_Locator',
@level2type=N'COLUMN',@level2name=N'Id'
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'元素标题' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Tb_Locator',
@level2type=N'COLUMN',@level2name=N'Name'
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'查找元素类型' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Tb_Locator',
@level2type=N'COLUMN',@level2name=N'Type'
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'元素描述' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Tb_Locator',
@level2type=N'COLUMN',@level2name=N'Desc'
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'元素状态,0正常,1锁定' , @level0type=N'SCHEMA',@level0name=N'dbo',
@level1type=N'TABLE',@level1name=N'Tb_Locator', @level2type=N'COLUMN',@level2name=N'status'
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'创建时间,系统自动生成' , @level0type=N'SCHEMA',@level0name=N'dbo',
@level1type=N'TABLE',@level1name=N'Tb_Locator', @level2type=N'COLUMN',@level2name=N'createtime'
ALTER TABLE [dbo].[Tb_Locator] ADD
CONSTRAINT [DF_Tb_Locator_status]
DEFAULT ((0)) FOR [status]
ALTER TABLE [dbo].[Tb_Locator] ADD
CONSTRAINT [DF_Tb_Locator_createtime]
DEFAULT (getdate()) FOR [createtime]
读取数据库元素代码,也在上面的类里面:
public String[][] Readelements() throws SQLException{
//连接数据库
this.connect();
//将结果存在一个可以自由移动游标的ResultSet中,再处理
Statement st =dbConn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
//执行查询语句,结果放在resset中,我只查询了状态是正常的元素
ResultSet resset = st.executeQuery("select *
from tb_Locator where [status]=0");
//计算行数
int rowCount = 0;
while(resset.next()){
rowCount++;
//用于遍历数组行,便于赋值
//将页面元素存储在elements中,包括:编号,名称,值,类型,描述四个值
elements[][]=new String[rowCount][5];
//将指针放在第一条数据之前
resset.beforeFirst();
//遍历resset结果集,将对应列中的值,存在元素数组中
while(resset.next()) {
elements[i][0]=resset.getString("id");
elements[i][1]=resset.getString("name");
elements[i][2]=resset.getString("value");
elements[i][3]=resset.getString("type");
elements[i][4]=resset.getString("desc");
//关闭数据库连接
this.CloseConn();
//返回元素数组
return elements;
基本上就是在个样,缺点:我现在遍历了两次读取过来的结果集,一次是计算行数rowCount,用于声明元素数组elements中的行,然后又遍历一次,给数组赋值,不知道有没有其他更好的办法
「原创声明:保留所有权利,禁止转载」
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
中提及了此贴
后方可回复, 如果你还没有账号请点击这里 。
第 11929 位会员 /
共收到 0 条回复}

我要回帖

更多关于 数据库信息配置化和读取 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信