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. 表单脚 ...
随机推荐
- java在cmd下编译引用第三方jar包
java在cmd下编译引用第三方jar包 转 https://blog.csdn.net/qq_21439971/article/details/53924594 获取第三方jar包 第三包我们可以引 ...
- PTA L2-001 紧急救援 (带权最短路)
<题目链接> 题目大意: 作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图.在地图上显示有多个分散的城市和一些连接城市的快速道路.每个城市的救援队数量和每一条连接两个城市的快速道 ...
- Linux 上使用LVM 扩展磁盘Size
第一步:使用 fdisk -l 查看当前磁盘容量 fdisk -l 第二步: 使用 fdisk /dev/sda/ 为free space 添加新的分区 fdisk /dev/sda m :列出所有命 ...
- C - 树的统计Count - 树链剖分
思路 :树剖模板,线段树维护即可. #include<bits/stdc++.h> using namespace std; #define MID int m = (l+r)/2 #de ...
- 08-Python入门学习-文件与函数
一.文件 1.控制文件内指针的移动 文件内指针移动,只有t模式下的read(n),n代表的字符的个数除此以外文件内指针的移动都是以字节为单位 with open('a.txt',mode='rt',e ...
- 编程菜鸟的日记-初学尝试编程-C++ Primer Plus 第5章编程练习9
#include <iostream>using namespace std;int main(){ int num; cout<<"Enter number of ...
- java.lang.NoClassDefFoundError: com/sun/image/codec/jpeg/JPEGCodec
java.lang.NoClassDefFoundError: com/sun/image/codec/jpeg/JPEGCodec 这个类在 rt.jar 里面 本地开发,jre里有这个包,所以不会 ...
- LocalDate
java中做时间处理时一般会采用java.util.Date,但是相比于Date来说,还有更好的选择 -- java.time.LocalDate. 这是jdk8中新增的日期处理类,同时新增的还有ja ...
- C# 数字字符串前面不足位补零方法
; Console.WriteLine(i.ToString("D3")); Console.WriteLine(i.ToString(")); Console.Writ ...
- spring mvc 总结
依赖包 <!-- spring依赖 --> <dependency> <groupId>org.springframework</groupId> &l ...