2025年java map setv_在往数据库中增删改时,有用到NutMap().setv()方法,它实现的是什么?...

java map setv_在往数据库中增删改时,有用到NutMap().setv()方法,它实现的是什么?...package com zdwang nutzbook module import java util Date import javax servlet http HttpSession import com zdwang nutzbook bean User import org nutz dao Cnd import org nutz

大家好,我是讯享网,很高兴认识大家。

package com.zdwang.nutzbook.module;

import java.util.Date;

import javax.servlet.http.HttpSession;

import com.zdwang.nutzbook.bean.User;

import org.nutz.dao.Cnd;

import org.nutz.dao.Dao;

import org.nutz.dao.QueryResult;

import org.nutz.dao.pager.Pager;

import org.nutz.ioc.loader.annotation.Inject;

import org.nutz.ioc.loader.annotation.IocBean;

import org.nutz.lang.Strings;

import org.nutz.lang.util.NutMap;

import org.nutz.mvc.annotation.At;

import org.nutz.mvc.annotation.Attr;

import org.nutz.mvc.annotation.By;

import org.nutz.mvc.annotation.Fail;

import org.nutz.mvc.annotation.Filters;

import org.nutz.mvc.annotation.Ok;

import org.nutz.mvc.annotation.Param;

import org.nutz.mvc.filter.CheckSession;

@IocBean //与 @IocBy有很大关系 声明为Ioc容器中的一个Bean

@At("/user")// 整个模块的路径前缀

//@Ok("json")

@Ok("json:{locked:'password|salt',ignoreNull:true}")// 忽略password和salt属性,忽略空属性的json输出,使密码和salt不发送到浏览器去

@Fail("http:500")// 抛异常的话,走500页面

@Filters(@By(type=CheckSession.class, args={"me", "/"}))//含义是,如果当前Session没有带me这个attr(属性),就跳转到/页面,即首页.

public class UserModule {

@Inject// 此处的注入,有@IocBean,它才会生效 注入同名的一个ioc对象

protected Dao dao;

//@At//count方法, 测试用

//public int count(){

//return dao.count(User.class);

//}

@At//登录

@Filters()//覆盖UserModule类的@Filter设置,因为登陆可不能要求是个已经登陆的Session,所以必须为login方法设置为空的过滤器,不然就没法登陆了

public Object login(@Param("username")String name, @Param("password")String password, HttpSession session){

User user = dao.fetch(User.class, Cnd.where("name", "=", name).and("password", "=", password));

if (user == null) {

return false;

}else {

session.setAttribute("me", user.getId());

return true;

}

}

@At//登出

@Ok(">>:/")// 跟其他方法不同,这个方法完成后就跳转首页了

public void logout(HttpSession session){

session.invalidate();

}

@At//添加user

public Object add(@Param("..")User user){// 两个点号是按对象属性一一设置

NutMap re = new NutMap();

String msg = checkUser(user, true);

if (msg != null) {

return re.setv("ok", false).setv("msg", msg);

}

user.setCreateTime(new Date());

user.setUpdateTime(new Date());

user = dao.insert(user);

return re.setv("ok", true).setv("data", user);

}

@At// 修改

public Object update(@Param("..")User user){

NutMap re = new NutMap();


讯享网

String msg = checkUser(user, false);

if (msg != null) {

return re.setv("ok", false).setv("msg", msg);

}

user.setName(null);// 不允许更新用户名

user.setCreateTime(null);// 不允许更新创建时间

user.setUpdateTime(new Date());// 设置正确的更新时间

dao.updateIgnoreNull(user);// 真正更新的其实只有password和salt

return re.setv("ok", true);

}

@At// 删除

public Object delete(@Param("id")int id, @Attr("me")int me) {// @Attr是取Session/Request中的me属性

if (me == id) {

return new NutMap().setv("ok", false).setv("msg", "不能删除当前用户!!");

}

dao.delete(User.class, id); // 再严谨一些的话,需要判断是否为>0

return new NutMap().setv("ok", true);

}

@At// 查询

public Object query(@Param("name")String name, @Param("..")Pager pager){

Cnd cnd = Strings.isBlank(name)?null: Cnd.where("name", "like", "%"+name+"%");

QueryResult qr = new QueryResult();

qr.setList(dao.query(User.class, cnd, pager));

pager.setRecordCount(dao.count(User.class, cnd));

qr.setPager(pager);

return qr;// 默认分页是第一页,每页20条

}

@At("/")

@Ok("jsp:jsp.user.list") // 真实路径是 /WEB-INF/jsp/user/list.jsp

public void index() {

}

//校验用户

protected String checkUser(User user, boolean create){

if(user == null){

return "空对象";

}

if (create) {

if (Strings.isBlank(user.getName())|| Strings.isBlank(user.getPassword()))

return "用户名/密码不能为空!!!";

}else {

if (Strings.isBlank(user.getPassword()))

return "密码不能为空!!!";

}

String passwd = user.getPassword().trim();

if (6 > passwd.length() || passwd.length() > 12) {

return "密码长度有误";

}

user.setPassword(passwd);

if (create) {

int count = dao.count(User.class,Cnd.where("name", "=", user.getName()));

if (count != 0) {

return "用户名已存在";

}

}else{

if (user.getId() < 1) {

return "用户ID非法";

}

}

if(user.getName() != null)

user.setName(user.getName().trim());

return null;//即最后返回null的话,是符合校验添加的

}

}

就是这里面的增删改在返回值时,用到了NutMap().setv()的方法,有点看不懂

小讯
上一篇 2025-02-11 10:06
下一篇 2025-03-24 10:15

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/33606.html