使用设计模式和UI的dataGrid(数据表格)进行表格的增、删、改、查

一 、main.jsp

视图 Viewjsp html

     提供可交互的客户界面,向客户显示模型数据


<%@ 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>My JSP 'main.jsp' starting page</title>


<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->


<link rel="stylesheet" href="css/icons/easyui.css" type="text/css"></link>
<link rel="stylesheet" href="css/icons/icon.css" type="text/css"></link>
<script type="text/javascript" src="css/js/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="css/js/jquery.easyui.min.js"></script>
<script type="text/javascript">
    var addFlag="0";
$(function() {
$('#dg').datagrid({
title : '用户列表',
method : 'GET',
url : 'servlet/UserServlet?action=select',
fit : true,
fitColumns : true,
autoRowHeight : true,
checkOnSelect : false,
pagination : true,
striped : true,
nowrap : true,
multiSort : true,
ctrlSelect : true,
rownumbers : true,
collapsible : true,//是否可折叠的
pageList : [ 1, 2, 3 ],//可以设置每页记录条数的列表 
frozenColumns : [ [ {
field : 'checkbox',
checkbox : true
} ] ],
toolbar : [ {
text : '查询',
iconCls : 'icon-search',
handler : function() {
$('#dg').datagrid('reload');
}
}, '-', {
text : '修改',
iconCls : 'icon-edit',
handler : function() {
alert('请选择');
}
}, '-', {
text : '添加',
iconCls : 'icon-add',
handler : function() {
if(addFlag=="0"){
$('#dg').datagrid('insertRow',{
index: 0, // 索引从0开始
row: {}
});


                  
                      $('#dg').datagrid('selectRow',0);
                      $('#dg').datagrid('beginEdit',0);
                     addFlag="1";
                              

}
}


}, '-', {
text : '删除',
iconCls : 'icon-remove',
handler : function() {
$.messager.confirm("信息确认","确定删除吗?",function(ret){
   if(ret){
    var row =$("#dg").datagrid("getSelections");
    if(row.length==0){
    $.messager.alert("提示","请选择要删除的数据");
    return;
    }
    var ids =[];
    for(var i=0;i<row.length;i++){
    ids.push(row[i].id);
    }
    $.post("servlet/UserServlet?action=delete",{uid:ids},
    function(data){
    if(data>0){
    $('#dg').datagrid('reload');
    alert("删除成功");
    }else{
    alert("删除失败");
    }
    });
   }

});


}
} ],


columns : [ [


{

field : 'id',
title : '用户名',


hidden:true

},

{
field : 'userName',
title : '用户名',
width : 100,
sortable : true,
editor : 'text',
align : 'center'
}, {
field : 'userPwd',
title : '密码',
width : 100,
editor : 'text',
align : 'center'
}, {
field : 'displayName',
title : '级别',
width : 100,
height : 100,
editor : 'text',
align : 'center'
},{
field : 'option',
title : '操作',
width : 100,
formatter: function(value,row,index){
if(row.editing){
var s ='<a href="javascript:void(0);" οnclick="saverow('+index+')">save</a>'
+"  "+'<a href="javascript:void(0);" οnclick="cancleEdit('+index+')">cancle</a>'

 
return s;
}else{
var e ='<a href="javascript:void(0);" οnclick="editrow('+index+')">edit</a>'; 
return e;
}
}
} ] ],
onBeforeEdit : function(index,row){
row.editing = true;
$("#dg").datagrid("refreshRow",index);
},
onAfterEdit: function(index,row){
row.editing = false;
$("#dg").datagrid("refreshRow",index);
}
});
//设置分页控件 
var p = $('#dg').datagrid('getPager');
$(p).pagination(
{
beforePageText : '第',//页数文本框前显示的汉字 
afterPageText : '页    共 {pages} 页',
displayMsg : '当前显示 {from} - {to} 条记录   共 {total} 条记录'
});
});
function editrow(index){
var row = $("#dg").datagrid("getSelected");
if(row == null){
alert("请选择您要编辑的行");
return;
}
$("#dg").datagrid("beginEdit",index);
}
function cancleEdit(index){
   $("#dg").datagrid("rejectChanges");

}
function saverow(index){
$("#dg").datagrid("endEdit",index);
var row = $("#dg").datagrid("getSelected");
dbAdd(row);
}
function dbSave(row){
var id=row.id;
var name=row.userName;
var pwd=row.userPwd;
var dName=row.displayName;
$.post("servlet/UserServlet?action=update",
{id:id,userName:name,userPwd:pwd,displayName:dName},
  function(data){
    if( data=="1"){
      alert("修改成功");
    }else{
     alert("修改失败");
    }
  });
}
function dbAdd(row){
var id=row.id;
var name=row.userName;
var pwd=row.userPwd;
var dName=row.displayName;
if(addFlag=="1"){
$.post("servlet/UserServlet?action=add",
{userName:name,userPwd:pwd,displayName:dName},
  function(data){
    if( data=="1"){
      alert("添加成功");
    }else{
     alert("添加失败");
    }
  });
  addFlag="0";
}else{
$.post("servlet/UserServlet?action=update",
{id:id,userName:name,userPwd:pwd,displayName:dName},
  function(data){
    if( data=="1"){
      alert("修改成功");
    }else{
     alert("修改失败");
    }
  });

}
}


</script>

</head>

<body>
<%-- ${sessionScope.user.userName}
    ${sessionScope.user.displayName}世界你好 --%>
<table class="easyui-datagrid" id="dg">


</table>
</html>


二、UserServlet.java

控制器 Controller(逻辑判断servlet)

      根据客户的请求来操作数据,并把结果经由视图显示

package com.jredu.web.servlet;


import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.List;


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


import net.sf.json.JSONArray;
import net.sf.json.JSONObject;


import com.jredu.web.dao.UserDao;
import com.jredu.web.entity.User;




public class UserServlet extends HttpServlet {


/**
* Constructor of the object.
*/
public UserServlet() {
super();
}


/**
* Destruction of the servlet. <br>
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}


/**
* The doGet method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to get.

* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
        this.doPost(request, response);
}


/**
* The doPost method of the servlet. <br>
*
* This method is called when a form has its tag value method equals to post.

* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {


request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/html,charset=utf-8");

String action=request.getParameter("action");
if(null==action||action.equals("select")){
select(request,response);
}else if(action.equals("update")){
update(request,response);
}else if(action.equals("add")){
add(request,response);
}else if(action.equals("delete")){
delete(request, response);
}

}
//查询
public void select(HttpServletRequest request, HttpServletResponse response) throws IOException{
String page=request.getParameter("page");
String row=request.getParameter("rows");
System.out.println("page:"+page+"  rows"+row);


int rows=Integer.parseInt(row);
   int from=(Integer.parseInt(page)-1)*rows;



UserDao userDao=new UserDao();
//List<User> list=userDao.selectAll();
List<User> list = userDao.selectPage(from, rows);
//JSONArray ja=JSONArray.fromObject(list);
/*返回一条数据*/

//JSONObject jo=JSONObject.fromObject(user);
HashMap<String, Object> map=new HashMap<String, Object>();
map.put("total",userDao.selectCount());
map.put("rows", list);
PrintWriter out=response.getWriter();
JSONObject jo=JSONObject.fromObject(map);
System.out.println(jo.toString());
out.print(jo.toString());

}
//修改
public void update(HttpServletRequest request, HttpServletResponse response) throws IOException{
String id=request.getParameter("id");
String userName=request.getParameter("userName");
String userPwd=request.getParameter("userPwd");
String displayName=request.getParameter("displayName");
User user=new User();
user.setId(Integer.parseInt(id));
user.setUserName(userName);
user.setUserPwd(userPwd);
user.setDisplayName(displayName);
UserDao userDao=new UserDao();
int affCount=userDao.update(user);
PrintWriter out=response.getWriter();
out.print(affCount);

}
//删除
public void delete(HttpServletRequest request, HttpServletResponse response) throws IOException {

String ids[] = request.getParameterValues("uid[]");
UserDao userDao = new UserDao();
int affCount=0;
for(int i=0;i<ids.length;i++) {
affCount += userDao.delete(Integer.parseInt(ids[i]));
}
PrintWriter out =response.getWriter();
out.print(affCount);
}
//增加
public void add(HttpServletRequest request, HttpServletResponse response) throws IOException{

String userName=request.getParameter("userName");
String userPwd=request.getParameter("userPwd");
String displayName=request.getParameter("displayName");
User user=new User();

user.setUserName(userName);
user.setUserPwd(userPwd);
user.setDisplayName(displayName);
UserDao userDao=new UserDao();
int affCount=userDao.inset(user);
PrintWriter out=response.getWriter();
out.print(affCount);



}



/**
* Initialization of the servlet. <br>
*
* @throws ServletException if an error occurs
*/
public void init() throws ServletException {
// Put your code here
}


}

三、DBConnection.java




package com.jredu.web.db;


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;






public class DBConnection {
private  static Connection con=null;

//驱动程序名 
private static String driverName = "com.mysql.jdbc.Driver";
//数据库用户名 
private static String userName   = "root";
//密码 
private static String userPasswd = "ffffff";
//数据库名 
private static String dbName     = "shcoolapp";
//联结字符串 
private static String url = "jdbc:mysql://localhost/" + dbName 
                       + "?user="+ userName 
                       + "&password=" + userPasswd
                       + "&useUnicode=true&characterEncoding=gbk";
    //拿到链接
public static Connection getConnection(){

try{
/* 注册JDBC驱动 */
 Class.forName(driverName);
 /* 获得数据库连接 */
  con=DriverManager.getConnection(url);
}catch(ClassNotFoundException e){
e.printStackTrace();
}catch (SQLException e) {
// TODO: handle exception
e.printStackTrace();
}
return con;
}




public static void closeConnection(){
if(con!=null){
try {
con.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}


}

四、User.java 实体类

package com.jredu.web.entity;


public class User {
private int id;
private String userName;
private String userPwd;
private String displayName;
public User(){

}
public User(String userName, String userPwd, String displayName,int id) {
super();
this.userName = userName;
this.userPwd = userPwd;
this.displayName = displayName;
this.id=id;
}

public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserPwd() {
return userPwd;
}
public void setUserPwd(String userPwd) {
this.userPwd = userPwd;
}
public String getDisplayName() {
return displayName;
}
public void setDisplayName(String displayName) {
this.displayName = displayName;
}



}

五、UserDao.java

package com.jredu.web.dao;


import com.jredu.web.db.DBConnection;
import com.jredu.web.entity.User;


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;




public class UserDao {
//查询所有
public static List<User> selectAll(){
/* 获得数据库连接 */
 Connection con=DBConnection.getConnection();
/*   由Connection产生,负责执行SQL语句 */
 Statement stmt;
 
 List<User> list=new ArrayList();
 
try {
stmt = con.createStatement();
/*   负责保存Statement 执行后所产生的查询结果 */
 ResultSet rs=stmt.executeQuery("SELECT * FROM users");
 while(rs.next()){
 User user=new User();
 user.setId(Integer.parseInt(rs.getString("Id")));
 user.setUserName(rs.getString("USER_NAME"));
 user.setUserPwd(rs.getString("PWD"));
 user.setDisplayName(rs.getString("DISPLAY_NAME"));
 list.add(user);
 }
 
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
//关闭链接
DBConnection.closeConnection();
}
return list;
}


   //查询一条
public static User selectWhere(String whereOption){
/* 获得数据库连接 */
 Connection con=DBConnection.getConnection();
/*   由Connection产生,负责执行SQL语句 */
 Statement stmt;
 User user=null;
try {
stmt = con.createStatement();
String sql="SELECT * FROM users";
if(!whereOption.equals("")){
sql+=whereOption;
}
/*   负责保存Statement 执行后所产生的查询结果 */
 ResultSet rs=stmt.executeQuery(sql);
 if(rs.next()){
 user=new User();
 user.setUserName(rs.getString("USER_NAME"));
 user.setUserPwd(rs.getString("PWD"));
 user.setDisplayName(rs.getString("DISPLAY_NAME"));
 }
 
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
//关闭链接
DBConnection.closeConnection();
}
return user;
}
//增加
public int inset(User user){


    Connection con = DBConnection.getConnection();  
    PreparedStatement pstmt=null;
    String sql=" insert into users(user_name,pwd,display_name) values(?,?,?)";
    int count=0;
    try{
    pstmt=(PreparedStatement)con.prepareStatement(sql);
    pstmt.setString(1,user.getUserName());
    pstmt.setString(2,user.getUserPwd());
    pstmt.setString(3,user.getDisplayName());
       count=pstmt.executeUpdate();
    if(count==0){
    //throw new DataAlreadyExistException();
    }
    }catch (Exception e) {
e.printStackTrace();
}finally{
//关闭连接
try {
pstmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
DBConnection.closeConnection();
}

    return count;
   
   
    }
//修改
    public int update(User user) {
    Connection con = DBConnection.getConnection();  
    PreparedStatement pstmt=null;
    String sql="update users " +
    "set user_name=?," +
    "pwd=?," +
    "display_name=? " +
    "where id=?";
    int affCount=0;
    try {
pstmt=con.prepareStatement(sql);
pstmt.setString(1,user.getUserName());
    pstmt.setString(2,user.getUserPwd());
    pstmt.setString(3,user.getDisplayName());
    pstmt.setInt(4, user.getId());
    affCount=pstmt.executeUpdate();

} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
pstmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
DBConnection.closeConnection();

}
    return affCount;


}
    //删除
    public int delete(int id){
    Connection con = DBConnection.getConnection();  
    PreparedStatement pstmt=null;
    String sql="delete from users where id=?";
    int affCount=0;
    try {
pstmt=con.prepareStatement(sql);
pstmt.setInt(1, id);
affCount=pstmt.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
pstmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
DBConnection.closeConnection();

}
    return affCount;
    }
    //分页
    public static List<User> selectPage(int from,int rows){
/* 获得数据库连接 */
 Connection con=DBConnection.getConnection();
/*   由Connection产生,负责执行SQL语句 */
 Statement stmt;
 
 List<User> list=new ArrayList();
 
try {
stmt = con.createStatement();
/*   负责保存Statement 执行后所产生的查询结果 */
 ResultSet rs=stmt.executeQuery("SELECT * FROM users LIMIT "+from+","+rows);
 while(rs.next()){
User user=new User();
user.setId(Integer.parseInt(rs.getString("Id")));
 user.setUserName(rs.getString("USER_NAME"));
 user.setUserPwd(rs.getString("PWD"));
 user.setDisplayName(rs.getString("DISPLAY_NAME"));
 list.add(user);
 }
 
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
//关闭链接
DBConnection.closeConnection();
}
return list;
}
    
    
    
    //现实页数
    public int selectCount(){
    Connection con = DBConnection.getConnection();  
        Statement stmt;
        int count=0;
        try {
stmt=con.createStatement();
String sql="SELECT count(1) as count FROM users ";
ResultSet rs=stmt.executeQuery(sql);
if(rs.next()){
count=rs.getInt("count");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
DBConnection.closeConnection();
}
        return count;
        
    }





}



  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值