ajax和mysql实时读取数据库_ajax 动态获取数据库中的值

本文介绍了如何使用Ajax实现动态获取MySQL数据库中的数据。当输入框内容长度大于1时,通过Ajax发送请求,后台通过SpringMVC接收并查询匹配的数据库记录,然后将结果显示在前端。文章涉及前端jQuery事件监听、Ajax异步请求、数据处理及响应,以及后台Java处理和数据库连接操作。
摘要由CSDN通过智能技术生成

功能简介:  在一个输入框中输入内容 ,当内容长度>1时向后发送ajax   从数据库中获取有关文本框中的内容在前台显示, 前台设计一些点击事件,以及jquery的应用

注意:

request.getParameter("postData").trim() 放在判断之前可能会空指针异常 如果前面的为null null.trim() 就会报错

如果没带参数直接访问也会报空指针的错误

1   使用了springmvc  中的requestmapping注解  故 先附上 配置文件

web.xml配置:

springDispatcherServlet

org.springframework.web.servlet.DispatcherServlet

contextConfigLocation

classpath:springmvc.xml

1

springDispatcherServlet

/

springmvc.xml配置如下:

前台页面如下:

pageEncoding="UTF-8"%>

Insert title here

input[name]{

width:500px;

height: 20px;

align-self: center;

vertical-align:middel;

margin-left:300px;

}

#div1{

width: 500px;

height: 230px;

border: 1px solid black;

list-style:none;

margin-left:300px;

display: none;

}

.mouseOver{

background-color: red;

}

北京天上

dasf

$("#sousuo").focus();

$("#sousuo").blur(function(){

$("#div1").hide(1000);

})

$(document).ready(function(){

$("#sousuo").bind("keyup",function(){

var $inpu=$("#sousuo").val();

if($inpu.length>1){

//alert($inpu);

$.ajax({

async : false,

cache : false,

type : 'POST',

url : '/ajax_jso/ad',

dataType : "json",

data : {"postData":$inpu},

error : function() {

alert('请求失败 ');

},

success : function(data) {

/* */

$("li").text("");

for(var i=0;i

/* . */

var $li = $("

");

$li.text(data[i]);

$("#div1").append($li);

}

}

});

$("#div1").show(1000)

//setTimeout(,5000)

}

$("li").mouseover(function(){

$("li").removeClass();

$(this).addClass("mouseOver");

});

$("li").click(function(){

$("#sousuo").val($(this).text());

})

});

});

后台接受请求的代码如下:

package com.rl.util;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.ArrayList;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.ResponseBody;

import com.google.gson.Gson;

import com.google.gson.GsonBuilder;

import net.sf.json.JSONArray;

@Controller

public class Control {

@RequestMapping("/ad")

@ResponseBody

public String getList(HttpServletRequest request) {

//HttpServletRequest request= ServletActionContext.getRequest();

List list=new ArrayList<>();

Gson gson2 = new GsonBuilder().enableComplexMapKeySerialization().create();

try {

Class.forName("com.mysql.jdbc.Driver");// 导入驱动(jar包)

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

String name = "";

Connection conn = null;

try {

conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost:3306/xxff", "root", "123456");// 建立连接

} catch (SQLException e) {

e.printStackTrace();

}

// String sql = "select name,email,dob from student";//建立SQL语句

System.out.println( request.getParameter("postData"));

String postData = request.getParameter("postData");

if(postData==null){

System.out.println("null "+"postData");

}

else{

postData = postData.trim();

System.out.println("TrubleShooting.java timestap = "+postData);

String sql = "SELECT login_name FROM tab_account WHERE login_name LIKE '%"

+ ""

+postData+ "%'";//where login_name like '%postData%'

/*List> list = new ArrayList<>();

Map map = new HashMap<>();

*/

try {

Statement stmt = (Statement) conn.createStatement();

ResultSet rs = stmt.executeQuery(sql);

// cursor

while (rs.next()) {

name = rs.getString(1);

//list.add(name);

/*

* String email = rs.getString(2); String dob = rs.getString(3);

*/

//System.out.println(name/* +" , "+email+" , "+dob */);

System.out.println(name);

//map.put("name", name);

list.add(name);

//list转成json

}

} catch (SQLException e) {

e.printStackTrace();

} finally {

if (conn != null)

try {

conn.close();// 关闭连接

} catch (SQLException e) {

e.printStackTrace();

}

}

}

String json=JSONArray.fromObject(list).toString();

JSONArray jsonArray = JSONArray.fromObject(json);

//List list2 = (List) JSONArray.toCollection(jsonArray);

return json;

}

}

jquery中的ajax方法参数的用法和他的含义:

1.url:

要求为String类型的参数,(默认为当前页地址)发送请求的地址。

2.type:

要求为String类型的参数,请求方式(post或get)默认为get。注意其他http请求方法,例如put和delete也可以使用,但仅部分浏览器支持。

3.timeout:

要求为Number类型的参数,设置请求超时时间(毫秒)。此设置将覆盖$.ajaxSetup()方法的全局设置。

4.async:

要求为Boolean类型的参数,默认设置为true,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为false。注意,同步请求将锁住浏览器,用户其他操作必须等待请求完成才可以执行。

5.cache:

要求为Boolean类型的参数,默认为true(当dataType为script时,默认为false),设置为false将不会从浏览器缓存中加载请求信息。

6.data:

要求为Object或String类型的参数,发送到服务器的数据。如果已经不是字符串,将自动转换为字符串格式。get请求中将附加在url后。防止这种自动转换,可以查看  processData(防止自动转换)选项。对象必须为key/value格式,例如{foo1:"bar1",foo2:"bar2"}转换为&foo1=bar1&foo2=bar2。如果是数组,JQuery将自动为不同值对应同一个名称。例如{foo:["bar1","bar2"]}转换为&foo=bar1&foo=bar2。

7.dataType:

要求为String类型的参数,预期服务器返回的数据类型。如果不指定,JQuery将自动根据http包mime信息返回responseXML或responseText,并作为回调函数参数传递。可用的类型如下:

xml:返回XML文档,可用JQuery处理。

html:返回纯文本HTML信息;包含的script标签会在插入DOM时执行。

script:返回纯文本JavaScript代码。不会自动缓存结果。除非设置了cache参数。注意在远程请求时(不在同一个域下),所有post请求都将转为get请求。

json:返回JSON数据。

jsonp:JSONP格式。使用SONP形式调用函数时,例如myurl?callback=?,JQuery将自动替换后一个“?”为正确的函数名,以执行回调函数。

text:返回纯文本字符串。

8.contentType:

要求为String类型的参数,当发送信息至服务器时,内容编码类型默认为"application/x-www-form-urlencoded"。该默认值适合大多数应用场合。

9.success:

要求为Function类型的参数,请求成功后调用的回调函数,有两个参数。

(1)由服务器返回,并根据dataType参数进行处理后的数据。

(2)描述状态的字符串。

function(data, textStatus){

//data可能是xmlDoc、jsonObj、html、text等等

this;  //调用本次ajax请求时传递的options参数

}

10.error:

要求为Function类型的参数,请求失败时被调用的函数。该函数有3个参数,即XMLHttpRequest对象、错误信息、捕获的错误对象(可选)。ajax事件函数如下:

function(XMLHttpRequest, textStatus, errorThrown){

//通常情况下textStatus和errorThrown只有其中一个包含信息

this;   //调用本次ajax请求时传递的options参数

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值