1、自己写的代码用springmvc+hibernate实现增删改查 前段时间学习了下springmvc+hibernate.用这个框架实现了增删改查,想把学习的东西贴出来,和大家一起交流。由于之前没有学过什么框架之类的东西,在学习时遇到了很多困难,学的也很慢。 我学先看的是hibernate,hibernate主要是用在数据持久层,用来把数据持久化,建立java实体bean与数据库中表的对应。利用hibernate操作数据库时就有很多封装好了的方法,很方便调用。再学的是spring,知道它是作为一个容器在使用,以及ioc和aop,不过我这里基本没有用到aop,没有涉及到切面的编程。在学sprin
2、gmvc时,以为它就是spring,根本没有想这是一个基于MVC的框架,框架这东西之前我是一直都不理解。后来靠给我讲了下,这个框架里面最重要的就是分层,它的模型层就是与数据库打交道的,控制层是不与数据打交道的,是在业务层的基础上进行控制,而业务层是实现模型层的一些方法,最后是用视图层进行显示,搞清楚逻辑关系是很重要的。直接贴代码:实体类:student.javapackage com.xl.entity;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.Generat
3、edValue;import javax.persistence.GenerationType;import javax.persistence.Id;import javax.persistence.SequenceGenerator;import javax.persistence.Table;EntityTable(name=student)public class Student Id SequenceGenerator(name=seq_student,sequenceName=seq_student) GeneratedValue(strategy=GenerationType.S
4、EQUENCE,generator=seq_student) Column(length=20) private Integer id; Column(length=50) private String name; Column(length=20) private Integer age; Column(length=50) private String course; public Student() public Student(Integer id,String name,String course,Integer age) this.id=id; this.age=age; this
5、.name=name; this.course=course; public Integer getId() return id; public void setId(Integer id) this.id = id; public String getName() return name; public void setName(String name) this.name = name; public Integer getAge() return age; public void setAge(Integer age) this.age = age; public String getC
6、ourse() return course; public void setCourse(String course) this.course = course; IStudentDao.javapackage com.xl.dao;import java.util.List;import com.xl.entity.Student;public interface IStudentDao public void addStudent(Student stu); public List getAllStudents(); public Student getStudentById(Intege
7、r id); public void delStudent(Integer id); public void update(Student stu);StudentService.javapackage com.xl.service;import java.util.List;import javax.annotation.Resource;import org.hibernate.SessionFactory;import org.springframework.stereotype.Service;import org.springframework.transaction.annotat
8、ion.Transactional;import com.xl.dao.IStudentDao;import com.xl.entity.Student;ServiceTransactionalpublic class StudentService implements IStudentDao Resource private SessionFactory sessionFactory; public void addStudent(Student stu) sessionFactory.getCurrentSession().persist(stu); SuppressWarnings(un
9、checked) public List getAllStudents() return sessionFactory.getCurrentSession().createQuery(from Student order by id).list(); public Student getStudentById(Integer id) return (Student) sessionFactory.getCurrentSession().get(Student.class, id); public void delStudent(Integer id) sessionFactory.getCur
10、rentSession().delete(sessionFactory.getCurrentSession().load(Student.class, id); public void update(Student stu) sessionFactory.getCurrentSession().update(stu); StudentController.javapackage com.xl.controller;import java.io.UnsupportedEncodingException;import .URLDecoder;import java.util.List;import
11、 javax.annotation.Resource;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import com.
12、xl.dao.IStudentDao;import com.xl.entity.Student;ControllerRequestMapping(/student)public class StudentController Resource private IStudentDao studentService; /* * 获取学生列表 在首页显示 * param req * param rep * return */ RequestMapping(/stu) public String tostu(HttpServletRequest req,HttpServletResponse rep)
13、 List students=studentService.getAllStudents(); req.setAttribute(studentlist, students); return stu; /* * 根据获取的id删除对应的学生信息 * param req * param rep * param id * return */ RequestMapping(/del) public String del(HttpServletRequest req,HttpServletResponse rep,Integer id) studentService.delStudent(id); L
14、ist students=studentService.getAllStudents(); req.setAttribute(studentlist, students); return stu; /* * 在增加学生信息时候 这里要注意编码 * 要先判断名字,年龄是否为空。也可以用ajax,对于更新就不是用这方法 * param name * param age * param course * param req * param rep * return */ RequestMapping(/add) public String add(String name,Integer age,St
15、ring course, HttpServletRequest req,HttpServletResponse rep) try rep.setContentType(text/html;charset=utf-8); Student student=null; student = new Student(null,URLDecoder.decode(name,utf-8),URLDecoder.decode(course,utf-8),age); studentService.addStudent(student); List students=studentService.getAllSt
16、udents(); req.setAttribute(studentlist, students); return stu; /printWriter.write(qq.getBytes(); catch (Exception e) e.printStackTrace(); return null; /* * 根据传来的id取出student在页面中显示出来,与update分开 * param req * param id * return */ RequestMapping(/toUpdate) public String toUpdate(HttpServletRequest req,In
17、teger id) /查找要更新的数据 Student student=studentService.getStudentById(id); /放入作用域 req.setAttribute(student, student); return update; /* * 类似于删除,根据传来的student。直接用StudentService里的update方法更新 * param student * param req * param rep */ RequestMapping(/update) public String update(Student student,HttpServletRe
18、quest req,HttpServletResponse rep) try System.out.println(12121212); rep.setContentType(text/html;charset=utf-8); Student newstudent=null; newstudent=new Student(student.getId(),URLDecoder.decode(student.getName(),utf-8), URLDecoder.decode(student.getCourse(),utf-8),student.getAge(); studentService.
19、update(newstudent); List students=studentService.getAllStudents(); req.setAttribute(studentlist, students); return stu; catch(Exception e) e.printStackTrace(); return null; 配置文件beans.xml hibernate.dialect=org.hibernate.dialect.OracleDialect hibernate.hbm2ddl.auto=update hibernate.show_sql=true hibernate.format_sql=false classpath*:config/hibernate.cfg.xml hibernate.hbm.xml!DOCTYPE hibernate-configuration PUBLIC -/Hibernate/Hibernate Configuration DTD 3.0/EN Springmvc-servlet.xml web.xmlweb-app xmlns:xsi=http:/www.w3.org/2001/XMLSchema-instance xmlns= xmlns:
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2