Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 715|回复: 0

Ajax json 实现 异步交互获取数据库数据

[复制链接]

该用户从未签到

发表于 2011-10-9 17:26:14 | 显示全部楼层 |阅读模式
这个例子主要  实现了数据的迁移 能在选择了数据库后能自动的将数据库中中的表名在页面上展示

运用了 Ajax动态交互

1.界面:其中的重点为javaScript 的部分主要实现了 异步交互

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>

  </head>
  <script type="text/javascript" src="js/jquery-1.4.2.min.js"></script>
  
  <body style="margin: 0 auto; text-align: center;">
<div style="margin: 0 auto;border: 1px #f4f4f4 solid;width: 800px;height: 500px;background-color:#E8F2FE; ">
  <form action="ChangeDBAction" method="post">
  <div style="background-color: #DA70D6;width: 300px;text-align: left;">
   选择数据库
     <select id="outDb" name="outDb" onChange="getNewTableName()">
      <option>Oracle10g</option>
      <option>SQL2005</option>
     </select>
  </div>
  
  <div style="margin-top: 10px;background-color: #D8BFD8;width: 300px;text-align: left;">
   导出库的IP地址<input type="text" name="ip" style="width: 100px;"/>
  </div>
  <div style="margin-top: 10px;background-color: #EE82EE;width: 300px;text-align: left;">
   请输入用户名<input type="text" name="user" style="width: 100px;"/>
  </div>
  <div style="margin-top: 10px;background-color: #DDA0DD;width: 300px;text-align: left;">
   请输入密码<input type="password" name="pwd" style="width: 100px;"/>
  </div>
  <div style="margin-top: 10px;background-color:#778899;width: 300px;text-align: left;">
   选择表<select id="tableNames" name="table" style="width: 200px;"></select>
  </div>
  <div style="margin-top: 10px;background-color: #FF00FF;width: 300px;text-align: left;">
   导入数据库
    <select name="inDb">
     <option>Oracle10g</option>
     <option>SQL2005</option>
    </select>
  </div>
  <div style="margin-top: 10px;background-color: #FF00FF;width: 300px;text-align: left;">
   导入库IP<input type="text" name="outIP" style="width:100px;"/>
  </div>
  <div style="margin-top: 10px;background-color: #FF00FF;width: 300px;text-align: left;">
   导入库名<input type="text" name="outName" style="width:100px;"/>
  </div>
  <div style="margin-top: 10px;background-color: #B0C4DE;width: 300px;">
   <input type="submit" value="导入"/>
  </div>
  </form>
</div>
  </body>
</html>
<script type="text/javascript">
$(document).ready(function(){
  getTableName();
});
function getNewTableName(){
  var obj = document.getElementById("tableNames");
  while(obj.childNodes.length){
   obj.removeChild(obj.childNodes[0]);
  }
  getTableName();
}
function getTableName(){
  var xmlhttp ;
  if(window.ActiveXObject){
   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  }else if(window.XMLHttpRequest){
   xmlhttp = new XMLHttpRequest();
  }else{
   alert("您的浏览器版本太低请更新");
  }
  if(xmlhttp!=null){
   xmlhttp.onreadystatechange = handleStateChange;
   xmlhttp.open(&quotOST","GetTableNameModel",true);
   xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
   var name= $("#outDb").val();
   xmlhttp.send("typeDb="+name);
  }
  function handleStateChange(){
   if(xmlhttp.readyState==4){
    if(xmlhttp.status==200){
     var json = eval( '('+ xmlhttp.responseText +')');
     for(var i=0;i<json.TABLES.length;i++){
      $("#tableNames").append("<option>"+json.TABLES.TABLE+"</option>");
     }     
    }
   }
  }
}
</script>



2.dao层取得数据后封装成  json 后返回到客户端 重点是 其中将数据转换成json字符串返回的操作

package com.ztf.dao;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

import org.jdom.Element;


import com.url.ajax.json.JSONObject;
import com.ztf.Idao.ITableDao;
import com.ztf.util.GetConnection;

public class GetOracleTableName implements ITableDao {

public String getAllTableName(String table) {
  
  String sql="select * from tab";
  Connection conn = null;
  Statement st = null;
  ResultSet rs = null;
  conn = GetConnection.getconn();
  List<HashMap<String,String>> list = new ArrayList<HashMap<String,String>>();
  HashMap<String,Object> result = new HashMap<String,Object>();
  try {
   st = conn.createStatement();
   rs = st.executeQuery(sql);
   while(rs.next()){
    HashMap<String,String> map = new HashMap<String,String>();
    map.put("TABLE", rs.getString(1));
    list.add(map);
   }
   result.put("TABLES", list);
  } catch (SQLException e) {
   e.printStackTrace();
  }finally{
   try {
    rs.close();
    st.close();
    conn.close();
   } catch (SQLException e) {
    e.printStackTrace();
   }
  }
  JSONObject jsonObject = new JSONObject(result);
  String json = jsonObject.toString();
  return json;
}
}


3.请求的 Servlet的代码为:

package com.ztf.model;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.jdom.Element;

import com.ztf.dao.GetOracleTableName;
import com.ztf.dao.GetSqlTableName;

public class GetTableNameModel extends HttpServlet {
public GetTableNameModel() {
  super();
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
   response.setContentType("text/html");
   PrintWriter out = response.getWriter();
   String name = request.getParameter("typeDb");
   if(name.equals("Oracle10g")){
    GetOracleTableName getName = new GetOracleTableName();
    String json = getName.getAllTableName("");
    out.print(json);
   
   
   }else if(name.equals("SQL2005")){
    GetSqlTableName getName = new GetSqlTableName();
    String json = getName.getAllTableName("");
    out.print(json);
   }
}

}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

GMT+8, 2024-6-17 03:06 , Processed in 0.378560 second(s), 52 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表