文章目录
一、多表查询
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。
改成
<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命名问题
- 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