在(一)篇框架搭好之后,继续在dao层,service层,action层编写代码
dao层-接口Dao.java
package dukun.dao;
import java.io.Serializable;
import java.util.List;
public interface Dao {
void save(Object object);
void saveOrUpdate(Object object);
void modify(Object object);
Object find(Class<?> cla, Serializable id);
List<Object> list(String hql);
void delete(Object object);
void update(Object object);
}
dao的实现类DaoBean.java
package dukun.dao.impl;
import java.io.Serializable;
import java.util.List;
import javax.annotation.Resource;
import org.hibernate.SessionFactory;
import org.springframework.stereotype.Repository;
import dukun.dao.Dao;
@Repository("daoBean")
public class DaoBean implements Dao {
@Resource(name="sessionFactory")
private SessionFactory sessionFactory;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
public Object find(Class<?> cla, Serializable id) {
return sessionFactory.getCurrentSession().get(cla, id);
}
public List<Object> list(String hql) {
List<Object> list = null;
list = sessionFactory.getCurrentSession().createQuery(hql).list();
return list;
}
public void save(Object object) {
// sessionFactory.getCurrentSession().save(object);
sessionFactory.getCurrentSession().persist(object);
}
public void modify(Object object) {
// sessionFactory.getCurrentSession().update(object);
sessionFactory.getCurrentSession().merge(object);
}
public void delete(Object object) {
sessionFactory.getCurrentSession().delete(object);
}
public void saveOrUpdate(Object object) {
sessionFactory.getCurrentSession().saveOrUpdate(object);
}
public void update(Object object) {
sessionFactory.getCurrentSession().update(object);
}
}
service层接口,ClassesService.java
package dukun.service;
import java.util.List;
import dukun.model.Classes;
public interface ClassesService {
void save(Classes classes);
Classes find(Class<Classes> cla,String id);
List<Object> list(String hql);
}
<pre name="code" class="java">ClassesService的实现类ClassesServiceBean.java
package dukun.service.impl;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import dukun.dao.Dao;
import dukun.model.Classes;
import dukun.service.ClassesService;
@Service("classesServiceBean")
public class ClassesServiceBean implements ClassesService{
@Resource(name="daoBean")
private Dao dao;
public void setDao(Dao dao) {
this.dao = dao;
}
public void save(Classes classes) {
dao.save(classes);
}
public Classes find(Class<Classes> cla, String id) {
return (Classes) dao.find(cla, id);
}
public List<Object> list(String hql) {
return dao.list(hql);
}
}
接口StudentService.java
package dukun.service;
import java.io.Serializable;
import java.util.List;
import dukun.model.Student;
public interface StudentService {
void save(Student student);
List<Object> list(String hql);
void delete(Student student);
void saveOrUpdate(Student student);
String selectClassName(String id);
Object studentGet(Class<?> cla, Serializable id);
String update(Student student);
}
StudentService的实现类StudentServiceBean.java
package dukun.service.impl;
import java.io.Serializable;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import dukun.dao.Dao;
import dukun.model.Student;
import dukun.service.StudentService;
@Service("studentServiceBean")
public class StudentServiceBean implements StudentService{
@Resource(name="daoBean")
private Dao dao;
public void save(Student student) {
dao.save(student);
}
public List<Object> list(String hql) {
List<Object> list = dao.list(hql);
return list;
}
public void delete(Student student) {
dao.delete(student);
}
public void saveOrUpdate(Student student) {
dao.saveOrUpdate(student);
}
//根据班级id查询班级名
public String selectClassName(String id) {
String hql = "select className from Classes where id = '"+id+"'";
List<Object> list = dao.list(hql);
String className = (String) list.get(0);
return className;
}
//回显学生信息
public Object studentGet(Class<?> cla, Serializable id){
Object obj = dao.find(cla, id);
return obj;
}
public String update(Student student) {
dao.update(student);
return "success";
}
}
action层代码
StudentAction.java
package dukun.action;
import java.io.UnsupportedEncodingException;
import java.util.List;
import javax.annotation.Resource;
import dukun.model.Classes;
import dukun.model.Student;
import dukun.service.StudentService;
public class StudentAction {
@Resource(name="studentServiceBean")
private StudentService studentService;
private List<Object> students;
private Student student;
private Classes classes;
private List<Object> classesList;
public List<Object> getClassesList() {
return classesList;
}
public void setClassesList(List<Object> classesList) {
this.classesList = classesList;
}
public Classes getClasses() {
return classes;
}
public void setClasses(Classes classes) {
this.classes = classes;
}
public Student getStudent() {
return student;
}
public void setStudent(Student student) {
this.student = student;
}
public List<Object> getStudents() {
return students;
}
public void setStudentService(StudentService studentService) {
this.studentService = studentService;
}
//查询出所有的学生信息
public String listAll(){
String hql = "from Student";
students = studentService.list(hql);
return "success";
}
//删除某一个学生信息
public String delete(){
studentService.delete(student);
return "success";
}
//添加某一个学生信息
public String add() throws UnsupportedEncodingException{
//解决前端jsp传值的中文乱码问题(方法二 通过spring自带的过滤器,在web.xml中配置)
// String name = new String(student.getStuName().getBytes("iso-8859-1"),"utf-8");
student.setStuName(student.getStuName());
//根据前端传来的班级id查询出班级名
classes.setClassName(studentService.selectClassName(classes.getId()));
student.setClasses(classes);
studentService.saveOrUpdate(student);
return "success";
}
//回显学生信息
public String studentGet(){
student = (Student) studentService.studentGet(Student.class, student.getId());
String hql = "from Classes";
classesList = studentService.list(hql);
return "success";
}
//修改某一个学生信息
public String update() throws UnsupportedEncodingException{
// String name = new String(student.getStuName().getBytes("iso-8859-1"),"utf-8");
student.setStuName(student.getStuName());
classes.setClassName(studentService.selectClassName(classes.getId()));
student.setClasses(classes);
studentService.update(student);
return "success";
}
}
ClassesAction.java
package dukun.action;
import java.util.List;
import javax.annotation.Resource;
import dukun.model.Classes;
import dukun.model.Student;
import dukun.service.ClassesService;
public class ClassesAction {
@Resource(name="classesServiceBean")
private ClassesService classesService;
private Classes classes;
private List<Object> classesList;
private Student student;
public Student getStudent() {
return student;
}
public void setStudent(Student student) {
this.student = student;
}
public List<Object> getClassesList() {
return classesList;
}
public Classes getClasses() {
return classes;
}
public void setClassesService(ClassesService classesService) {
this.classesService = classesService;
}
public String find(){
classes = classesService.find(Classes.class, "40282681562b263401562b2656090001");
return "success";
}
public String listAllClasses(){
String hql = "from Classes";
classesList = classesService.list(hql);
return "success";
}
}
三层代码编写完成,最后是前端的页面显示。