第四章 CRUD操作 第1节 自定义Mybatis
条评论4.1 Mybatis的CRUD操作
4.1.1 前提要求
使用要求:
1、 持久层接口和持久层接口的映射配置必须在相同的包下
2、持久层映射配置中mapper标签的namespace属性取值必须是持久层接口的全限定类名
3、SQL语句的配置标签<select>
,<insert>
,<delete>
,<update>
的id属性必须和持久层接口的方法名相同
4.1.2 SELECT
配置文件
1
2
3
4<!-- 根据id查询 -->
<select id="findById" resultType="com.itheima.domain.User" parameterType="int">
select * from user where id = #{uid}
</select>细节:
resultType属性: 用于指定结果集的类型。
parameterType属性:用于指定传入参数的类型。
sql语句中使用#{}字符: 它代表占位符,相当于原来jdbc部分所学的?,都是用于执行语句时替换实际的数据。 具体的数据是由#{}里面的内容决定的。#{}中内容的写法: 由于数据类型是基本类型,所以此处可以随意写。
4.1.2 SAVE
配置文件
1
2
3
4<!-- 保存用户-->
<insert id="saveUser" parameterType="com.itheima.domain.User">
insert into user(username,birthday,sex,address) values(#{username},#{birthday},#{sex},#{address})
</insert>细节:
parameterType属性: 代表参数的类型,因为我们要传入的是一个类的对象,所以类型就写类的全名称。
#{}中内容的写法: 由于我们保存方法的参数是 一个User对象,此处要写User对象中的属性名称。 它用的是ognl表达式。ognl表达式: 它是apache提供的一种表达式语言,全称是: Object Graphic Navigation Language 对象图导航语言 它是按照一定的语法格式来获取数据的。 语法格式就是使用 #{对象.对象}的方式。
#{user.username}
它会先去找user对象,然后在user对象中找到username属性,并调用getUsername()方法把值取出来。但是我们在parameterType属性上指定了实体类名称,所以可以省略user.而直接写username。扩展:SAVE返回ID
新增用户后,同时还要返回当前新增用户的id值,因为id是由数据库的自动增长来实现的,所以就相当于我们要在新增后将自动增长auto_increment的值返回。
1 | <insert id="saveUser" parameterType="USER"> |
4.1.3 UPDATE
配置文件
1
2
3
4
5<!-- 更新用户 -->
<update id="updateUser" parameterType="com.itheima.domain.User">
update user set username=#{username}, birthday=#{birthday}, sex=#{sex}, address=#{address}
where id=#{id}
</update>
4.1.4 DELETE
配置文件
1
2
3
4<!-- 删除用户 -->
<delete id="deleteUser" parameterType="java.lang.Integer">
delete from user where id = #{uid}
</delete>
本文标题:第四章 CRUD操作 第1节 自定义Mybatis
文章作者:foreverSFJ
发布时间:2019-09-11 18:26:51
最后更新:2019-09-11 18:26:51
原始链接:Notes/Java/Persistence/Mybatis/04_01 MyBatis的CRUD操作.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-ND 4.0 许可协议。转载请注明出处!
分享