一、技术准备
编程语言:Java
前端:HTML, CSS, JavaScript, jQuery
J2EE:Tomcat, Servlet, JSP, Filter
框架:Spring, Spring MVC, MyBatis, Spring 与 MyBatis 整合, SSM 整合
数据库:MySQL
开发工具:IDEA, Maven
二、项目要实现的功能:
能增删改查学生的信息(学号,名称,年龄,性别,出生日期)
三、项目实现:
1.前期准备
1.使用idea新建一个maven项目,使用webapp骨架进行搭建
2.目录完善
在java包下增加controller、service、entity、dao层,在resources中增加mapper文件夹
下图为最终的项目的目录结构
3.编写配置文件
(1)在【pom.xml】文件中声明依赖的 jar 包
(2)在【web.xml】中声明编码过滤器并配置 DispatcherServlet
(3)在【spring-mybatis.xml】中完成 spring 和 mybatis 的配置
(4)在【spring-mvc.xml】中完成 Spring MVC 的相关配置
(5)在【jdbc.properties】中配置 c3p0 数据库连接池
(6)在【logback.xml】中完成日志输出的相关配置
2.设计实体类Student
在entity中创建实体类Student
包含属性如下
3.创建数据库以及表
4.设计dao类
在dao包下创建【StudentDao】接口:
规范所要实现的方法
然后在【resources/mapper】下创建好对应的映射文件【StudentDao.xml】:实现上述接口的功能
5.设计service层
在service包下创建【StudentService】接口:规范所要实现的方法,方法同dao层
并在相同包名下创建实现类【StudentServiceImpl】,进行方法的实现,即调用dao层自动装载的bean调用其方法进行实现
6.设计controller层
接收前端参数,调用service层的方法,进行功能的实现,方法同service层的方法
7.编写前端界面
listStudent.jsp,editStudent.jsp
四、界面展示
在增加学生表里填写信息之后,点击提交,上面学生列表里会新增一行该学生信息;
点击删除按钮,会删除该行学生信息;
点击编辑按钮,跳转到下面界面:
点击提交后,会跳转回学生列表页面
五、遇到的问题:
空指针异常
将int改为Integer,解决
六、知识
1.javabean实体类为什么都用包装类型?
举个例子,一个Student类,其成绩属性,我们设置为
private Integer socre;
而不设置为
private int socre;
这是因为有的学生会出现考0分,而有的学生缺考,这样,就没有办法去区分了。
包装类型 Integer 和 基本类型 int 的最大区别就是包装类可以设置为 null。
缺考设置为null,就ok了。
再举例 在我们使用mybatis的时候,mybatis会判断参数属性是否为空null,而我们实体类中的某个属性如果使用基本数据类型,如int,默认为0,那mybatis就无法对这个参数进行判断。