概述
1.API介绍:在SqlSession接口中提供了四个方法,实现简单的增删改查操作
1)insert方法:实现插入
<?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="User">
<!--
id在命名空间中唯一的标识符,可以被用来引用这条语句
#{参数名} :实体类对象或则Map集合读取内容
-->
<insert id="insertUser">
insert into user (name,sex,age) values (#{name},#{sex},#{age})
</insert>
<!--
在JDBC技术中,可以通过Statement接口中getGeneratedKeys()方法获得本次插入后得到自动增长主键值.
MyBatis框架也采用这个技术.因此MyBatis在插入完毕后也可以获得本次插入数据id.做法如下
useGeneratedKeys="true":表示Mybatis可以通过getGeneratedKeys方法获取本次自动增长的值
keyProperty="id":表示Mybatis将通过自动增长值赋值给当前实体类对象的那个属性
比如:session.insert("insertUser_generatedkey",user);
System.out.println(user.getId());
那么,在插入完成后,user.id里面会存在本次插入生成的id
-->
<insert id="insertUser_generatedkey" useGeneratedKeys="true" keyProperty="id">
insert into user (name,sex,age) values (#{name},#{sex},#{age})
</insert>
<!--
在Mysql数据库中,可以通过max函数获得当前表中最后一条插入数据id.
在MyBatis中,也可以通过这种方式来获得主键值做法如下:
selectKey标签用于申明当前表主键值的sql语句
resultType="Integer":表明将查询结果转换成Integer类型
order="BEFORE":如果设置为 BEFORE,那么它会首先生成主键,设置 keyProperty 然后执行插入语句。如果设置为 AFTER,那么先执行插入语句,然后是 selectKey 中的语句
useGeneratedKeys="true":表示Mybatis可以通过getGeneratedKeys方法获取本次自动增长的值
keyProperty="id":表示Mybatis将通过自动增长值赋值给当前实体类对象的那个属性
比如:session.insert("insertUser_max",user);
System.out.println(user.getId());
那么,在插入完成后,user.id里面会存在本次插入生成的id
-->
<insert id="insertUser_max" useGeneratedKeys="true" keyProperty="id">
<selectKey resultType="Integer" keyProperty="id" order="BEFORE">
select max(id)+1 from user
</selectKey>
insert into user (name,sex,age) values (#{name},#{sex},#{age})
</insert>
</mapper>
2)delete方法:实现删除
<!--
根据id删除用户
int deleteUser = session.delete("deleteUser", user); //返回删除的记录数
System.out.println(deleteUser);
-->
<delete id="deleteUser">
delete from user where id=#{id}
</delete>
3)update方法:实现更新
<!--
根据id修改用户信息
int updateUser = session.update("updateUser", user);//返回修改的记录数
System.out.println(updateUser);
-->
<update id="updateUser">
update user set name=#{name},sex=#{sex},age=#{age} where id=#{id}
</update>
4)select方法:实现查询
<!--Map
parameterType="com.czh.entity.User" 将会传入这条语句的参数类为User的完全限定名或别名
resultType="hashmap" 从这条语句中返回的期望类型为HashMap的完全限定名或别名
Map Map =(Map<String,String>)session.selectOne("selectMap", user);
-->
<select id="selectMap" resultType="hashmap" parameterType="com.czh.entity.User">
select * from user where id=#{id}
</select>
<!--List
parameterType="com.czh.entity.User" 将会传入这条语句的参数类为User的完全限定名或别名
resultType="hashmap" 从这条语句中返回的期望类型为hashmap的完全限定名或别名,注意这里指定的resultType返回的是集合中的元素类型
List<Map<String,String>> selectList = session.selectList("selectList", user);
-->
<select id="selectList" resultType="hashmap" parameterType="com.czh.entity.User">
select * from user where id >= #{id}
</select>
<!--实体映射类
parameterType="com.czh.entity.User" 将会传入这条语句的参数类为User的完全限定名或别名
com.czh.entity.User 从这条语句中返回的期望类型为com.czh.entity.User的完全限定名或别名
User User = session.selectOne("selectUser", user);
-->
<select id="selectUser" resultType="com.czh.entity.User" parameterType="com.czh.entity.User">
select * from user where id=#{id}
</select>
<!--实体映射类集合
parameterType="com.czh.entity.User" 将会传入这条语句的参数类为User的完全限定名或别名
com.czh.entity.User 从这条语句中返回的期望类型为com.czh.entity.User的完全限定名或别名 注意这里指定的resultType返回的是集合中的元素类型
List<User> list = session.selectList("selectUsers", user);
-->
<select id="selectUsers" resultType="com.czh.entity.User" parameterType="com.czh.entity.User">
select * from user where id >= #{id}
</select>
2.xml文件特殊字符处理
第一种方法:
使用转义字符
大于号 > >
小于号 < <
与 & &
单引号 " '
双引号 ' "
第二种方法:
使用<![CDATA[ ]]> 。因为xml格式遇到这种格式会把方括号里的内容原样输出,不进行解析,如:
>= 改成 <![CDATA[ >= ]]>
最后
以上就是矮小紫菜为你收集整理的(2)MyBatis框架详解----单表增删改查操作的全部内容,希望文章能够帮你解决(2)MyBatis框架详解----单表增删改查操作所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复