基于SSM框架的电商项目

关于电商项目的一些心得

先附上我自己写的后端接口链接,感兴趣的可以看一看,写的不是很好,可以联系我互相讨论讨论。

https://gitee.com/yangguojun1/ssm

1、持久层,sql语句的实现

  1. 模糊查询
"select * from good where name like CONCAT('%',#{name},'%');"

用到了concat(str1,str2,....)函数,返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。

  1. 更新商品
"<script>" +
            " update good " +
                "<set>" +
                    "<if test=\"name != null and name!=''\">" +
                        "name=#{name}," +
                    "</if>" +
                    "<if test=\"price != null and price!=''\">" +
                        "price=#{price}," +
                    "</if>" +
                    "<if test=\"weight != null and weight!=''\">" +
                        "weight=#{weight}," +
                    "</if>" +
                    "<if test=\"number != null and number!=''\">" +
                        "number=#{number}," +
                    "</if>" +
                    "<if test=\"status != null and status!=''\">" +
                        "status=#{status}," +
                    "</if>" +
                    "<if test=\"time != null and time!=''\">" +
                        "time=#{time}," +
                    "</if>" +
                    "<if test=\"url != null and url!=''\">" +
                        "url=#{url}" +
                    "</if>" +
                "</set>" +
            "where id=#{id}" +
            " </script>"

运用动态sql。<set> ....</set>使用set标签可以动态的配置SET 关键字和剔除追加到条件末尾的任何不相关的逗号。有效的解决了使用<if>....</if>if标签时,如果有一个参数为null,都会导致错误,或者前面的if没有执行,则可能导致有多余逗号的错误。

  1. 进行批量的操作(删除,修改)
"<script>" +
            " delete from good " +
            "where id in" +
            " <foreach collection='list' item='id' open='(' separator=',' close=')'>" +
                "#{id}" +
            "</foreach>" +
            "</script>"
"<script>" +
                " update good " +
                " set status=1 " +
                "where id in" +
                " <foreach collection='list' item='id' open='(' separator=',' close=')'>" +
                    "#{id}" +
                "</foreach>" +
            "</script>"

运用动态sql。<foreach>....</foreach>使用foreach标签做循环遍历。foreach元素的属性主要有 item、index、 collection、open、separator、close。

  • collection 表示要做foreach循环的对象
  • item 表示集合中每一个元素或者该集合的对象,支持对象点属性的方式获取属性。
  • open 表示以什么开始
  • close表示以什么结束
  • separator 表示每次进行迭代之间以什么符号作为分隔符
  • index 表示循环的下标,从0开始
    当然也要注意where条件判断是in....而不是=

关于数据库相关的知识补充一点:有时候当给表的某一个属性赋予中文数据时报错,这是因为你的数据库编码集的问题。

解决方法:

  • 首先检查数据库编码是否是utf-8,如果不是设置数据库字符集编码为utf-8
  • 修改表字段编码方式为utf-8,SQL语句如下:alter table 'tablename' convert to character set utf-8 修改一张表的所有字段的编码格式

2. 业务层

  • 主要是代码逻辑,值得注意的是,给JavaBean对象赋值时(调用set方法时),有可能会出现空指针异常。

解决方法

创建一个`JavaBean`对象,也就是`new`一个出来。

3. 表现层
需要了解一下注解的使用:

//value指的是访问路径,produces表示将生产json格式的数据,此时根据请求头中的Accept进行匹配,如请求头“Accept:application/json”时即可匹配; 
@RequestMapping(value = "/findAll", produces = "application/json;charset=utf-8")
@RequestMapping(value = "/findById/{id}", produces = "application/json;charset=utf-8")
//@ResponseBody的作用其实是将java对象转为json格式的数据或者是XML数据。
@ResponseBody
//@PathVariable注解表示将从请求路径上获得数据 == ‘{id}’
public Good findById(@PathVariable("id") String id){
    Good good = goodService.findById(id);
    return good;
}
//@CrossOrigin注解是在前后端分离开发时,解决跨域问题的
@CrossOrigin

处理json数据

需要用到jar包:
如果没有用maven配置,则需要jackson-databind,jackson-core,jackson-annotations三个jar包。
如果用到了maven配置,则只需要导入jackson-databind依赖就行

  1. 将json数据处理为JavaBean对象
ObjectMapper mapper = new ObjectMapper();
Good good = mapper.readValue(json, Good.class);
  1. 将JavaBean对象处理为json数据
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(good);
  1. 同理将list、map集合 处理为json数据
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(list);
String json = mapper.writeValueAsString(map);

其余一些处理数据方法

  1. 将一个String类型的字符串(有符号为分隔符的数字)转为List<String>集合
List<String> list = Arrays.asList(str.split(","));
  1. 将一个List<T>集合转为字符串,并以逗号为分隔符。
String join = StringUtils.join(list,",");
  1. 将一个字符串转为String[]数组。
String shoppings = myorder.getShoppings();
String[] split = shoppings.split(",");
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
熟悉项目开发过程中SSM框架、JSP、Mysql使用,知道各技术之间的如何衔接; 考虑到部分学生只需要学习前台(买家)或是后台(后台),故将系统分为系统前台和系统后台两个项目, 当前课程包含系统前台和系统后台 该课程主要涉及到的技术有:  项目涉及的技术:  1、前端:jsp、css、javascript、jQuery(js框架)、bootstrap框架 2、后台:Spring MVC、Spring、Mybatis框架、javaMail进行邮件发送、jstl 、jstl自定义分页标签、代码生成器等 3、数据库:Mysql 4、服务器:Tomcat项目开发涉及的功能: 1、项目以及数据库搭建 2、用户登录、退出3、用户注册、邮件发送、以及用户信息激活4、首页品信息页面搭建以及查询功能实现5、查询品明细6、加入品至购物车、删除、更新、清除购物车品信息7、确认订单信息8、订单页面搭建以及下订单功能实现9、查询我的购物车以及订单信息10、品明细查看,品修改,品下架11、品类型管理12、订单管理13、代码机器人使用等等其他实战项目:java项目实战之系统全套(前台和后台)(java毕业设计ssm框架项目)https://edu.csdn.net/course/detail/25771 java项目之oa办公管理系统(java毕业设计)https://edu.csdn.net/course/detail/23008 java项目之hrm人事管理项目(java毕业设计)https://edu.csdn.net/course/detail/23007 JavaWeb项目实战之点餐系统前台https://edu.csdn.net/course/detail/20543 JavaWeb项目实战之点餐系统后台https://edu.csdn.net/course/detail/19572 JavaWeb项目实战之宿舍管理系统(Java毕业设计含源码)https://edu.csdn.net/course/detail/26721 JavaWeb项目实战之点餐系统全套(前台和后台)https://edu.csdn.net/course/detail/20610 java项目实战之城后台(java毕业设计SSM框架项目)https://edu.csdn.net/course/detail/25770 java美妆项目|在线购书系统(java毕业设计项目ssm版)https://edu.csdn.net/course/detail/23989 系统学习课程:JavaSE基础全套视频(环境搭建 面向对象 正则表达式 IO流 多线程 网络编程 java10https://edu.csdn.net/course/detail/26941 Java Web从入门到项目实战挑战万元高薪(javaweb教程)https://edu.csdn.net/course/detail/25976其他素材版(毕业设计或课程设计)项目:点击老师头像进行相关课程学习

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值