实训笔记(四)

1.
关于请求转发和重定向:如果地址栏没有变,那就是请求转发。

eg: return “/index/index”;,

如果地址栏改变,那就是重定向。

eg: return “redirect:/index/index”;

转发是指当你对A请求某个资源时,A没有,但是A去其他地方请求得到,然后再返回给你,在这个过程中,地址栏并不会改变;重定向是指当你对A请求某个资源时,A没有,它会直接让你去另一个地方请求,所以地址栏会改变。

2.
关于resultMap里面的,可以通过下面的方式:设置select属性的值来调用mapper包里某个接口的方法。

<association column="type_id" property="type" fetchType="lazy"
select="com.lanou.yoyoshop.mapper.TypeMapper.selectTypeById">
</association>

3.
在商城项目里,要注意在下单时,数据库中必须记录有用户购买商品付款的金额,以免在发生退款情况时退款金额错乱。

4.
session、request中通过getAttribute返回的都是object;
eg:以下操作必须进行强转
User user = (User)session.getAttribute("user");

5.
关于java类库中SimpleDateFormat的使用:

//获取时间
Date date = new Date();
//java中把一个日期转换成字符串的类
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String systime = sdf.format(date);//把日期转换为符合格式的字符串

6.
关于书写SQL语句时,需要注意
order在数据库里是关键字,如果有个表名是order,那么要用着重号(``),这样就不会把order当关键字来处理了。
eg:

SELECT * FROM `order`
WHERE id = #{id} AND status != 0

7.
列表中无元素和null是不一样的,null是空,new ArrayList<>()是一个新列表,只是列表中无元素。

8.
批量向数据库中插入item,使用mybatis动态SQL中的foreach标签。

<!--批量添加item-->
<insert id="insertItems">
    INSERT INTO item(price,amount,good_id,order_id)
    VALUES
        <foreach collection="itemList" item="item" separator=",">
            (#{item.price},#{item.amount},#{item.goodId},#{item.orderId})
        </foreach>
</insert>

循环这个collection=“itmeList”,item的每一项起名位item(也可以叫a、b),可以用(名字.属性)来使用它的属性;注意加上"."。
注意:在这里,如果不在循环里面加(),那么只有一种商品时不会报错;商品种数大于等于2的时候会报错,因为循环里面没有括号,多种商品就会报错了;在循环里面加上括号就不会有这些问题了。

9.
注意并发修改异常,一边遍历集合,一边add/remove,会抛出异常,一般是因为快速失效机制(fail-fast)。

10.
当通过from表单传递过来数据时,并且不使用注解时,属性名要一样。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小挫折_仅此而已

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值