model层代码的实现是三个类,代码如下:
Course.java
package com.mvc.test.model;
@Entity(name="Course")
public class Course extends BaseEntity{
private static final long serialVersionUID = 230505289995335654L;
private String cname;
private String cid;
private String classroom;
private String teacher;
public String getCname() {
return cname;
}
public void setCname(String cname) {
this.cname = cname;
}
public String getCid() {
return cid;
}
public void setCid(String cid) {
this.cid = cid;
}
public String getClassroom() {
return classroom;
}
public void setClassroom(String classroom) {
this.classroom = classroom;
}
public String getTeacher() {
return teacher;
}
public void setTeacher(String teacher) {
this.teacher = teacher;
}
public Course(String cname, String cid, String classroom, String teacher) {
super();
this.cname = cname;
this.cid = cid;
this.classroom = classroom;
this.teacher = teacher;
}
public Course() {
super();
}
}
StudentCourse.java
package com.mvc.test.model;
@Entity(name = "B_STUDENT_COURSE")
public class StudentCourse implements Serializable {
@Id
private Long courseId;
@Id
private Long studentId;
public Long getCourseId() {
return courseId;
}
public void setCourseId(Long courseId) {
this.courseId = courseId;
}
public Long getStudentId() {
return studentId;
}
public void setStudentId(Long studentId) {
this.studentId = studentId;
}
}
Undergraduate.java
package com.mvc.test.model;
@Entity(name="UNDERGRADUATE")
public class Undergraduate extends BaseEntity{
private static final long serialVersionUID = 230505289995335654L;
private String uname;
private String uid;
private Integer age;
private String grade;
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
public String getUid() {
return uid;
}
public void setUid(String uid) {
this.uid = uid;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getGrade() {
return grade;
}
public void setGrade(String grade) {
this.grade = grade;
}
public Undergraduate() {
super();
// TODO Auto-generated constructor stub
}
public Undergraduate(String uname, String uid, Integer age, String grade) {
super();
this.uname = uname;
this.uid = uid;
this.age = age;
this.grade = grade;
}
}
service层的代码实现如下:
CoursManager.java
@Service
public class CourseManager extends BaseService<Course, Serializable>{
}
StudentCourseManager.java
@Service
public class StudentCourseManager extends BaseService<StudentCourse, Serializable>{
}
UndergraduateManager.java
@Service
public class UndergraduateManager extends BaseService<Undergraduate, Serializable>{
@Autowired
private StudentCourseManager studentCourseManager;
public void saveWithCourse(Undergraduate undergraduate, Long courseId){
super.save(undergraduate);
if(courseId!=null){
StudentCourse uconnection = new StudentCourse();
uconnection.setCourseId(courseId);
uconnection.setStudentId(undergraduate.getObjectId());
studentCourseManager.save(uconnection);
}
}
public List<StudentCourse> searchStudentByCourseId(Long courseId){
List<StudentCourse> studentId=studentCourseManager.searchByNativeSql(StudentCourse.class, "select * from B_STUDENT_COURSE where course_id = "+courseId);
return studentId;
}
public List<Undergraduate> searchStudentByStudentId(List<StudentCourse> studentId){
Iterator it=studentId.iterator();
List<Undergraduate> students=null;
StringBuffer sb = new StringBuffer();
while(it.hasNext()){
StudentCourse studentcourse=(StudentCourse) it.next();
Long studentid=studentcourse.getStudentId();
sb.append(","+studentid);
}
String sql="SELECT * FROM UNDERGRADUATE A WHERE A.object_id in( 0"+sb+")";
students=searchByNativeSql(Undergraduate.class,sql);
return students;
}
}
Controller层的代码如下:
CourseController.java
@Controller
@RequestMapping("course")
public class CourseController extends PageController<Course>{
@Autowired
private CourseManager courseManager;
@Override
public PageManager<Course> getEntityManager() {
return courseManager;
}
@Override
public String getFileBasePath() {
return "student/";
}
@RequestMapping(value = "/delete")
public String deletefile(HttpServletRequest request, HttpServletResponse response, @PathVariable Long objectId)
throws Exception {
return handleDelete(request, response, objectId);
}
protected String handleDelete(HttpServletRequest request, HttpServletResponse response, Long objectId)
throws Exception {
getManager().delete(objectId);
return "student/deleteOK" ;
}
}
StudentCourseController.java
@Controller
@RequestMapping("undergraduatecourse")
public class StudentCourseController extends PageController<Undergraduate> {
@Autowired
private CourseManager courseManager;
@Autowired
private StudentManager studentManager;
@Autowired
private StudentCourseManager cuconnectionManager;
@Autowired
private UndergraduateManager undergraduateManager;
@Override
public PageManager<Undergraduate> getEntityManager() {
return undergraduateManager;
}
@Override
public String getFileBasePath() {
return "student/";
}
@RequestMapping(value = "/addstudent")
public String addstudent(HttpServletRequest request,
HttpServletResponse response)
throws Exception {
return "student/editUndergraduate";
}
protected String handleSave(HttpServletRequest request, ModelMap modelMap, Undergraduate t) throws Exception {
Long courseId = null;
if(StringUtils.isNotBlank(request.getParameter("courseId"))){
try{
courseId = Long.parseLong(request.getParameter("courseId"));
}catch(Exception e){
}
}
undergraduateManager.saveWithCourse(t,courseId);
return "student/saveStudent";
}
}
UndergraduateController.java
@Controller
@RequestMapping("undergraduate")
public class UndergraduateController extends PageController<Undergraduate>{
@Autowired
private UndergraduateManager undergraduateManager;
@Override
public PageManager<Undergraduate> getEntityManager() {
return undergraduateManager;
}
@Override
public String getFileBasePath() {
return "student/";
}
@RequestMapping(value = "/addstudent")
public String addstudent(HttpServletRequest request,
HttpServletResponse response)
throws Exception {
return "student/editUndergraduate";
}
protected String handleSave(HttpServletRequest request, ModelMap modelMap, Undergraduate t) throws Exception {
Long courseId = null;
if(StringUtils.isNotBlank(request.getParameter("courseId"))){
try{
courseId = Long.parseLong(request.getParameter("courseId"));
}catch(Exception e){
}
}
undergraduateManager.saveWithCourse(t,courseId);
return "student/saveStudent";
}
@RequestMapping(value ="/findstudent/{objectId}")
public String findstudent( HttpServletRequest request, HttpServletResponse response, @PathVariable Long objectId ) throws Exception {
List<StudentCourse> studentIdCollection=undergraduateManager.searchStudentByCourseId(objectId);
List<Undergraduate> students=undergraduateManager.searchStudentByStudentId(studentIdCollection);
request.setAttribute("student", students);
return "student/showdatebase";
}
}