MVC绑定包装POJO
当客户端的请求参数比较复杂,需要多个对象中的信息时,使用包装POJO类型的数据绑定(就是一个POJO中包含另一个简单POJO)
public class Orders {
private Integer ordersId;
private User user;
.....
}
前端:
<form action="${pageContext.request.contextPath }/find" method="post">
订单编号:<input type="text" name="ordersId"/><br>
所属用户:<input type="text" name="user.username"/><br>
<input type="submit" value="查询">
前端请求的参数名编写必须符合以下两种情况:
1.如果查询条件参数是包装类的直接基本属性,则参数名直接用对应的属性名
2.如果查询条件参数是包装类中的POJO的自属性,则参数名必须为【对象.属性】,其中对象要和包装POJO的对象属性名称一致,【属性】要和包装POJO中的对象子属性一致
@RequestMapping("/find")
public String find(Orders orders,Model model) {...}
使用的POJO在这里体现
mapper模糊查询拼接问题
#{}为占位符相当于?
${}用来表示拼接sql的字符串,为不加解释的原样输出,(1+2=12)
模糊查询写作‘%c%’
当使用
<select id="findByName" parameterType="String" resultType="com.cp03.Cutomer">
select * from t_customer where username like '%${value}%'
</select>
进行查询时,只要添加值’ or ‘1’='1,就可以得到全结果
要防止sql注入问题,可以使用MySQL中的contact()函数进行字符串拼接。
select * from t_customer where username like concat('%',#{value},'%')
Junit无法使用解决
在import org.junit.Test和添加junit.jar之后仍然无法使用且出现以下的问题
解决方法:需要下载和添加hamcrest-core.jar