关于SQL的问题(适合新手)

一、多表查询

SELECT * FROM (
SELECT p.productionPlanId,p.skuid,p.allNum FROM daa p GROUP BY p.productionPlanId,p.skuid
) a left JOIN (
SELECT a.id,a.productionNo FROM abc s 
) b ON a.productionPlanId = b.id

这里写图片描述

二、循环插入语句

  <insert id="insertRight" parameterType="*"
        useGeneratedKeys="true" keyColumn="id">
        INSERT INTO aa(id,num)
        values
        <foreach collection="list" item="item" separator=","
            open="" close="">
            (#{item.id},#{item.num})
        </foreach>
    </insert>

controller

// 按逗号分割数组
String[] str = strees.split(",");
List<Map<String, Object>> listMap = new ArrayList<Map<String, Object>>();
			for (int i = 0; i < str.length; i++) {
				Map<String, Object> map = new HashMap<String, Object>();
					String operationId = str[i];
					map.put("num", num);
					listMap.add(map);
					map.put("id", id);
			}

三、String为空的问题

当string为空时,转换成integer,mybatis会自动加0。

这里写图片描述

  1. 四、运行报错

这里写图片描述
改成

 <select id="search" resultType="*">
        select * from pro_delivery WHERE 1=1
        <if test="id2!='' and id2!=null">AND id LIKE '%' #{id2} '%'</if>
        <if test="names!='' and names!=null">AND names LIKE '%' #{names} '%'</if>
    </select>

model里添加
这里写图片描述

五、sql命名问题

  1. sql里不能在表中有下划线的命名,例如(Pro_xx),在mybatis查询会出错,传回空值,解决方法:
    这里写图片描述
    这里写图片描述

六、保存长文本出错

在这里插入图片描述

解决方法一:

这个问题是因为StringBuffer导致,最后将StringBuffer字符转换为String即可。

七、Duplicate entry ‘17’ for key 1

在这里插入图片描述
原来因为数据库本身就存在这个ID,所以用insert会报错,应该用update

八、Field ‘id’ doesn’t have a default value

在这里插入图片描述
因为数据库中的ID没有设置为自增长

九、Address already in use: connect

在这里插入图片描述
临时解决办法:关闭浏览器。永久解决办法(没啥用)
在这里插入图片描述

十、tomcat报错——PermCon space

在这里插入图片描述
解决办法:修改eclipse的Run Configurations。点击“Run”-“Run Configurations”,在打开的窗口中点击“Arguments”选项卡。
在这里插入图片描述
在这里插入图片描述
在VM arguments中内容最下边输入:

-Xms256m -Xmx512m -XX:MaxNewSize=256m -XX:MaxPermSize=256m

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值