shop--0.项目中遇到的问题 插入数据时,直接拿到自增的Id的方法
1.could not autowire. no beans of 'xxx' type found
这是在使用Spring的注解@Autowired时,总是有红色的错误提示,但是程序的编译运行都没问题,不过就是看着很难受,解决办法参考
spring注解方式 idea报could not autowire,eclipse却没有问题
2.注意在编写dao的mapper中的sql语句时
<select id="queryByShopId" parameterType="java.lang.Long" resultMap="shopMap">
传入的参数如果是long型,要与java.lang区分开,不然会一直报错的
插入数据库时,直接拿到自增的主键的值 使用selectKey标签,而得到的自增主键就直接赋在了对象的id中,而且返回值是:插入成功为1
<!--Long createOrderInfo(OrderInfo orderInfo);--> <insert id="createOrderInfo" parameterType="com.shop.bean.OrderInfo" useGeneratedKeys="true" keyColumn="order_id" keyProperty="orderId"> INSERT INTO order_info(local_user_id, product_id, addr_id, product_name, product_price, order_channel, status, create_date, product_count, miaosha_id) VALUES (#{localUser.localUserId}, #{product.productId}, #{addrId}, #{product.productName}, #{productPrice}, #{orderChannel}, #{status}, #{createDate}, #{productCount}, #{miaoshaProduct.miaoshaId}) <selectKey resultType="Long" keyProperty="orderId" order="AFTER"> SELECT LAST_INSERT_ID() AS VALUE </selectKey> </insert>
Long effectNum1 = orderInfoDao.createOrderInfo(orderInfo);
其中自增主键orderId直接就在orderInfo中了,不用在做别的接收