MiniUi使用Struts2的增删查改

使用Struts2框架实现MIniUI框架

MIniUi框架地址:http://www.miniui.com

1.增删改功能:

增删查功能都是通过JSP ajax传值

  function saveData() {            

            var data = grid.getChanges();
            var json = mini.encode(data);

            grid.loading("保存中,请稍后......");
            $.ajax({
                url: "${pageContext.request.contextPath}/test/myCurd_save",          //Action路径 需要跳转到的后台
                data: { data: json },
                type: "post",
                success: function (text) {
                    grid.reload();
                },
                error: function (jqXHR, textStatus, errorThrown) {
                    alert(jqXHR.responseText);
                }
            });
        }

后台Actionpublic class CRUDAction {


private String data;
       //使用成员变量提供SET GET方法 获取到前台的参数 

         public  String save() throws Exception{
             System.out.println("data:"+data);
             ArrayList rows = (ArrayList)JSON.Decode(data);        //通过MiniUiDemo中的自带的JSON类把前台传入的参数转换成数组
             for(int i=0;i<rows.size();i++){
             HashMap<String,Object> map = (HashMap)rows.get(i);        //获取到list 用Map数组切割

String state = (String)map.get("_state");              //state是获取到操作的类型   

             System.out.println("用户操作:"+state);
             if(state.equals("added")){        //添加
                 new TestDB().InsertEmployee(map);

             }else if(state.equals("removed")){        //删除
                 int userid = Integer.parseInt(map.get("user_id").toString());          //获取到ID确定删除哪个用户
                 System.out.println("用户ID:"+userid);
                 new TestDB().DeleteEmployee(userid);
             }else if(state.equals("modified")){        //修改
                 new TestDB().UpdateDepartment(map);
             }
             }
             return "ok";
         }

        public String getData() {
            return data;
        }

        public void setData(String data) {
            this.data = data;
        }

}

TestDB 操作数据库

public class TestDB {
    //mysql 配置链接数据库的4大属性
    public static String driver = "com.mysql.jdbc.Driver";
    public static String url = "jdbc:mysql://127.0.0.1/crud?useUnicode=true&characterEncoding=GBK";
    public static String user = "root";
    public static String pwd = "123456";

//添加用户

public String InsertEmployee(HashMap user) throws Exception
{
String id = (user.get("id") == null || user.get("id").toString().equals(""))? UUID.randomUUID().toString() : user.get("id").toString();
user.put("id", id);

if (user.get("name") == null) user.put("name", "");
if (StringUtil.isNullOrEmpty(user.get("gender"))) user.put("gender", 0);

Connection conn = getConn();

String sql = "insert into user(user_name, pass_word, gender)"
+ " values(?, ?, ?)";

PreparedStatement stmt = conn.prepareStatement(sql);

stmt.setString(1, ToString(user.get("user_name")));
stmt.setString(2, ToString(user.get("pass_word")));
stmt.setString(3, ToString(user.get("gender")));

stmt.executeUpdate();
stmt.close();
conn.close();

return id;
}

//删除用户

public void DeleteEmployee(int userId) throws Exception
{

Connection conn = getConn();
Statement stmt = conn.createStatement();

String sql = "delete from user where user_id = \""+userId+"\"";
stmt.executeUpdate(sql);

stmt.close();
conn.close();
}

//修改用户

public void UpdateDepartment(HashMap d) throws Exception
{
HashMap db_d = GetDepartment(d.get("user_id").toString());

Iterator iter = d.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry entry = (Map.Entry) iter.next();
Object key = entry.getKey();
Object val = entry.getValue();

db_d.put(key, val);
}

String sql =
"update user "
+ " set "
+ " user_name = ?, "
+ " pass_word = ?, "
+ " gender = ? "
+" where user_id = ?";

Connection conn = getConn();

PreparedStatement stmt = conn.prepareStatement(sql);

stmt.setString(1, ToString(db_d.get("user_name")));
stmt.setString(2, ToString(db_d.get("pass_word")));
stmt.setString(3, ToString(db_d.get("gender")));
stmt.setString(4, ToString(db_d.get("user_id")));

stmt.executeUpdate();
stmt.close();
conn.close();
}

2.查功能

JSP页面查功能

 function search() {
            var key = mini.get("key").getValue();
       //通过输入框的KEY获取到要查询的值
            grid.load({ key: key });
        }

查询Action类

public class fenyeAction {
        private int pageIndex; //查询起始位置     
        private int pageSize; //一次查询几条
private String sortField;  //排序字段
        private String SortOrder; //排序顺序
        private String key;//用户输入的值

        public String fenye() throws Exception{
            HashMap result = new TestDB().SearchEmployees(key,pageIndex,pageSize, sortField, SortOrder);        //从数据库查询到数据存入Map数组
            PrintWriter out = ServletActionContext.getResponse().getWriter();
            String json = JSON.Encode(result);
            out.print(json);
            out.flush();
            out.close();
            return "fenye";
        }

        public int getPageIndex() {
            return pageIndex;
        }
        public void setPageIndex(int pageIndex) {
            this.pageIndex = pageIndex;
        }
        public int getPageSize() {
            return pageSize;
        }
        public void setPageSize(int pageSize) {
            this.pageSize = pageSize;
        }
        public String getSortField() {
            return sortField;
        }
        public void setSortField(String sortField) {
            this.sortField = sortField;
        }
        public String getSortOrder() {
            return SortOrder;
        }
        public void setSortOrder(String sortOrder) {
            SortOrder = sortOrder;
        }
        public String getKey() {
            return key;
        }
        public void setKey(String key) {
            this.key = key;
        }
}

查询方法

public HashMap SearchEmployees(String key, int index, int size, String sortField, String sortOrder) throws Exception
    {
        //System.Threading.Thread.Sleep(300);
        if(key == null) key = "";

        String sql = "select *from user where user_name like ‘%" + key + "%‘ \n";

        if (StringUtil.isNullOrEmpty(sortField) == false)
        {
            if ("desc".equals(sortOrder) == false) sortOrder = "asc";
            sql += " order by " + sortField + " " + sortOrder;
        }
        else
        {
            sql += " order by user_id desc";
        }

        ArrayList dataAll = DBSelect(sql);

        ArrayList data = new ArrayList();
        int start = index * size, end = start + size;

        for (int i = 0, l = dataAll.size(); i < l; i++)
        {
            HashMap record = (HashMap)dataAll.get(i);
            if (record == null) continue;
            if (start <= i && i < end)
            {
                data.add(record);
            }
            //record.put("createtime", new Timestamp(100,10,10,1,1,1,1));
        }

        HashMap result = new HashMap();
        result.put("data", data);
        result.put("total", dataAll.size());

        //minAge, maxAge, avgAge
        ArrayList ages = DBSelect("select min(user_id) as minAge, max(user_id) as maxAge, avg(user_id) as avgAge from user");
        HashMap ageInfo = (HashMap)ages.get(0);
        result.put("minAge", ageInfo.get("minAge"));
        result.put("maxAge", ageInfo.get("maxAge"));
        result.put("avgAge", ageInfo.get("avgAge"));

        return result;
    }
时间: 2024-10-10 19:49:27

MiniUi使用Struts2的增删查改的相关文章

SSH框架的多表查询和增删查改 (方法一)上

原创作品,允许转载,转载时请务必标明作者信息和声明本文章==>  http://www.cnblogs.com/zhu520/p/7772823.html   因为最近在做Android 练习的项目,使用增删查改的时候还是使用jdbc的增删查改 发现实在是太麻烦了,所有果断抛弃它,使用ssh, 但是发现不会....经过了四天的时间我终于弄懂了. 哪个大神看到有问题指点一下. 在弄这前要先明白一下@Component @Controller @Service @Repository 这些注释 可以

php mysql增删查改

php mysql增删查改代码段 $conn=mysql_connect('localhost','root','root');  //连接数据库代码 mysql_query("set names utf8");  //传输编码 mysql_query('sql'$conn); //查找名为sql的数据库 admin为表名: 查找数据代码段: $sql="select * from admin ";  //查询表: $sql="select  * from

c++中的顺序表写法,主要实现(增删查改,构造函数,运算符重载)

本文的内容主要是,利用c++写出顺序表,并对写出的代码进行测试, 主要实现的功能:实现对顺序表的增删查改, 要写的函数:构造函数,赋值运算符重载,析构函数.在编写代码过程中应注意到深浅拷贝问题. 下面是顺序表的类函数: #pragma once #include<iostream> using namespace std; typedef int DataType; class SeqList { public: SeqList(); SeqList(DataType *array, size

mysql基础知识之增删查改使用介绍

 mysql基础知识之增删查改使用介绍 本文主要介绍mysql常用的SELECT.INSERT.UPDATE.DELETE语句的使用,数据库的安装这里不做介绍,并且事先已经准备好相关数据. 本文中使用的student表中的数据如下: mysql> SELECT * FROM student; 一.SELECT语句的使用 1.单表查询 语法格式: SELECT culom1,culom2,culom3 FROM TABLE_NAME; 可以改变字段显示顺序 2.WHERE子句查询 语法格式: SE

nodejs连接mysql并进行简单的增删查改

最近在入门nodejs,正好学习到了如何使用nodejs进行数据库的连接,觉得比较重要,便写一下随笔,简单地记录一下 使用在安装好node之后,我们可以使用npm命令,在项目的根目录,安装nodejs中的mysql模块 npm install mysql 在连接数据库之前,要先引入nodejs连接处理mysql的模块 var mysql = require('mysql'); 类似php连接mysql的方式,编写连接代码 //使用nodejs处理mysql的模块,使用创建连接方法,创建与mysq

EF实现增删查改功能

In the previous tutorial you created an MVC application that stores and displays data using the Entity Framework and SQL Server LocalDB. In this tutorial you'll review and customize the CRUD (create, read, update, delete) code that the MVC scaffoldin

在MVC程序中,使用泛型仓储模式和工作单元实现增删查改

在这片文章中,我将自己动手为所有的实体:写一个泛型仓储类,还有一个工作单元. 工作单元的职责就是:为每一个实体,创建仓储实例.仓储(仓库)的职责:增删查改的功能实现. 我们将会在控制器中,创建工作单元类(UnitOfWork)的实例,然后根据实体,创建仓储实例,再就是使用仓储里面的方法,做操作了. 下面的图中,解释了,仓储和EF 数据上文的关系,在这个图里面,MVC控制器和仓储之间的交互,是通过工作单元来进行的,而不是直接和EF接触. 那么你可能就要问了,为什么要使用工作单元??? 工作单元,就

asp.net MVC最简单的增删查改!(详)

折腾了两天搞出来,但原理性的东西还不是很懂,废话不多说上图上代码 然后右键models,新建一个数据模型 注意我添加命名为lianxi 添加后如上 接下来在controllers添加控制器还有在Views中添加视图 注意控制器lianxi和视图的名字要一致,然后视图我是添加了3个分别是Index,insert,Modify,在控制器里分别有三个对应的函数 每当用URL访问视图时,他就调用了controllers对应的方法,例如 jiaEntities 就是建立模式时那个数据链接的名字      

Dom的增删查改以及常用事件

dom的增删查改 // 查 var _input = document.getElementById('_input'); var _div = document.getElementsByClassName('_div'); var _div2 = document.getElementsByTagName('div'); var _radio = document.getElementById('_radio'); // 改 input.value = '随便'; div.style.hei