插入数据并返回为实体类中主键赋值 方法一:
<insert id="saveUser" parameterType="User">
<selectKey keyColumn="id" resultType="int" keyProperty="id" order="AFTER" >
select last_insert_id()
</selectKey>
insert into t_user (name,sex,password,birthday,photo)values (#{name},#{sex},#{password},#{birthday},#{photo})
</insert>
插入数据并返回为实体类中主键赋值 方法二:
<insert id="saveUser" parameterType="User" useGeneratedKeys="true" keyProperty="id">
insert into t_user (name,sex,password,birthday,photo)values (#{name},#{sex},#{password},#{birthday},#{photo})
</insert>
sql优化:application.yml配置文件中加入 mybatis:executor-type: batch(批量删除)
- 内置函数
1.lower(column|str):将字符串参数值转换为全小写字母后返回
2、upper(column|str):将字符串参数值转换为全大写字母后返回
3、concat(column|str1, column|str2,…):将多个字符串参数首尾相连后返回;如果有任何参数为null,则函数返回null;如果参数是数字,则自动转换为字符串
4、concat_ws(separator,str1,str2,…):将多个字符串参数以给定的分隔符separator首尾相连后返回!!也就是函数圆括号里的第一个项目用来指定分隔符;注意:如果有任何参数为null,则函数不返回null,而是直接忽略它
5.substr(str,pos[,len]):从源字符串str中的指定位置pos开始取一个字串并返回注意:①len指定子串的长度,如果省略则一直取到字符串的末尾;len为负值表示从源字符串的尾部开始取起。②函数SUBSTR()是函数SUBSTRING()的同义词。
6、length(str):返回字符串的存储长度 注意:编码方式不同字符串的存储长度就不一样(‘你好’:utf8是6,gbk是4)
7、char_length(str):返回字符串中的字符个数
8、instr(str, substr):从源字符串str中返回子串substr第一次出现的位置
9、lpad(str, len, padstr):在源字符串的左边填充给定的字符padstr到指定的长度len,返回填充后的字符串
10、rpad(str, len, padstr):在源字符串的右边填充给定的字符padstr到指定的长度len,返回填充后的字符串
11、trim([{BOTH | LEADING | TRAILING} [remstr] FROM] str), trim([remstr FROM] str):从源字符串str中去掉两端、前缀或后缀字符remstr并返回;如果不指定remstr,则去掉str两端的空格;不指定BOTH、LEADING、TRAILING ,则默认为 BOTH。
12、replace(str, from_str, to_str):在源字符串str中查找所有的子串form_str(大小写敏感),找到后使用替代字符串to_str替换它。返回替换后的字符串
13、ltrim(str),rtrim(str):去掉字符串的左边或右边的空格(左对齐、右对齐)
14、repeat(str, count):将字符串str重复count次后返回
15、reverse(str):将字符串str反转后返回
16、FORMAT(X,D[,locale]):以格式‘#,###,###.##’格式化数字X,D指定小数位数,locale指定国家语言(默认的locale为en_US)
17、SPACE(N):返回由N个空格构成的字符串
18、LEFT(str, len):返回最左边的len长度的子串
19、RIGHT(str, len):返回最右边的len长度的子串
20、STRCMP(expr1,expr2):如果两个字符串是一样的则返回0;如果第一个小于第二个则返回-1;否则返回1
注意:联合表的查询中,表名和列名以一个字母为别名可提高1.5倍查询速度