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. 表单脚 ...
随机推荐
- Mybatis内批量插入Oracle
<insert id="insertManagerInfoBatch" parameterType="java.util.List"> <se ...
- hdu5707-Combine String(DP)
Problem Description Given three strings a, b and c , your mission is to check whether c is the combi ...
- 【C#】多态
public class Animal { public virtual void Eat() { Console.WriteLine("Animal eat"); Console ...
- 2019-2-14sql server数据库模糊查询语句
sql server数据库模糊查询语句 确切匹配: select * from hs_user where ID=123 模糊查询 select * from hs_user where ID l ...
- BZOJ 5118
矩阵乘也是可以欧拉定理的HHH 所以幂次就是$(2^n-1) ~ mod ~ \varphi(p)$就好了 const ll p=1125899839733759ll; inline ll mu(ll ...
- centos官网下载地址
CentOS 7官方下载地址:https://www.centos.org/download/ 源自博友的博客:https://blog.csdn.net/yf9595/article/details ...
- HttpClient学习--HttpClient的POST请求过程源码解读
众所周知,HttpClient是对JDK net包下网络相关操作的一个封装,所以阅读的前提待知道HttpClient底层肯定是通过Socket来进行网络通信的. 下面来简单的捋一下代码,在进入繁杂.深 ...
- java_基础_异常
之前只是了解的最基础的异常形式,没有过多的深入 今天因为一些原因了解了一下 下面来说说异常的几种形式 1.try-catch语句块 代码示例 class test{ public static voi ...
- robot framework + win7 64 上的安装
1.安装 python 2.7 2.cmd 管理模式 python -m pip install --upgrade pip pip install robotframework==3. ...
- [dev] 刷HHKP的一般流程及常见错误(多图慎点)
( 为什么打了个dev的tag?development不用键盘,难道用鼠标??) 嗯呐,我有个HHKP,你看: 好不好看? 脏不脏? 接下来讲一下,我是怎么刷它,要看完哝,不然拆坏了不要怪我. 本来我 ...