基于SSM框架的项目基本步骤

创建数据库与数据表

1、创建数据库
如:CREATE DATABASE db1 CHARACTER SET GBK/UTF8;
2、创建/设计用户的数据表
如:CREATE TABLE user(name VARCHAR(10),age INT) ENGINE=INNODB/MYISAM CHARSET=GBK/UTF8;

创建项目

1. 新建maven项目
2. 完成项目的基本配置
2.1 解决错误,即生成web.xml
2.2 添加TomcatRuntime
2.3 添加依赖(在pom.xml文件中)
— spring依赖jar包:spring-webmvc
— junit测试jar包:junit
— 数据库连接池:commons-dbcp
— msql数据库:mysql-connector-java
— mybatis:mybatis
— mybatis-spring整合:mybatis-spring
— jstl(jsp标准标签库):jst
— spring-jdbc:spring-jdbc
— Jackson:jackson-databind
2.4 配置web.xml文件
— 配置Servlet前端控制器
— 配置Filter编码格式
配置web.xml文件
2.5 Spring的配置文件
— spring-mvc.xml
— spring-dao.xml
— spring-service.xml
2.6 数据库的配置文件:db.properties
2.7 MyBatis的映射模块:xxMapper.xml
这里写图片描述
3. 持久层
3.1 检查配置
3.2 创建实体类
a、创建cn.tedu.store.entity.Xxx类,属性可参考数据表。
b、创建专门用于响应给客户端的JSON数据的实体类:ResponseResult

package cn.tedu.store.entity;
/**
 * 专门用于响应给客户端的JSON数据的类
 * @author soft01
 * @param <T>
 */
public class ResponseResult<T> {
    public static final int STATE_OK = 1;
    public static final int STATE_ERROR = 0;
    private Integer state; // 成功(1)或失败(0)
    private String message; // 仅当失败时封装错误信息
    private T data; // 数据
    public ResponseResult(Throwable throwable) {
        super();
        this.state = STATE_ERROR;
        this.message = throwable.getMessage();
    }
    //略......
}

注:私有化所有属性,提供所有属性的SET/GET方法,添加无参数和全参数的构造方法,自动生成toString()方法(便于测试数据),equals()和hashCode()可后续再添加,实现Serializable接口,并生成序列化ID。
4. 业务层
4.1 创建接口
创建IXxxService接口,添加抽象方法。
4.2 创建接口的实现类
创建XxxServiceImpl类,使用@Service(“xxxService”)对类注解,声明private XxxMapper xxxMapper成员,并使用@Autowired注解,实现IXxxService,实现抽象方法。
*注:在业务层,关于操作的成功与否,推荐:只要能把方法顺利执行结束,就是成功,如果中途出错,则抛出异常,后续,方法的调用者(控制器层的某个方法)通过try…catch来处理。
完成后,单元测试。*
5. 控制器层
5.1 需求分析
— 访问路径:/xx/xx.do
— 请求参数:如username=xx&password=xx&phone=xx,或者无参
— 请求类型:GET或POST
— 响应内容:JSON/转发/重定向
5.2 创建控制器类
创建XxxController,使用@Controller注解,并添加
@RequestMapping注解。
a、若响应内容为JSON:
则在此类中添加public ResponseResult xxx()方法以处理请求,该方法使用@ResponseMapping(value=“/xx.do”,method=RequestMethod.POST)注解,并添加@ResponseBody注解。

@RequestMapping(value="/list.do",method=RequestMethod.POST)
@ResponseBody
public ResponseResult<List<Area>> getList(String cityCode){
    ResponseResult<List<Area>> rr;
    List<Area> areas = areaService.getAreaListByCityCode(cityCode);
    rr = new ResponseResult<List<Area>>(ResponseResult.STATE_OK,areas);
    return rr;
}

b、若响应内容为转发:

@RequestMapping("/index.do")
public String showIndex() {
    return "index";
}

c、若响应内容为重定向:

@RequestMapping("/addnew.do")
public String handleAddnew(Address address,HttpSession session) {
    // 此次省略N多数据有效性的判断
    Integer uid = getUidFromSession(session); // 封装uid
    address.setUid(uid);
    addressService.addnew(address); // 执行增加
    return "redirect:list.do";  // 完成,重定向
}

5个包名
5.3 整合页面
如修改访问路径或添加AJAX等。
AJAX


完毕!

  • 8
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值