myBatis中的增删改查
首先为了简化后续配置,使用myBatis中的
- settings标签进行数据库和实类变量名之间匹配的简化:
例如:s_age匹配sAge
<!--设置数据库与实类变量的匹配匹配-->
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
- 类名简化
例如:Student 在配置时为student
package表示这个包下的所有类在配置时都遵循这个原则
typeAlias 表示单个类遵循这个原则
<typeAliases>
<package name="com.example.domain"></package>
<!--<typeAlias type="com.example.domain.Book" alias="book"></typeAlias>-->
</typeAliases>
- 基础配置文件可以参考:myBatis配置文件
1.参数传递
2.删除操作
修改mapper映射配置文件
<?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">
<!--配置映射关系-->
<!--namespace表示名称空间-->
<mapper namespace="com.example.dao.StudentDao">
<delete id="delete">
delete from student where s_id=#{param1}
</delete>
</mapper>
3.修改操作
<update id="update">
update student set s_sex=#{arg1} where s_name=#{arg0}
</update>
4.增加操作
对于一个数据的插入通常会有主键自增,对于逐渐主键的设置对应关系
针对mysql数据库
- useGeneratedKeys=“true” 表示使用数据库中自动生成的主键回填实体对象,
- keyProperty=“id” 指定实体的主键对应的属性
- keyColumn=“id” 指定数据库中的主键列的名字
<insert id="addOne" parameterType="student" useGeneratedKeys="true" keyProperty="sId" keyColumn="s_id">
insert into student (s_name,s_birth,s_sex) values (#{sName},#{sBirth},#{sSex})
</insert>
- 主键自动赋值的特性:
在增加操作的时候,因为主键自增,默认在类传入的时候是不设置主键值的,在dao新增方法调用前主键值默认为null,在新增方法调用后自动会为该类主键属性赋值 - sql参数传递特性
当一个方法的传递参数是POJO时,在sql语句中直接使用#{属性名}
即可
5.查询操作
<select id="getAll" resultType="student">
-- 书写sql语句
select * from student
</select>