###备忘###
#1.返回插入记录的主键(自增)的两种实现
<insert id="insertUser" parameterType="cn.itcast.mybatis.po.User" >
<!--
将插入到数据的主键返回,返回到User对象中
SELECT LAST_INSERT_ID():调用mysql内置函数(CALL是调用存储过程),得到刚insert进去记录的主键值,只适用于自增主键
keyProperty:将查询到主键值设置到parameterType指定的对象的哪个属性
order: SELECT LAST_INSERT_ID()的执行顺序,相对于insert语句来说它的执行顺序
resultType:返回的key即User属性的类型
-->
<selectKey keyProperty="id" resultType="int" order="AFTER" >
SELECT LAST_INSERT_ID()
</selectKey>
insert into user(username,sex,birthday,address) values(#{userName},#{sex},#{birthday},#{address})
<!--
使用mysql的UUID()生成主键
执行过程:首先通过UUID()得到主键,将主键设置到user对象的id属性中
其次在insert执行时,从user对象中取出id属性值
<selectKey keyProperty="id" resultType="java.lang.String" order="BEFORE">
SELECT UUID()
</selectKey
insert into user(id,username,sex,birthday,address) values(#{id},#{userName},#{sex},#{birthday},#{address})
-->
</insert>
<insert id="addProduct" parameterType="Product" useGeneratedKeys="true" keyProperty="id">
INSERT INTO bbs_product values(.....)
</insert>
#2.异步提交的两种实现
function uploadPic(){
//定义参数
var options = {
url: "/upload/uploadPic.do",
dataType: "json", //这里大小写要和后端返回时设置的contentType一致
type: "post",
success:function(data){
//将返回的 两个路径的值赋到相应的标签中
//url
//path jquery是$("")不是EL表达式
$("#allImgUrl").attr("src",data.url);
$("#path").val(data.path);
}
};
//调用jquery的异步提交函数,访问通过options参数中的url走后端
$("#jvForm").ajaxSubmit(options);
}
function saveUpdate(skuId){
var marketPrice = $("#m"+skuId).attr("disabled",disabled).val();
var price = $("#p"+skuId).attr("disabled",true).val();
var stock = $("#s"+skuId).attr("disabled",true).val();
var upperLimit = $("#l"+skuId).attr("disabled",true).val();
var deliveFee = $("#f"+skuId).attr("disabled",true).val();
//异步提交 保存
var url = "/sku/update.do";
var params = {"id":skuId,"marketPrice":marketPrice,"price":price,"stock":stock,"upperLimit":upperLimit,"deliveFee":deliveFee};
$.post(url,params,function(data){
alert(data.message);
},"json"); //“json设置的是dataType 即调用成功返回数据的类型”
}
#3.前端页面跳转的两种写法
href属性: 默认执行的是url路径,跳转页面,同src、action属性;但也可以通过标注javascript来执行js的function函数
例子:<a href="/product/list.do">直接通过url访问后台跳转页面</a> (***不能标注javascript***)
<a href="javascript:saveUpdate(${sku.id})">通过执行JS函数来做相应的变化</a> (***必须标注javascript***)
onclick属性:默认执行的是JS函数;但也可以通过JS函数的window.location.href="url"来直接跳转页面
例子: <a href="##" οnclick="saveUpdate(${sku.id})">执行JS函数来做相应的变化</a> (***可标注或不标注javascript,一般默认不标注***)
<a href="##" οnclick="javascript:window.location.href='/product/list.do'">将跳转链接封装在JS函数中</a> (***可标注或不标注javascript,但为了代码规范建议标注***)
tips:一般建议用onclick属性,但同时保留href="javascript:void(0)",这样做可以防止href的二次提交同时保留href的渲染效果
#4.mybatis动态sql中的trim标签的使用:https://www.cnblogs.com/qiankun-site/p/5758924.html