## 一个案例带你快速入门SSM开发
**写在前面的话:**关于SSM框架的工程搭建请点击这里前往我的博客[SSM整合工程的搭建](http://codingxiaxw.cn/2016/11/15/44-ssm%E7%9A%84%E6%95%B4%E5%90%88/)
## 开发环境
IDEA Spring3.x+SpringMVC+Mybatis
没有用到maven管理工具。
## 1.实现商品的列表展示
### 1.1提出需求
功能描述:在页面中展示商品列表。
### 1.2编写表
sql语句见github中.sql文件。
### 1.3持久层mapper的编写
编写好数据库后我们便可以通过MyBatis逆向工程快速生成对单表映射的sql,包括mapper.java、mapper.xml和pojo类。
根据逆向工程生成的这三个文件与单表都是一对一的关系,例如通过Items表会生成ItemsMapper.java、ItemsMapper.xml和Items.java的pojo类,这里我们为了便于需求的扩展,所以另外自己编写一个ItemsCustom.java并继承Items.java和Items.java的包装类ItemsQueryVo.java,代码如下:
```java
public class ItemsQueryVo {
//商品信息
private ItemsCustom itemsCustom;
public ItemsCustom getItemsCustom() {
return itemsCustom;
}
public void setItemsCustom(ItemsCustom itemsCustom) {
this.itemsCustom = itemsCustom;
}
}
```
然后自己编写一个ItemsCustomerMapper.xml:
```xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="mapper.ItemsMapperCustom">
<!-- 商品查询的sql片段
建议是以单表为单位定义查询条件
建议将常用的查询条件都写出来
-->
<sql id="query_items_where">
<if test="itemsCustom!=null">
<if test="itemsCustom.name!=null and itemsCustom.name!=''">
and name like '%${itemsCustom.name}%'
</if>
<if test="itemsCustom.id!=null">
and id = #{itemsCustom.id}
</if>
</if>
</sql>
<!-- 商品查询
parameterType:输入 查询条件
-->
<select id="findItemsList" parameterType="po.ItemsQueryVo"
resultType="po.ItemsCustom">
SELECT * FROM items
<where>
<include refid="query_items_where"/>
</where>
</select>
</mapper>
```
与ItemsCustomMapper.java:
```java
public interface ItemsMapperCustom {
// 商品查询列表
List<ItemsCustom> findItemsList(ItemsQueryVo itemsQueryVo)
throws Exception;
}
```
至于Mapper的配置我们已经在springmvc.xml中通过spring组件扫描器
```xml
<!--
MapperScannerConfigurer:mapper的扫描器,将包下边的mapper接口自动创建代理对象,
自动创建到spring容器中,bean的id是mapper的类名(首字母小写)
-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 配置扫描包的路径
如果要扫描多个包,中间使用半角逗号分隔
要求mapper.xml和mapper.java同名且在同一个目录
-->
<property name="basePackage" value="mapper"/>
<!-- 使用sqlSessionFactoryBeanName -->
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
</bean>
```
进行了统一的配置。
接口里面调用xml文件中查询表中所有商品列表信息的sql语句,然后我们便可以进行业务逻辑层的代码编写.
### 1.4业务逻辑层service的编写
首先我们在service包下创建一个商品的service接口ItemsService.java文件,里面编写的方法和ItemsCustomMapper.java中的方法对应以实现商品列表的查询:
```java
public interface ItemsService {
//商品的查询列表
public List<ItemsCustom> findItemsList(ItemsQueryVo itemsQueryVo)
throws Exception;
}
```
然后编写其实现类ItemsServiceImpl.java:
```java
public class ItemsServiceImpl implements ItemsService {
//注入mapper
@Autowired
private ItemsMapperCustom itemsMapperCustom;
//商品的查询列表
@Override
public List<ItemsCustom> findItemsList(ItemsQueryVo itemsQueryVo) throws Exception {
return itemsMapperCustom.findItemsList(itemsQueryVo);
}
}
```
代码中通过Spring框架的DI注入依赖对象mapper即itemsMapperCustom对象,然后调用itemsMapperCustom的findItemsList方法实现商品列表查询,然后在spring配置文件applicationContext-service.xml中要进行service的配置,添加如下标签:
```xml
<!--商品配置的service-->
<bean id="itemsService" class="service.impl.ItemsServiceImpl"/>
```
便可。接下来便应该完成控制层Controller.java的代码编写了。
### 1.5控制层Controller的编写
在controller包下创建一个ItemsController.java,里面编写代码:
```java
@Controller
public class ItemsController {
//注入service
@Autowired
private ItemsService itemsService;
@RequestMapping("/queryItems")
public ModelAndView queryItems() throws Exception {
//调用servie来查询商品列表
List<ItemsCustom> itemsList=itemsService.findItemsList(null);
ModelAndView modelAndView=new ModelAndView();
modelAndView.addObject("itemsList",itemsList);
//指定逻辑视图名itemsList
modelAndView.setViewName("itemsList");
return modelAndView;
}
}
```
通过@Autowired注解完成service的依赖注入,通过@Controller注解将Controller自动添加到spring容器IOC中,通过@RequestMapping("/queryItems")注解指明访问该Controller的url。
至于itemsList.jsp的页面编写代码如下:
```xml
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>查询商品列表</title>
</head>
<body>
<form action="${pageContext.request.contextPath }/items/queryItem.action" method="post">
查询条件:
<table width="100%" border=1>
<tr>
<td><input type="submit" value="查询"/></td>
</tr>
</table>
商品列表:
<table width="100%" border=1>
<tr>
<td>商品名称</td>
<td>商品价格</td>
<td>生产日期</td>
<td>商品描述</td>
<td>操作</td>
</tr>
<c:forEach items="${itemsList }" var="item">
<tr>
<td>${item.name }</td>
<td>${item.price }</td>
<td><fmt:formatDate value="${item.createtime}" pattern="yyyy-MM-dd HH:mm:ss"/></td>
<td>${item.detail }</td>
<td><a href="${pageContext.request.contextPath }/items/editItems.action?id=${item.id}">修改</a></td>
</tr>
</c:forEach>
</table>
</form>
</body>
</html>
```
然后我们运行服务器,输入网址`http://localhost:8080/SpringMvcMybatis/queryItems.action`,发现无法看到页面,这是因为我们的spring配置文件没有得到加载,需要在web.xml文件中加入如下内容进行spring容器的配置:
```xml
<!--配置spring容器监听器-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/config/spring/applicationContext-*.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
```
然后重新运行服务器并输入网址,看到如下页面,说明成功使用SSM框架完成开发显示商品列表的项目:
![](http://od2xrf8gr.bkt.clouddn.com/%E5%B1%8F%E5%B9%95%E5%BF%AB%E7%85%A7%202016-11-16%20%E4%B8%8B%E5%8D%888.00.34.png)
到此,我们便通过SSM的整合工程项目,完成了对商品列表的查询。接下来我们再实现对商品的另一个功能:修改商品信息。
## 2.实现商品信息的修改
### 2.1需求
功能描述:商品信息修改。操作流程:1.在商品列表页面点击修改连接。2.打开商品修改页面,显示了当前商品的信息(根据商品id查询商品信息)。3.修改商品信息,点击提交(更新商品信息)。
通过此案例,我们也会穿插用SSM进行注解开发的�
没有合适的资源?快使用搜索试试~ 我知道了~
连接OrientDB的小例子 基于SSM框架
共203个文件
class:64个
jar:62个
xml:33个
3星 · 超过75%的资源 需积分: 20 22 下载量 132 浏览量
2017-11-21
09:46:57
上传
评论
收藏 20.99MB RAR 举报
温馨提示
在SSM框架下 连接OrientDB 不知道如何连接数据库的 可以下载学习
资源推荐
资源详情
资源评论
收起资源包目录
连接OrientDB的小例子 基于SSM框架 (203个子文件)
UserExample$GeneratedCriteria.class 12KB
UserExample$GeneratedCriteria.class 12KB
ItemsExample$GeneratedCriteria.class 11KB
ItemsExample$GeneratedCriteria.class 11KB
OrdersExample$GeneratedCriteria.class 11KB
OrdersExample$GeneratedCriteria.class 11KB
OrderdetailExample$GeneratedCriteria.class 9KB
OrderdetailExample$GeneratedCriteria.class 9KB
UserExample$Criteria.class 8KB
UserExample$Criteria.class 8KB
ItemsExample$Criteria.class 8KB
ItemsExample$Criteria.class 8KB
OrdersExample$Criteria.class 8KB
OrdersExample$Criteria.class 8KB
OrderdetailExample$Criteria.class 6KB
OrderdetailExample$Criteria.class 6KB
ItemsController.class 2KB
ItemsController.class 2KB
OrderdetailExample$Criterion.class 2KB
OrderdetailExample$Criterion.class 2KB
OrdersExample$Criterion.class 2KB
OrdersExample$Criterion.class 2KB
ItemsExample$Criterion.class 2KB
ItemsExample$Criterion.class 2KB
UserExample$Criterion.class 2KB
UserExample$Criterion.class 2KB
OrderdetailExample.class 2KB
OrderdetailExample.class 2KB
OrdersExample.class 2KB
OrdersExample.class 2KB
ItemsExample.class 2KB
ItemsExample.class 2KB
UserExample.class 2KB
UserExample.class 2KB
Items.class 2KB
Items.class 2KB
ItemsServiceImpl.class 2KB
ItemsServiceImpl.class 2KB
User.class 2KB
User.class 2KB
Orders.class 1KB
Orders.class 1KB
CustomDateConverter.class 1KB
CustomDateConverter.class 1KB
Orderdetail.class 1KB
Orderdetail.class 1KB
CustomPropertyEditor.class 984B
CustomPropertyEditor.class 984B
ItemsMapper.class 962B
ItemsMapper.class 962B
OrderdetailMapper.class 877B
OrderdetailMapper.class 877B
OrdersMapper.class 827B
OrdersMapper.class 827B
UserMapper.class 807B
UserMapper.class 807B
ItemsQueryVo.class 532B
ItemsQueryVo.class 532B
ItemsService.class 428B
ItemsService.class 428B
ItemsMapperCustom.class 308B
ItemsMapperCustom.class 308B
ItemsCustom.class 256B
ItemsCustom.class 256B
.classpath 1KB
org.eclipse.wst.jsdt.ui.superType.container 49B
SpringMvcMybatis.iml 1KB
aspectjweaver-1.6.11.jar 1.61MB
aspectjweaver-1.6.11.jar 1.61MB
spring-core-3.2.0.RELEASE.jar 843KB
spring-core-3.2.0.RELEASE.jar 843KB
spring-context-3.2.0.RELEASE.jar 834KB
spring-context-3.2.0.RELEASE.jar 834KB
mybatis-3.2.7.jar 696KB
mybatis-3.2.7.jar 696KB
javassist-3.17.1-GA.jar 695KB
javassist-3.17.1-GA.jar 695KB
mysql-connector-java-5.1.7-bin.jar 693KB
mysql-connector-java-5.1.7-bin.jar 693KB
log4j-core-2.0-rc1.jar 686KB
log4j-core-2.0-rc1.jar 686KB
spring-webmvc-3.2.0.RELEASE.jar 621KB
spring-webmvc-3.2.0.RELEASE.jar 621KB
spring-web-3.2.0.RELEASE.jar 610KB
spring-web-3.2.0.RELEASE.jar 610KB
spring-beans-3.2.0.RELEASE.jar 591KB
spring-beans-3.2.0.RELEASE.jar 591KB
log4j-1.2.17.jar 478KB
log4j-1.2.17.jar 478KB
spring-test-3.2.0.RELEASE.jar 441KB
spring-test-3.2.0.RELEASE.jar 441KB
jstl-1.2.jar 405KB
jstl-1.2.jar 405KB
spring-jdbc-3.2.0.RELEASE.jar 392KB
spring-jdbc-3.2.0.RELEASE.jar 392KB
spring-orm-3.2.0.RELEASE.jar 383KB
spring-orm-3.2.0.RELEASE.jar 383KB
spring-aop-3.2.0.RELEASE.jar 327KB
spring-aop-3.2.0.RELEASE.jar 327KB
cglib-2.2.2.jar 280KB
共 203 条
- 1
- 2
- 3
资源评论
- 祎木一世界2018-09-13mysql 的小例子 这样骗分不好吧
- apollyon1226sdo2018-07-13谢谢分享,没下载下来重下要评论~
中关村科比
- 粉丝: 1
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功