八、mybaitis学习 ——增删改查及自增主键获取(使用初级)
<?xml version="1.0" encoding="UTF-8" ?>
<!-- 导入约束 -->
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="UserMapper">
<!-- 一、insert语句及获取添自增主键
parameterType : 参数类型 全限定类名或者别名
id:方法名,唯一标识
#{} :mybatis中的占位符 ,需要传递对象中属性的名称
取值的方式:OGNL表达式
-->
<!-- 保存之后,对user对象的id属性进行赋值
1.属性useGeneratedKeys 结合 属性keyProperty
当保存的时候,直接将数据库的主键值存入到对象的id属性中
2.属性keyProperty结合子标签selectKey
keyProperty : 对象中的id属性名称
order : after 执行顺序,当保存语句执行完成之后,立即发送一条 select last_insert_id()语句查询最后插入的主键
resultType:返回值类型
select last_insert_id();//mysql数据库中的语法,获取最后一次保存的数据主键
-->
<insert id="saveUser" parameterType="cn.itcast.entity.User" useGeneratedKeys="true" keyProperty="id">
<!-- <selectKey order="AFTER" resultType="java.lang.Integer" keyProperty="id">
select last_insert_id();
</selectKey> -->
insert into user (username,sex,birthday,address) values ( #{username} ,#{sex},#{birthday},#{address} )
</insert>
<!-- 二、update语句,修改用户 -->
<update id="updateUser" parameterType="cn.itcast.entity.User">
update user set username=#{username} , sex=#{sex} , birthday=#{birthday} ,address=#{address}
where id=#{id}
</update>
<!--
parameterType : 指定的是参数的类型,全限定类名
对于自定义的javaBean对象
占位符使用:#{java对象中属性的名称}
对于基本数据类型
占位符使用:#{随意},要求:使用有具体含义的字符串标识
-->
<!-- 三、delete语句、删除用户 -->
<delete id="deleteUser" parameterType="java.lang.Integer">
delete from user where id=#{艾迪}
</delete>
<!-- 四、select语句 根据用户名查询一个用户对象 -->
<select id="findUserByName" parameterType="string" resultType="cn.itcast.entity.User">
select * from user where username=#{username}
</select>
<!-- 五、模糊查询:根据用户名模糊查询所有用户
方式一:将%写到参数上 配置文件中使用#{username}
方式二:可以使用${} 结合% 表示模糊匹配
#{}
对占位符赋值(?)
PreparedStatmen:预处理
${}
sql拼接
Statment处理
* 有sql注入的风险
-->
<select id="findUserByNameLike" parameterType="STRing" resultType="cn.itcast.entity.User">
select * from user where username like '%${value}%'
</select>
</mapper>