网站首页 新闻首页 网页设计图形动画软件编程网站开发办公软件操作系统数据库网络技术认证考试范文资料黑客攻防 书籍教程 进入论坛

Ajax操作数据库

http://www.diybl.com/ 2008-4-1  网络 点击:  [ 评论 ]
文章搜索:    【点击打包该文章】

Ajax好像只能读取服务器,包括数据库的数据,可是要改变它们,似乎不可以,或者很难,但是我不清楚哦。我定义两个按钮,一个直接用submit提交,一个用Ajax向服务器端发送请求,前者可以修改数据库的内容,并显示出来,后者只能读取,而不能修改的。在我经过反复测试之前好像是这个样子的。后来才发现不是,用Ajax与服务器通讯也可以修改数据库里的数据的。我做了一个小小的测验,现在把源代码放上来。

客户端只编写一个getData.jsp:

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>getData(From:网络大本营 Http://www.QQview.com)</title>
<script language="javascript" type="text/javascript">
var xmlHttp;
function createXMLHttpRequest() {
 if (window.ActiveXObject) {
  xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  //alert("Microsoft.XMLHTTP");
 }
 else if (window.XMLHttpRequest) {
  xmlHttp = new XMLHttpRequest();  
  //alert("XMLHttpRequest");            
 }
}
function ajaxQueryData(){
 createXMLHttpRequest();
 var url = "//java_tut/ValidationServlet";//服务端Servlet,操作数据库的,插入语句暂时在Servlet里指定
    xmlHttp.open("POST", url, true);
    xmlHttp.onreadystatechange = callback; //callback方法用来显示返回信息的
 xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    xmlHttp.send(null);
}

function callback(){
  if (xmlHttp.readyState == 4) {
  if(xmlHttp.status == 200) {
   var mes=xmlHttp.responseText;
   document.getElementById("result").innerHTML=mes;
        }else{
   alert("No found");
        }
  }else{
   document.getElementById("result").innerHTML = "正在与系统通讯,请稍候...";
  }
}
</script>
</head>

<body>
<form action="java_tut/ValidationServlet" method="post">
<input type="submit" value="queryData" />
<input type="button" onclick="ajaxQueryData()" value="ajaxQueryData" />
</form>
<div id="result">
</div>
</body>
</html>

服务器端ValidationServlet .java

package ajaxbook.chap4;
import java.io.*;
import java.sql.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
import ajaxbook.chap4.MySqlConn; //引入自定义的数据库操作类
import ajaxbook.chap4.CurrentTime;
public class ValidationServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException{
        PrintWriter out = response.getWriter();//send response to client
        response.setContentType("text/html");
       
        try{
          MySqlConn mySqlConn = new  MySqlConn();
          //for(int i=6;i<50;i++){//批插入
           CurrentTime currentTime = new CurrentTime();
           String sqlInsert = "insert into member values(''bbjs100'',''111111'',''m'',''pwdQ'',''pwdA'',''swimming'',''"+currentTime.getCurrentTime()+"'')"; //静态插入数据需要每次都修改主
           int row = mySqlConn.getStatement().executeUpdate(sqlInsert); //insert
          //}
         
          //out.println("<h3>insert success</h3>");//这几行为修改用
          //String sqlUpdate = "update member set password=''222222'' where username=''bbjs1''";
          //int row = mySqlConn.getStatement().executeUpdate(sqlUpdate);
          //out.println("<h3>update success</h3>");


          String sqlQuery = "select * from member order by opertime";
          ResultSet rs = mySqlConn.getResultSet(sqlQuery);
          out.println("<table border=1><tr><th>username</th><th>password</th><th>gender</th><th>pwdQuestion</th><th>pwdAnswer</th><th>hobbies</th><th>operTime</th>");
            while(rs.next())
   {//循环显示记录
    out.println("<tr>");
    out.println("<td>"+rs.getString("username")+"</td>");
    out.println("<td>"+rs.getString("password")+"</td>");
  

文章整理:DIY部落 http://www.diybl.com (本站)   【点击打包该文章】
[1] [2]
如果图片或页面不能正常显示请点击这里 站内搜索:   
上一篇文章:构建SOA架构(笔记)
下一篇文章:Java多线程编程基础

文章评论

请您留言