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. 表单脚 ...
随机推荐
- 微信小程序--家庭记账本开发--02
代码文件的了解 对于一个程序的开发,代码的了解的必须的,不同的后缀名文件有着不同的作用,通过学习,对于微信小程序开发中的文件有了自己的理解. 文件概述 一个微信小程序一般有有pages文件夹,util ...
- Jupyter notbook& REVEAL.JS& nbconvert 使用jupyter notebook制作slides
使用Jupyter notebook作为slide主要有两个方面: 在运行notebook 的时候可以幻灯片播放 这样幻灯片就有了notebook可交互的功能,而notebook就有了幻灯片全屏容易分 ...
- 【C语言程序】基因编码
输入一个长为n=2k(k≤8)01串s,按照"ABC编码规则"进行编码,ABC编码规则是: A //若s串全是0 T(s)= ...
- Java Base64 加解密
public class base64EncryAndDecry { public static final String CODES = "ABCDEFGHIJKLMNOPQRSTUVWX ...
- Ganglia 调试技巧
转自:http://blog.csdn.net/xxd851116/article/details/25109043 Gmond # 检查Gmond服务是否正在运行,发出如下命令:ps aux | g ...
- Web Driver 8中定位方法 ——基于python语言
WebDriver提供了八种元素定位方法,在python 语言中,方法如下: id定位:find_element_by_id("id值"):id属性是唯一的. 1 driver ...
- 9、vuex快速上手
vue脚手架 npm install -g vue-cli usage: vue init example: vue init webpack myvue 安装vuex: npm i -S vuex ...
- 对于EMC DAE、DPE、SPE、SPS的解释
对于EMC DAE.DPE.SPE.SPS的解释: DAE: Disk Array Enclosure 单一的磁盘扩展单元 CX200/CX300/CX400/CX500CX600/CX700 DPE ...
- Python全栈-magedu-2018-笔记8
第四章 - IPython 使用 帮助 ? Ipython的概述和简介 help(name) 查询指定名称的帮助,是python帮助 obj? 列出obj对象的详细信息 obj?? 列出更加详细的信息 ...
- Idea使用说明
快捷键 ctrl + alt + b : 查找接口的实现类 ctrl + h : 查找类或接口的继承关系 double shift : 搜索任何地方 ctrl + shift + n : 查找文件 c ...