AJAX 自学练习 无刷新提交并修改数据库数据并显示

2016-02-19 09:31 37 1 收藏

今天图老师小编给大家精心推荐个AJAX 自学练习 无刷新提交并修改数据库数据并显示教程,一起来看看过程究竟如何进行吧!喜欢还请点个赞哦~

【 tulaoshi.com - Web开发 】

request.jsp页面中有rocarsId,和ccrn两个text。
对应在数据库中表格 rocars表的msg_id,ccrn两个字段。现在要实现在界面上修改ccrn的值,ajax提交到response.jsp页面,并调用RocarsEntiy.updateCcrn方法更新对应的ccrn,最后无刷新显示
代码:
request.jsp
代码如下:

%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%
!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"
html
head
meta http-equiv="Content-Type" content="text/html; charset=UTF-8"
titleInsert title here/title
script language="javascript"!--
function GetXmlHttpObject(){
    var xmlHttp = null;
    try{
        xmlHttp = new XMLHttpRequest();
    }catch(e){
        try{
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        }catch(e){
            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    return xmlHttp;

}
function updateCcrn(rocarsId,ccrn){
alert(rocarsId)
alert(ccrn)
    xmlHttp = GetXmlHttpObject();
    if(xmlHttp == null){
        alert ("you browser don't support the ajax");
         return;
    }
    var url = "./response.jsp";
    url = url + "?rocarsId="+ rocarsId;
    url = url + "&ccrn="+ ccrn;
    url = url + "&sid ="+ Math.random();
    xmlHttp.onreadystatechange = stateChanged;
    xmlHttp.open("GET", url, true);
    xmlHttp.send(null);
}
function getCcrn(str){
    xmlHttp = GetXmlHttpObject();
    if(xmlHttp == null){
        alert ("you browser don't support the ajax");
         return;

    }
    var url = "./response.jsp";
    url = url + "?q="+ str;
    url = url + "&sid ="+ Math.random();
    xmlHttp.onreadystatechange = stateChanged;
    xmlHttp.open("GET", url, true);
    xmlHttp.send(null);
}
function stateChanged()
{
    if(xmlHttp.readyState==4)
    {
        document.getElementById("rocarsccrn").value = xmlHttp.responseText;
    }
}
// --/script
/head
body
form name="form1" action="" method="post"
    labelrocarsId:/labelinput type="text" name="rocarsId" value="140" /
    labelccrn:/labelinput type="text" id="rocarsccrn" name="rocarsccrn" onchange="updateCcrn(document.form1.rocarsId.value,this.value)"/
/form
/body
/html

response.jsp
代码如下:

%@ page language="java" contentType="text/plain; charset=UTF-8"
pageEncoding="UTF-8"%
%@ page import="com.lwf.eus.util.*,java.util.*,com.lwf.eus.entity.*,com.lwf.eus.bean.*" %
%
    String rocarsId = request.getParameter("rocarsId");
    String ccrn = request.getParameter("ccrn");
    System.out.println("rocarsId:" + rocarsId);
    System.out.println("ccrn:" + ccrn);
    RocarsEntity.updateCcrnById(rocarsId,ccrn);
    out.print(ccrn);
%

RocarsEntity.java
代码如下:

package com.lwf.eus.entity;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Vector;
import com.lwf.eus.bean.RocarsBean;
import com.lwf.eus.util.ConnectionManager;
public class RocarsEntity {
    public static Vector getRocarsList() {
        Vector vRocars = new Vector();
        //Connection conn = ConnectionManager.getConnection();
        Connection conn = ConnectionManager.getConnectionFromDS();
        Statement st = ConnectionManager.createStatement(conn);
        String sql = "select msg_id,ccrn from rocars";
        ResultSet rs = null;
        try {
            rs = st.executeQuery(sql);
            while (rs.next()) {
                RocarsBean rocars = new RocarsBean();
                rocars.setRocarsId(rs.getString(1));
                rocars.setCcrn(rs.getString(2));
                vRocars.addElement(rocars);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if (rs != null) {
                    rs.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
            try {
                if (st != null) {
                    st.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
            try {
                if (conn != null) {
                    conn.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return vRocars;
        }

    }

    public static RocarsBean getRocarsListById(String rocarsId){
        Connection conn = ConnectionManager.getConnectionFromDS();
        Statement st = ConnectionManager.createStatement(conn);
        String sql = "select * from rocars where msg_id=" + rocarsId;
        ResultSet rs = null;
        RocarsBean rocars= null;
        try {
            rs = st.executeQuery(sql);
            rocars = new RocarsBean();
            while (rs.next()) {                
                rocars.setRocarsId(rs.getString("msg_id"));
                rocars.setCcrn(rs.getString("ccrn"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            try {
                if (rs != null) {
                    rs.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
            try {
                if (st != null) {
                    st.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
            try {
                if (conn != null) {
                    conn.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return rocars;
        }
    }
    public static void updateCcrnById(String rocarsId, String ccrn)
    {
        Connection conn = null;
        Statement stmt = null;
        try {
            conn = ConnectionManager.getConnectionFromDS();
            stmt = ConnectionManager.createStatement(conn);
            String sqlStr = "update rocars set ccrn= '"+ ccrn + "'" + "where msg_id=" + rocarsId ;
            stmt.executeUpdate(sqlStr);
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally{

            try {
                if (stmt != null) {
                    stmt.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
            try {
                if (conn != null) {
                    conn.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

ConnectionManager.java
这里可以直接使用JDBC也可以调用weblogic的数据源JNDI。
代码如下:

package com.lwf.eus.util;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.sql.DataSource;
public class ConnectionManager {
    public static Connection getConnection(){
        Connection conn = null;
        String url = "jdbc:postgresql://192.168.0.180/getseus";
        String userName = "getsdbadmin";
        String pwd = "powerdb";
        try {
            Class.forName("org.postgresql.Driver").newInstance();
            conn = DriverManager.getConnection(url,userName,pwd);
        } catch (SQLException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (InstantiationException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (Exception e){
            e.printStackTrace();
        }

        return conn;
    }

    public static Connection getConnectionFromDS(){
        Connection conn = null;
        Context ctx = null;
        try {
            ctx = new InitialContext();
            DataSource ds = (DataSource)ctx.lookup("JNDIPG");
            conn = ds.getConnection();
        } catch (NamingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        return conn;

    }

    public static Statement createStatement(Connection conn){
        Statement st = null;
            try {
                st = conn.createStatement();

            } catch (SQLException e) {
                e.printStackTrace();
            }
        return st;
    }
}

来源:https://www.tulaoshi.com/n/20160219/1591134.html

延伸阅读
数据库中的数据要最终显示给用户,就要使用数据约束控件,比如前面所使用的文本框以及VB所提供的其他普通约束数据控件,VB中还提供了多种高级约束数据控件,其中包括:高级约束数据网格控件(DBGrid)、高级约束列表控件(DBList)和高级约束组合框控件(DBCombo)。在默认的工具箱中,尚未加入这些控件,要使用它们,首先要先引用它们:右键点击工...
标签: Web开发
AJAX 可用来与数据库进行动态地通信。 AJAX 数据库实例 在下面的 AJAX 例子中,我们将演示如何使用 AJAX 技术令网页从数据库读取信息。 在下面的框中选择一个名字AJAX 实例解释 上面的实例包含了一个简单的 HTML 表单以及执行 JavaScript 的链接: htmlhead script src="selectcustomer.js"/script /headbody form 请选择一位...
(1)启动,一直到出现如图6.34所示的界面。 (2)出现如图6.35所示的界面。 (3)出现如图6.36所示的数据库选项的选项卡。 (4)出现如图6.37所示的界面。 (5)出现如图6.38所示的共享服务器模式的选项卡。 (6)切换到如图6.39所示的共享服务器模式的选项卡。 (7)返回图6.37所示界面。 (8...
标签: ASP
  聊天室是网络实时交互的最常应用之一。聊天室的制作要解决好以下问题。 1、谁在发言 2、讲给谁听 3、讲些什么 与ICQ不同,ICQ 的数据流是一对一的关系。只要解决好上面三个问题就 可以实现。 聊天室由于存在一对多、多对一、一对一等多种数据关系,因此就有一个 数据的存放问题。 ASP 聊天室的数据存放一般有三种形式: 一是用全局变量A...
标签: Web开发
尤其是在Jquery,porotype,Ext等框架流行之后,大量简化的代码可说是为程序员带来了福音, 从繁重的代码工作之中解脱出来,轻易的就可以实现过去书写复杂的功能。 不过有利有弊,到如今,习惯了使用各种框架,而很少自己书写内部源码的程序员们,还有几个记得Ajax那其实并不算复杂的基本代码呢? 今天,为了不遗忘当初的热忱,我把这基础的...

经验教程

645

收藏

17
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部