@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id = null; // 表id字段(mysql 自动增长字段)
@Column
private String name = null; //班级名称
// @Column
// private String content = null; // 上课时间(课程表) ? 换成一个实体 CourseCalendar.class
/**
* 我是 伟大 的课程 安排 表
*/
@OneToMany(cascade = CascadeType.PERSIST /** 班级删了? 我擦, 关我飞机事 **/, fetch = FetchType.LAZY /** 懒加载 ?? **/,
mappedBy = "classes")
private List<CourseCalendar> courseCalendars = null; //课程安排
@Column
private Integer status = null; //状态
@ManyToMany(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
@JoinTable(name = "classes_course",
joinColumns ={@JoinColumn(name = "classes_id", referencedColumnName = "id")},
inverseJoinColumns = {@JoinColumn(name = "course_id", referencedColumnName = "id")
})
private List<Course> courses = null; //多对多 课程 和 班级 对应关系(这个班级要上的课程列表)
@ManyToMany(cascade = CascadeType.PERSIST, fetch = FetchType.LAZY)
@JoinTable(name = "classes_teacher",
joinColumns ={@JoinColumn(name = "classes_id", referencedColumnName = "id")},
inverseJoinColumns = {@JoinColumn(name = "teacher_id", referencedColumnName = "id")
})
private List<Teacher> teachers = null; //多对多 班级和授课老师 对应关系
/**
* 我是伟大的学生列表
*/
@OneToMany(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST, mappedBy = "classes")
private List<Student> students = null; //这个班的学员
@JsonSerialize(using = WiterJsonString.class)
@Temporal(TemporalType.TIMESTAMP) //时间戳, 精确到秒
private Date popened = null; //计划开班时间
@JsonSerialize(using = WiterJsonString.class)
@Temporal(TemporalType.TIMESTAMP) //时间戳, 精确到秒
private Date pclosed = null; //计划结业时间
@JsonSerialize(using = WiterJsonString.class)
@Temporal(TemporalType.TIMESTAMP) //时间戳, 精确到秒
private Date signend = null; //报名截至日期
@JsonSerialize(using = WiterJsonString.class)
@Temporal(TemporalType.TIMESTAMP) //时间戳, 精确到秒
private Date opened = null; //实际开班日期
@JsonSerialize(using = WiterJsonString.class)
@Temporal(TemporalType.TIMESTAMP) //时间戳, 精确到秒
private Date closed = null; //实际结业时间
@JsonSerialize(using = WiterJsonString.class)
@Temporal(TemporalType.TIMESTAMP) //时间戳, 精确到秒
private Date created = null; //创建时间
@JsonSerialize(using = WiterJsonString.class)
@Temporal(TemporalType.TIMESTAMP) //时间戳, 精确到秒
private Date updated = null; //改记录最后更新时间
时间要加 @Temporal @JsonSerialize(用于告诉jackjson 怎么输出时间)
如果用的jackjson 各种关系 要加好 注解,免得 报错为 无限递归
@JsonIgnore
对于 子实体中引用的父实体加上面的,不然无限递归
WiterJsonString.java extends JsonSerializer<Date>{
@Override
public void serialize(Date arg0, JsonGenerator arg1, SerializerProvider arg2)
throws IOException, JsonProcessingException {
DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
arg1.writeString(df.format(arg0));
}
}
action层 要 让spring 自动 封装参数为实体对象:
比如:
@RequestMapping(method = RequestMethod.GET, value = "/listallbywhere")
public @ResponseBody ResultVo listAllByWhere(@ModelAttribute Classes obj){
ResultVo re = new ResultVo();
List<Classes> c = dao.getAll(Classes.class, ModelReflectTools.createNotNull(obj, true));
re.setData(c);
re.setSuccess(c != null);
re.setTotal((re.isSuccess()) ? c.size() : 0);
re.setMsg((re.isSuccess()) ? "操作成功" : "操作失败");
return re;
}
必须加下面:
/********************** Spring mvc 参数自动封装 的 一些蛋疼步骤 ******************************/
@InitBinder
public void initBinder(WebDataBinder binder) {
// 忽略字段绑定异常
// binder.setIgnoreInvalidFields(true);
DateFormat format = new SimpleDateFormat("yyyy-MM-dd mm:dd:ss");
binder.registerCustomEditor(Date.class, "popened",
new CustomDateEditor(format, true));
binder.registerCustomEditor(Date.class, "pclosed",
new CustomDateEditor(format, true));
binder.registerCustomEditor(Date.class, "signend",
new CustomDateEditor(format, true));
binder.registerCustomEditor(Date.class, "opened",
new CustomDateEditor(format, true));
binder.registerCustomEditor(Date.class, "closed",
new CustomDateEditor(format, true));
binder.registerCustomEditor(Date.class, "updated",
new CustomDateEditor(format, true));
binder.registerCustomEditor(Date.class, "created",
new CustomDateEditor(format, true));
}
你懂得.不解释.
如果你的dao的某个方法要 操作数据库, 必须加上
@Transactional注解
分享到:
相关推荐
Spring MVC 是一个基于Java的轻量级Web应用框架,它为构建模型-视图-控制器(MVC)架构的应用程序提供了强大的支持。Spring 框架本身提供了全面的依赖注入(DI)和面向切面编程(AOP)功能,而Spring MVC 则是Spring...
Spring MVC 是一款强大的Java Web开发...对于想要深入理解和使用Spring MVC的开发者来说,这是一份非常宝贵的资源。通过学习这个教程,你可以提高你的Web开发技能,更好地利用Spring MVC来构建高质量的Java Web应用。
不过,现代Spring MVC项目往往倾向于使用Java配置或Spring Boot的自动配置,减少了XML的使用。 在"Springmvc"这个压缩包中,可能包含了配置文件、控制器类、视图模板(可能是JSP或Thymeleaf文件)以及其他相关的源...
SSM(spring+spring MVC+mybatis)开发学生信息后台管理系统,实现学生增删改查功能设计一个简单的学生信息管理系统,要求使用SSM框架技术整合实现,用户登录后能够通过Web页面添加、删除、修改和查询学生信息 ...
同时,由于这是一个纯净项目,没有预设特定的业务逻辑,因此非常适合初学者学习和实践Spring MVC、Spring和Maven的集成使用。通过这个项目,开发者能够深入理解这三个框架如何协同工作,从而提升开发效率和代码质量...
标题“spring mvc 封装list到后台 SpringMVC_Multi_Row”涉及到的是Spring MVC框架中如何处理前端传入的包含多行数据的列表。在Web应用开发中,经常需要将用户在页面上填写的多行数据(如表格)一次性提交到后台进行...
提供的`Spring MVC中如何传递对象参数 - @ 小浩 - 博客园.url`链接可能指向一篇详细的博客文章,介绍了更多关于使用`@ModelAttribute`和对象参数的实践技巧和注意事项。 总结来说,通过Spring MVC的`@...
8. **Dojo 或 jQuery**:如果在前端使用 JavaScript 框架,如 Dojo 或 jQuery,对应的库也需要包含在项目中,虽然这些不是 Spring MVC 的直接依赖,但它们能增强用户体验和交互效果。 9. **AOP 相关库**:如果使用...
另外,Spring Boot的出现简化了Spring MVC的配置,通过自动配置和起步依赖,使得搭建Spring MVC项目变得更加简单。 除此之外,Spring MVC还支持数据绑定、验证、本地化、主题、异常处理等功能。例如,使用@...
下面我们将详细探讨Spring MVC的一些关键知识点。 1. **MVC模式**:MVC(Model-View-Controller)是一种设计模式,将业务逻辑、数据和用户界面分离。在Spring MVC中,Model代表业务对象,View负责展示,Controller...
6. **数据绑定与验证**:Spring MVC提供了数据绑定和验证功能,允许将表单数据自动绑定到Java对象,并进行校验,简化了业务逻辑处理。 7. **视图解析**:Spring MVC 4.0支持多种视图技术,如JSP、FreeMarker、...
4. **ModelAndView对象**: 这是Spring MVC中用于封装模型数据和视图名的对象。在Controller方法中,可以返回一个ModelAndView对象,指定返回的视图和传递给视图的数据。 5. **视图解析**: Spring MVC支持多种视图...
这是一个基于Java技术栈的通用后台管理系统,主要使用了Spring MVC、Spring、Hibernate、Bootstrap和Maven等技术。这些技术在IT行业中广泛应用于企业级Web应用开发,构建高效、可维护的系统。下面将分别详细解释这些...
**基于JPA+Hibernate+Spring+Spring MVC注解方式项目详解** 在现代Java Web开发中,Spring框架扮演了核心角色,而Spring MVC作为其MVC(Model-View-Controller)实现,提供了强大的Web应用程序构建能力。同时,JPA...
Spring MVC是Spring框架的一个核心模块,专为构建Web应用程序而设计。它提供了模型-视图-控制器(MVC)架构,使开发者能够有效地分离业务逻辑、数据处理和用户界面。在"Spring MVC 4.2.3"版本中,我们看到了一系列的...
Spring MVC是一种基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,使用了IoC容器,支持RESTful风格的应用程序开发。Spring MVC通过分离模型(Model)、视图(View)和控制器(Controller)来简化Web开发...
通过以上封装,Spring MVC和MyBatis的集成可以实现灵活、高效的开发流程,降低了开发难度,使得项目更易于维护和扩展。在实际开发中,我们还需要考虑事务管理、安全性、性能优化等多个方面,以确保系统的稳定性和...
在JavaWeb开发中,Spring、Spring MVC、Hibernate和Ehcache是四个非常关键的框架,它们共同构建了一个高效、灵活的后台系统。下面将详细解释这些框架的核心功能、使用场景以及它们之间的协作关系。 首先,Spring...
这是一个基于Java技术栈开发的企业级项目,主要使用了Spring MVC、Spring、Hibernate、Bootstrap和Maven等关键组件。下面将详细解析这些技术及其在项目中的作用。 **Spring MVC**: Spring MVC是Spring框架的一个...