2018-08-22一更
2018-08-28二更
2019-09-05三更(小结)
2019-09-06复盘总结
基础环境搭建
• 1、创建一个maven工程
• 2、引入项目依赖的jar包
1. • spring
2. • springmvc
3. • mybatis
4. • 数据库连接池,驱动包
5. • 其他(jstl,servlet-api,junit)
• 3、引入bootstrap前端框架
• 4、编写ssm整合的关键配置环境搭建
• web.xml,spring,springmvc,mybatis,使用mybatis的逆向工程生成对应的bean以及mapper
• 5、测试mapper
功能点
• 1、分页
• 2、数据校验
• jquery前端校验+JSR303后端校验
• 3、ajax
• 4、Rest风格的URI;
使用HTTP协议请求方式的动词,来表示对资源的操作
1. GET(查询)
2. POST(新增)
3. PUT(修改)
4. DELETE(删除)
技术点
• 1、基础框架-ssm(SpringMVC+Spring+MyBatis)
• 2、数据库-MySQL
• 3、前端框架-bootstrap快速搭建简洁美观的界面
• 4、项目的依赖管理-Maven
• 5、分页-pagehelper
• 6、逆向工程-MyBatis Generator
增删改查的逻辑
- 查询
• 1、访问index.jsp页面
• 2、index.jsp页面发送出查询员工列表请求
• 3、EmployeeController来接受请求,查出员工数据
• 4、来到list.jsp页面进行展示
•5、pageHelper分页插件完成分页查询功能
• URI:/emps
- ajax改写
• 1、index.jsp页面直接发送ajax请求进行员工分页数据的查询
• 2、服务器将查出的数据,以json字符串的形式返回给浏览器
• 3、浏览器收到js字符串。可以使用js对json进行解析,使用js通过 dom增删改改变页面。
• 4、返回json。实现客户端的无关性。
- 新增-逻辑
• 1、在index.jsp页面点击”新增”
• 2、弹出新增对话框
• 3、去数据库查询部门列表,显示在对话框中
• 4、用户输入数据,并进行校验
• jquery前端校验,ajax用户名重复校验,重要数据(后端校验(JSR303),唯一约束);
• 5、完成保存
- 修改
• 1、点击编辑
• 2、弹出用户修改的模态框(显示用户信息)
• 3、点击更新,完成用户修改
- 删除-逻辑
• 1、单个删除
• URI:/emp/{id} DELETE
• 2、批量删除
流程及流程图
- 用户通过我们Bootstrap快速搭建的UI进行访问发送用户请求**(ajax请求)**来到Tomcat服务器,
- 当前项目(SSM)收到请求被SpringMVC解析,SpringMVC找Controller层是否能处理当前请求,
- 如果不能处理该请求就交给Tomcat比如静态资源。
- Controller层调用Service层,需要用到数据库就要调用Dao层通过Mybatis中的Mapper对数据库的处理(我们所有的Mapper接口Mapper文件和数据库内容都是用Mybatis MGB逆向生成的,只是复杂的操作是在Mapper基础上定义的新的方法)
- 如果不需要用到数据库,Service直接处理。
- 最后将处理的结果通过JS解析JSON,然后在页面显示给用户看。
遇到的问题
- 数据连接
<!-- https://mvnrepository.com/artifact/c3p0/c3p0 -->
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.0</version>
</dependency>
数据库连接池jar有问题,用此包就可以了
2.路径
<!-- web路径:-->
不以/开始的相对路径,找资源,以当前资源的路径为基准,经常容易出问题。
以/开始的相对路径,找资源,以服务器的路径为标准(http://localhost:3306);需要加上项目名
http://localhost:3306/crud
处理路径可以在处理上加上
<%
pageContext.setAttribute("APP_PATH", request.getContextPath());
%>
然后调用"APP_PATH"这个全局变量
-
单元测试
单元测试会报Failed to load ApplicationContext错误 <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>provided</scope> </dependency> 请看第五条
4.如果mapper.java和mapper.xml不在同一个 路径下应如何配置
放在不同路径下,创建xml文件路径为resource路径
mapper路径:src/main/java/com.xx.xx
xml路径:src/main/resources/com.xx.xx
修改spring-mybatis.xml
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<!--mybatis配置文件 -->
<property name="configLocation" value="classpath:mybatis-config.xml" />
<!-- xml路径 -->
<property name="mapperLocations" value="classpath:src/main/resources/com.xx.xx" />
</bean>
<!-- mapper路径 Mapper接口所在包名,Spring会自动查找其下的类 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.edip.mapper" />
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
</bean>
5.其他各种错误
这个主要讲一个中心重点:一定要细心。
这个主要讲一个中心重点:一定要细心。
这个主要讲一个中心重点:一定要细心。