普通的增改删查
<?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="com.chy.mapper.StudentMapper"> <insert id="insertStudent" parameterType="com.chy.pojo.Student"> INSERT INTO student_tb(id,name,age,score)VALUES (#{id},#{name},#{age},#{score}) </insert> <update id="updateStudent" parameterType="com.chy.pojo.Student"> UPDATE student_tb SET name=#{name},age=#{age},score=#{score} WHERE id=#{id} </update> <delete id="deleteStudent" parameterType="Integer"> DELETE FROM student_tb WHERE id=#{id} </delete> <select id="queryById" parameterType="Integer" resultType="com.chy.pojo.Student"> SELECT * FROM student_tb WHERE id=#{id} </select> </mapper>
<mapper>的namespace常用映射文件所在的 包名+映射文件名 。比如com.chy.mapper包下的映射文件StudentMapper.xml => com.chy.mapper.StudentMapper
parameterType指定传入的参数的数据类型,resultType指定将查询结果映射为何种数据类型。
Student student = sqlSession.selectOne("com.chy.mapper.StudentMapper.queryById", 1);
通过namespace和id来引用相应的元素,传入parameterType类型的参数。返回resultType指定的数据类型。
事实上,如果通过id可以唯一确定要引用的元素,是可以省略namespace、只写id的。
模糊查询
精确查询:必须完全相同,比如WHERE name = 'chy',name字段必须是chy才匹配,不能是什么chy1。
模糊查询:只要包含即可,比如WHERE name LIKE '%chy%',只要name字段包含chy即可,可以匹配chy、1chy1......
<select id="queryByName" parameterType="String" resultType="Student"> SELECT * FROM student_tb WHERE name LIKE '%${value}%' </select>
%是通配符,代表其他字符。
${}