Json和Ajax
LogDao接口
package com.log.dao; import java.util.List; import com.log.Vo.LogInfoVo;
import com.log.bean.LogInfo; public interface LogDao {
//添加信息
boolean insertLog(LogInfo log);
//删除
boolean deleteLog(int id);
//更改
boolean updateLog(LogInfo log);
//查询列表
List<LogInfo> getLogList();
//根据id查询
LogInfo getLogById(int id); //获取总条数
int getLogCount();
//根据分页信息查询列表
List<LogInfoVo> getLogVoListByPage(int pageIndex,int pageSize);
//
List<LogInfoVo> getLogvoList();
}
接口实现类LogDaoImpl
package com.log.dao.impl; import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List; import com.log.Vo.LogInfoVo;
import com.log.bean.LogInfo;
import com.log.dao.LogDao;
import com.util.DBUtil; public class LogDaoImpl extends DBUtil implements LogDao { public boolean deleteLog(int id) {
boolean flag=false;
Connection conn=null;
PreparedStatement pstmt=null;
try {
conn=getConn();
String sql="delete from logInfo where ID=?";
pstmt=conn.prepareStatement(sql);
pstmt.setInt(1, id);
int rowNum=pstmt.executeUpdate();
if(rowNum==1){
flag=true;
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
closeAll(conn, pstmt, null);
}
return flag;
} public LogInfo getLogById(int id) {
LogInfo log=null;
Connection conn=null;
PreparedStatement pstmt=null;
ResultSet rs=null;
try {
conn=getConn();
pstmt=conn.prepareStatement("select * from logInfo where ID=?");
pstmt.setInt(1, id);
rs=pstmt.executeQuery();
if(rs.next()){
String title=rs.getString("logTitle");
String content=rs.getString("logContent");
String createTime=rs.getString("CreateTime");
int logId=rs.getInt("ID");
log=new LogInfo(logId,title,content,createTime);
log.setUserId(rs.getInt("userId"));
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
closeAll(conn, pstmt, rs);
}
return log;
} public List<LogInfo> getLogList() {
List<LogInfo> logList=new ArrayList<LogInfo>() ;
Connection conn=null;
Statement statement=null;
ResultSet rs=null;
try {
conn=getConn();
statement=conn.createStatement();
rs=statement.executeQuery("select * from logInfo");
while(rs.next()){
String title=rs.getString("logTitle");
String content=rs.getString("logContent");
String createTime=rs.getString("CreateTime");
int logId=rs.getInt("ID");
LogInfo log=new LogInfo(logId,title,content,createTime);
log.setUserId(rs.getInt("userId"));
logList.add(log);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
closeAll(conn, statement, rs);
}
return logList;
} public boolean insertLog(LogInfo log) {
boolean flag=false;
Connection conn=null;
PreparedStatement pstmt=null;
try {
conn=getConn();
String sql="insert into logInfo(logTitle,logContent,createTime,userId,state) values(?,?,?,?,?)";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, log.getLogTitle());
pstmt.setString(2, log.getLogContent());
pstmt.setString(3, log.getCreateTime());
pstmt.setInt(4, log.getUserId());
pstmt.setInt(5, log.getState());
int rowNum=pstmt.executeUpdate();
if(rowNum==1){
flag=true;
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
closeAll(conn, pstmt, null);
}
return flag;
} public boolean updateLog(LogInfo log) {
boolean flag=false;
Connection conn=null;
PreparedStatement pstmt=null;
try {
conn=getConn();
String sql="update logInfo set logTitle=?,logContent=?,userId=? where id=?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, log.getLogTitle());
pstmt.setString(2, log.getLogContent());
pstmt.setInt(3, log.getUserId());
pstmt.setInt(4, log.getID());
int rowNum=pstmt.executeUpdate();
if(rowNum==1){
flag=true;
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
closeAll(conn, pstmt, null);
}
return flag;
} public int getLogCount() {
int count=0;
Connection conn=null;
Statement statement=null;
ResultSet rs=null;
try {
conn=getConn();
statement=conn.createStatement();
rs=statement.executeQuery("select count(ID) as num from logInfo");
if(rs.next()){
count=rs.getInt("num");
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
closeAll(conn, statement, rs);
}
return count;
} public List<LogInfoVo> getLogVoListByPage(int pageIndex,int pageSize) {
List<LogInfoVo> logList=new ArrayList<LogInfoVo>() ;
Connection conn=null;
Statement statement=null;
ResultSet rs=null;
try {
conn=getConn();
statement=conn.createStatement();
rs=statement.executeQuery("select l.*,u.U_Name,t.num from (select top "+pageSize+" * from logInfo where " +
"ID not in (select top "+(pageIndex-1)*pageSize+" ID from logInfo)) l left join userInfo u on l.userId=u.U_ID"+
" left join (select logid,COUNT(ID) num from comment group by logId) t on l.ID=t.logId");
while(rs.next()){
String title=rs.getString("logTitle");
String content=rs.getString("logContent");
String createTime=rs.getString("CreateTime");
int logId=rs.getInt("ID");
String uname=rs.getString("U_Name");
int commentcount=rs.getInt("num");
LogInfoVo log=new LogInfoVo(logId,title,content,createTime,uname,commentcount);
log.setUserId(rs.getInt("userId"));
logList.add(log);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
closeAll(conn, statement, rs);
}
return logList;
} public List<LogInfoVo> getLogvoList(){
List<LogInfoVo> logList=new ArrayList<LogInfoVo>() ;
Connection conn=null;
Statement statement=null;
ResultSet rs=null;
try {
conn=getConn();
statement=conn.createStatement();
rs=statement.executeQuery("select l.*,u.U_Name,t.num from logInfo l left join userInfo u on l.userId=u.U_ID" +
" left join (select logid,COUNT(ID) num from comment group by logId) t on l.ID=t.logId");
while(rs.next()){
String title=rs.getString("logTitle");
String content=rs.getString("logContent");
String createTime=rs.getString("CreateTime");
int logId=rs.getInt("ID");
String uname=rs.getString("U_Name");
int commentcount=rs.getInt("num");
LogInfoVo log=new LogInfoVo(logId,title,content,createTime,uname,commentcount);
log.setUserId(rs.getInt("userId"));
logList.add(log);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
closeAll(conn, statement, rs);
}
return logList;
} }
json和ajax实现日志表的获取并用分页实现
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@page import="com.log.dao.LogDao"%>
<%@page import="com.log.dao.impl.LogDaoImpl"%>
<%@page import="com.log.Vo.LogInfoVo"%>
<%@page import="net.sf.json.JSONArray"%>
<% LogDao logDao=new LogDaoImpl();
String str=request.getParameter("pageIndex");
int newIndex=0;
if(str!=null&&!str.equals("")){
newIndex=Integer.parseInt(str);
} int count=logDao.getLogCount(); //获得数据的总条数
int pageSize=3; //每一页的数据条数
int pangCount=count%pageSize==0?(count/pageSize):(count/pageSize+1); //判断总共有多少条
if(newIndex<1){
newIndex=1;
}else if(newIndex>pangCount){
newIndex=pangCount;
}
List<LogInfoVo> logInfos=logDao.getLogVoListByPage(newIndex,pageSize); //调用logDao的getLogVoListByPage进行分页
JSONArray jsonarray=new JSONArray(); //创建json数组对象jsonarray
jsonarray.add(0,JSONArray.fromObject(logInfos)); // 把logInfos集合对象转换为json数组对象并把其加入到jsonarray数组对象中
jsonarray.add(1,newIndex); //把newIndex加入到jsonarray数组对象中
out.print(jsonarray); //输出jsonarray数组对象。
%>
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>Ajax获取用户列表</title>
<script type="text/javascript" src="js/jquery-1.7.2.js"></script>
<script type="text/javascript">
var index=1; function shouList(vars){
//$("#listLog #newTr").remove();
$("#listLog tr").remove("#newTr");
index=index+vars;
if(index<1){
index=1;
}
$.post("Ajax/doList.jsp",{"pageIndex":index},function(date){
$.each(date[0],function(index,val){ //date[0]得到日志列表,类型为json数组 $("#listLog").append("<tr id='newTr'><td>"+index+"</td><td>"+val.ID+"</td><td>"+val.logTitle+"</td></tr>");
});
index=date[1]; //得到newIndex
},"json"); }
</script>
</head> <body> <input type="button" value="显示列表" onclick="shouList(0)">
<table id="listLog">
<tr>
<td>编号</td>
<td>ID</td>
<td>标题</td>
</tr>
</table>
<input type="button" value="上一页" onclick="shouList(-1)">
<input type="button" value="下一页" onclick="shouList(1)">
</body>
</html>
得到的Json数组对象
[
[{"ID":1,"UName":"admin","commentCount":2,"createTime":"2016-06-03 08:24:42.973","logContent":"日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容","logTitle":"日志标题","userId":1},
{"ID":2,"UName":"aaa","commentCount":0,"createTime":"2016-06-03 08:31:35.41","logContent":"日志内容222222222222","logTitle":"日志标题2","userId":2},
{"ID":3,"UName":"admin","commentCount":0,"createTime":"2016-06-03 15:35:40.047","logContent":"日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容日志内容3333","logTitle":"日志标题3","userId":1}],
1]
Json和Ajax的更多相关文章
- 谈JSON在Ajax中的使用
JSON是一种轻量级的数据交换格式.易于人阅读和编写,同时也易于机器解析和生成.AJAX是一种用于创建更好更快以及交互性更强的 Web 应用程序的技术.之前也曾介绍过在PHP语言中使用JSON的文章, ...
- JSON 在Ajax数据交换中的简单运用
随着浏览器内核更新,原先的json.js在最新的谷歌浏览下不管用了,运行报错,特此修改下代码,不使用json.js,使用Object自带的json转换方法,修改时间,2016年10月26日. 首先需要 ...
- struts2:使用JQuery、JSON和AJAX处理请求
目的 在struts2中使用JQuery.JSON.AJAX等技术处理用户请求,并返回结果.返回结果可以是以JSONObject的方式返回,也可以是以JSONArray方式返回结果. 实现 1. 创建 ...
- Django---CSRF的装饰器,CSRF的流程,JSON数据格式,ajax技术(基于JQ实现)
Django---CSRF的装饰器,CSRF的流程,JSON数据格式,ajax技术(基于JQ实现) 一丶CSRF相关的装饰器 from django.utils.decorators import m ...
- 项目:jSon和Ajax登录功能
组件化网页开发 / 步骤二 · 项目:jSon和Ajax登录功能 要熟练编写封装的$.ajax({........})
- Json与Ajax(注册实例)
需要在服务器上进行哈 jquery的ajax方法: // jquery请求 $.ajax({ url: "./server/slider.json", type: "po ...
- JavaScript JSON 与 AJAX
JavaScript JSON 与 AJAX JSON 是一种轻量的数据交互格式,与 AJAX 配合完成前端页面与服务端的信息传递,本文介绍 JSON 的使用.原生 AJAX 写法.JSONP 跨域解 ...
- 请问MVC4是不是类似于html页+ashx页之间用JSON通过AJAX交换数据这种方式、?
不是,可以讲mvc模式是借鉴于java下面的mvc开发模式,为开发者公开了更多的内容和控制,更易于分工合作,与单元测试,借用官方的说法:MVC (Model.View.Controller)将一个We ...
- javascript笔记8-表单脚本、JSON、AJAX
通过表单提交,很方便的可以从界面把参数传递给后台. 如果前后台我们有大量数据需要交互,JSON方便我们传递和读取. 如果需要更新一个界面的某一部分数据,并不想刷新界面,就要用到Ajax. 1. 表单脚 ...
随机推荐
- PAT Basic 1032
1032 挖掘机技术哪家强 (20 分) 为了用事实说明挖掘机技术到底哪家强,PAT 组织了一场挖掘机技能大赛.现请你根据比赛结果统计出技术最强的那个学校. 输入格式: 输入在第 1 行给出不超过 1 ...
- react-native添加react-native-vector-icons插件android遇到的问题
问题 yarn add react-native-vector-icons后图省事使用react-native link来添加native配置,结果run时报错. ps:安装的需要native的插件不 ...
- C++类中的Static关键字二
静态成员是可以独立访问的,也就是说,无须创建任何对象实例就可以访问,而静态成员函数可不建立对象就可以被使用. 或者说静态函数与一般函数没有太大的区别,只是访问有限制,静态变量跟一般的全局变量的区别 ...
- 区块链侧链应用开发平台Asch节点安装及区块生产教程
1 系统要求 必须是linux系统 必须有公网ip 建议使用ubuntu 14.04 64位 建议内存1G以上 建议带宽2Mb以上 2 安装 2.1 下载 wget https://www.asch. ...
- js滚动条滚动到底部触发事件
$("#contain").scroll(function(){ var $this =$(this), viewH =$(this).height(),//可见高度 conten ...
- .NET中的泛型集合总结
最近对集合相关的命名空间比较感兴趣,以前也就用下List<T>, Dictionary<Tkey, TValue>之类,总之,比较小白.点开N多博客,MSDN,StackOve ...
- TCP三次握手那些事
临近5月,春招和实习招聘逐渐进入尾声.本文主要讨论面试中经常提问的TCP连接的机制,附带一些扩展知识. 参加面试的时候,过半的面试官都会问TCP相关问题,而最常见的问题就是:讲一下TCP三次握手(四次 ...
- Servlet的相关类--ServletConfig(接口)
ServletConfig是一个接口,有关配置文件的 servlet的配置信息<---对应--->ServletConfig web.xml配置文件会被加载到内存中,然后解析器会对它进行解 ...
- Autofac之自动装配
从容器中的可用服务中选择一个构造函数来创造对象,这个过程叫做自动装配.这个过程是通过反射实现的 默认 思考这么一个问题,如果注册类型中存在多个构造函数,那么Autofac会选择哪一个来创建类型的实例 ...
- JavaScript关于sha1加密
function encodeUTF8(s) { var i, r = [], c, x; for (i = 0; i < s.length; i++) if ((c = s.charCodeA ...