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中了,不用在做别的接收

原文地址:https://www.cnblogs.com/SkyeAngel/p/8870223.html