ssh(Spring+Spring mvc+hibernate)简单增删改查案例

简介: ssh(Spring+Spring mvc+hibernate)简单增删改查案例

最近和spring mvc干上了,各种奇葩问题,各种解决。。。现在想想这历程还挺艰辛的,好了,不在这墨迹了,我们进入正题。

据说,现在Springmvc很流行,既然很流行就搞搞它,看看是个什么鬼,于是就开始写了,我们先来个数据库,我这里采用的是mysql,

项目中所用到的jar文件:

ssh(Spring+Spring mvc+hibernate)的jar包

大家随意,数据库文件如下:

/*
SQLyog Professional v12.08 (32 bit)
MySQL - 5.5.27 : Database - testdb
*********************************************************************
*/
/*!40101 SET NAMES utf8 */;
/*!40101 SET SQL_MODE=''*/;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
CREATE DATABASE /*!32312 IF NOT EXISTS*/`testdb` /*!40100 DEFAULT CHARACTER SET utf8 */;
USE `testdb`;
/*Table structure for table `dept` */
DROP TABLE IF EXISTS `dept`;
CREATE TABLE `dept` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) DEFAULT NULL,
  `loc` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8;
/*Data for the table `dept` */
insert  into `dept`(`id`,`name`,`loc`) values (1,'开发部','山东济南'),(2,'测试部','山西吕梁'),(3,'开发部3','山东济南3'),(4,'开发部4','山东济南4'),(5,'研发部','山东淄博'),(6,'开发部6','山东济南6'),(7,'开发部7','山东济南7'),(8,'开发部8','山东济南8'),(14,'前端部','山西运城');
/*Table structure for table `emp` */
DROP TABLE IF EXISTS `emp`;
CREATE TABLE `emp` (
  `eid` int(11) NOT NULL AUTO_INCREMENT,
  `ename` varchar(50) DEFAULT NULL,
  `eage` int(11) DEFAULT NULL,
  `edate` datetime DEFAULT NULL,
  `did` int(11) DEFAULT NULL,
  PRIMARY KEY (`eid`),
  KEY `fk_dept` (`did`),
  CONSTRAINT `fk_dept` FOREIGN KEY (`did`) REFERENCES `dept` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;
/*Data for the table `emp` */
insert  into `emp`(`eid`,`ename`,`eage`,`edate`,`did`) values (-1736410136,'李四',23,'2017-12-12 00:00:00',4),(1,'朱元璋',60,'2012-02-09 00:00:00',1),(2,'祖冲之',36,'2015-02-09 00:00:00',2),(3,'李世明',34,'2013-02-09 00:00:00',3),(4,'徐达',43,'2016-02-09 00:00:00',4),(5,'常遇春',23,'2712-02-09 00:00:00',1),(6,'李达康',45,'2018-02-09 00:00:00',2),(7,'沙瑞金',65,'2019-02-09 00:00:00',1);
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;

数据库名称是testdb。

数据库已经搞定了,接下来我们要不先看看运行效果:

1.查询所有的部门:

2.添加部门:

3.修改部门:

修改成功

4.删除部门:

接下来我们看看员工的,由于是多表关联,所以比部门表的复杂点,但是也复杂不到哪里去!我们接着看:

1.显示所有的员工:

2.添加员工:

添加成功

3.修改员工:

4.删除和部门的一样,就不上图了,我困~~

接下来我们上代码:

一、实体类两个:

1.Emp.java

2.Dept.java

还有两个映射文件:

3.Emp.hbm.xml

4.Dept.hbm.xml

二、Dao层三个:

1.BaseDao

2.IDeptDao

3.IEmpDao

三、Dao实现类三个:

1.BaseDaoImpl

2.DeptDaoImpl

3.EmpDaoImpl

四、Service层2个:

1.IDeptService

2.IEmpService

五、Service实现类2个:

1.DeptServiceImpl

2.EmpServiceImpl

六、Spring配置文件2个:

1.applicationContext-servlet.xml

2.applicationContext.xml

七、hibernate配置文件1个:

1.hibernate.cfg.xml

八、web.xml

九、前台页面7个:

1.index.jsp

2.saveDept.jsp

3.saveEmp.jsp

4.showDept.jsp

5.showEmp.jsp

6.updateDept.jsp

7.updateEmp.jsp

十、控制器两个:

1.EmpController

2.DeptController.java



相关文章
|
7月前
|
前端开发 Java 测试技术
微服务——SpringBoot使用归纳——Spring Boot中的MVC支持——@RequestParam
本文介绍了 `@RequestParam` 注解的使用方法及其与 `@PathVariable` 的区别。`@RequestParam` 用于从请求中获取参数值(如 GET 请求的 URL 参数或 POST 请求的表单数据),而 `@PathVariable` 用于从 URL 模板中提取参数。文章通过示例代码详细说明了 `@RequestParam` 的常用属性,如 `required` 和 `defaultValue`,并展示了如何用实体类封装大量表单参数以简化处理流程。最后,结合 Postman 测试工具验证了接口的功能。
346 0
微服务——SpringBoot使用归纳——Spring Boot中的MVC支持——@RequestParam
|
7月前
|
JSON 前端开发 Java
微服务——SpringBoot使用归纳——Spring Boot中的MVC支持——@RequestBody
`@RequestBody` 是 Spring 框架中的注解,用于将 HTTP 请求体中的 JSON 数据自动映射为 Java 对象。例如,前端通过 POST 请求发送包含 `username` 和 `password` 的 JSON 数据,后端可通过带有 `@RequestBody` 注解的方法参数接收并处理。此注解适用于传递复杂对象的场景,简化了数据解析过程。与表单提交不同,它主要用于接收 JSON 格式的实体数据。
524 0
|
7月前
|
前端开发 Java 微服务
微服务——SpringBoot使用归纳——Spring Boot中的MVC支持——@PathVariable
`@PathVariable` 是 Spring Boot 中用于从 URL 中提取参数的注解,支持 RESTful 风格接口开发。例如,通过 `@GetMapping("/user/{id}")` 可以将 URL 中的 `{id}` 参数自动映射到方法参数中。若参数名不一致,可通过 `@PathVariable("自定义名")` 指定绑定关系。此外,还支持多参数占位符,如 `/user/{id}/{name}`,分别映射到方法中的多个参数。运行项目后,访问指定 URL 即可验证参数是否正确接收。
345 0
|
7月前
|
JSON 前端开发 Java
微服务——SpringBoot使用归纳——Spring Boot中的MVC支持——@RequestMapping
@RequestMapping 是 Spring MVC 中用于请求地址映射的注解,可作用于类或方法上。类级别定义控制器父路径,方法级别进一步指定处理逻辑。常用属性包括 value(请求地址)、method(请求类型,如 GET/POST 等,默认 GET)和 produces(返回内容类型)。例如:`@RequestMapping(value = "/test", produces = "application/json; charset=UTF-8")`。此外,针对不同请求方式还有简化注解,如 @GetMapping、@PostMapping 等。
295 0
|
7月前
|
JSON 前端开发 Java
微服务——SpringBoot使用归纳——Spring Boot中的MVC支持——@RestController
本文主要介绍 Spring Boot 中 MVC 开发常用的几个注解及其使用方式,包括 `@RestController`、`@RequestMapping`、`@PathVariable`、`@RequestParam` 和 `@RequestBody`。其中重点讲解了 `@RestController` 注解的构成与特点:它是 `@Controller` 和 `@ResponseBody` 的结合体,适用于返回 JSON 数据的场景。文章还指出,在需要模板渲染(如 Thymeleaf)而非前后端分离的情况下,应使用 `@Controller` 而非 `@RestController`
228 0
|
3月前
|
Java 数据库连接 API
Java 8 + 特性及 Spring Boot 与 Hibernate 等最新技术的实操内容详解
本内容涵盖Java 8+核心语法、Spring Boot与Hibernate实操,按考试考点分类整理,含技术详解与代码示例,助力掌握最新Java技术与应用。
111 2
|
3月前
|
前端开发 Java API
Spring Cloud Gateway Server Web MVC报错“Unsupported transfer encoding: chunked”解决
本文解析了Spring Cloud Gateway中出现“Unsupported transfer encoding: chunked”错误的原因,指出该问题源于Feign依赖的HTTP客户端与服务端的`chunked`传输编码不兼容,并提供了具体的解决方案。通过规范Feign客户端接口的返回类型,可有效避免该异常,提升系统兼容性与稳定性。
198 0
|
3月前
|
SQL Java 数据库连接
Spring、SpringMVC 与 MyBatis 核心知识点解析
我梳理的这些内容,涵盖了 Spring、SpringMVC 和 MyBatis 的核心知识点。 在 Spring 中,我了解到 IOC 是控制反转,把对象控制权交容器;DI 是依赖注入,有三种实现方式。Bean 有五种作用域,单例 bean 的线程安全问题及自动装配方式也清晰了。事务基于数据库和 AOP,有失效场景和七种传播行为。AOP 是面向切面编程,动态代理有 JDK 和 CGLIB 两种。 SpringMVC 的 11 步执行流程我烂熟于心,还有那些常用注解的用法。 MyBatis 里,#{} 和 ${} 的区别很关键,获取主键、处理字段与属性名不匹配的方法也掌握了。多表查询、动态
116 0
|
3月前
|
JSON 前端开发 Java
第05课:Spring Boot中的MVC支持
第05课:Spring Boot中的MVC支持
177 0
|
9月前
|
SQL Java 数据库连接
对Spring、SpringMVC、MyBatis框架的介绍与解释
Spring 框架提供了全面的基础设施支持,Spring MVC 专注于 Web 层的开发,而 MyBatis 则是一个高效的持久层框架。这三个框架结合使用,可以显著提升 Java 企业级应用的开发效率和质量。通过理解它们的核心特性和使用方法,开发者可以更好地构建和维护复杂的应用程序。
384 29