使用Map代替实体类,实现ssm框架下的增删改查
来源:互联网 发布:五毛钱特效软件 编辑:程序博客网 时间:2024/05/20 10:10
之前搭得SSM框架包括后来的使用json的都是使用实体类的,这次尝试用Map代替实体类来返回数据,经过替换后,现在的包结构成了这样,是不是更加清晰了,同时完善了mybatis的增删改查方法,不过对于动态sql目前感觉看一眼就会,就没写,整个项目的地址在文章末尾,需要的可以下载。
接下来看下代码
UserMapper.xml
这个文件原本我是直接用之前的mybatis-generator生成的,原来它是用ResultMap来作为返回值的,我直接将里面的值改为hashMap,很遗憾,报错了,改成ResultType就可以,后来查了资料发现
1、esultType是直接表示返回类型的(对应着我们的model对象中的实体)。
2、resultMap是对外部ResultMap的引用(提前定义了db和model之间的隐射key value关系)。
3、resultType跟resultMap不能同时存在。
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" ><mapper namespace="com.tu.dao.UserDao"> <!-- 查询所有 --> <select id="getAll" resultType="hashmap"> select * from user </select> <!-- 根据主键查询 --> <select id="selectByPrimaryKey" resultType="java.util.HashMap" parameterType="java.lang.Integer"> select * from user where id = #{id} </select> <!-- 插入 --> <insert id="addUser" parameterType="java.util.HashMap"> <!-- 返回主键 --> <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer"> select LAST_INSERT_ID() as id </selectKey> insert into user (name,password,age,male) value(#{name},#{password},#{age},#{male}) </insert> <!-- 删除 --> <delete id="delete" parameterType="java.util.HashMap"> delete from user where id=#{id} </delete> <!-- 修改 --> <update id="update" parameterType="java.util.HashMap"> update user set name=#{name} where id=#{id} </update></mapper>
UserController
public class UserController { @Resource private UserService userService; @RequestMapping("/home") private ModelAndView init(HttpServletRequest request){ ModelAndView mv = new ModelAndView(); List<Map<String,Object>> user = userService.getAll(); mv.addObject("user",user); mv.setViewName("index"); return mv; } @RequestMapping("/index/load") private @ResponseBody List<Map<String,Object>> requestJson(@RequestBody Map<String, Object> map){ List<Map<String,Object>> list = userService.getAll(); return list; } @RequestMapping("/register") private @ResponseBody Map<String,Object> register(@RequestBody Map<String, Object> map){ return userService.addUser(map); } @RequestMapping("/deleteuser") private @ResponseBody Map<String,Object> delete(@RequestBody Map<String, Object> map){ int num = userService.delete(map); Map<String, Object> state = new HashMap<String, Object>(); state.put("result", num); return state; } @RequestMapping("/update") private @ResponseBody Map<String,Object> update(@RequestBody Map<String, Object> map){ int num = userService.update(map); Map<String, Object> state = new HashMap<String, Object>(); state.put("result", num); return state; }
其他代码比较简单,我这边就不贴了,如果有需要,可以点击这里下载
页面中的修改,采用的是原来的html代码,输入姓名和id,就可以根据id来修改姓名。
阅读全文
1 0
- 使用Map代替实体类,实现ssm框架下的增删改查
- Maven+SSM框架实现简单的增删改查
- Maven+SSM框架实现简单的增删改查
- SSM框架---增删查改
- ssm实现增删改查
- SSM框架搭建+easyui增删改查实现
- ssm框架搭建+easyui增删改查实现
- ssm框架搭建+easyui增删改查实现
- ssm框架搭建+easyui增删改查实现
- ssm框架搭建+easyui增删改查实现
- 关于SSM框架搭建以及简单的增删改查
- 【ssm框架】增删改查的最佳实践
- SSM框架之一个简单的增删改查Demo
- (经典demo)Maven+SSM框架实现简单的增删改查
- Yii框架下的增删改查
- SSM框架搭建+easyui增删改查
- Maven下SSM项目整合笔记04:使用测试类进行数据库增删改查的测试
- SSM整合实现增删改查
- WebBench测压
- 自我生长反思第一季
- vue开发:vue开发中疑惑点解答
- 沃通SSL证书正常销售,不受谷歌和火狐影响
- 创建scrapy开发环境
- 使用Map代替实体类,实现ssm框架下的增删改查
- Tesseract-OCR 字符识别---样本训练
- Java中的线程池(JDK7)
- PHP pdo学习笔记,转自菜鸟教程
- Spark Streaming如何使用checkpoint容错
- 哇呀呀呀呀呀呀有
- Python列表元组讲解
- Linux进程全解9——进程状态、system函数、进程间的关系
- Dev_C++使用