配置完mybatis-config.xml之后,创建实体类,之后创建映射xml文件,如下
<?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="stu">
<select id="query" resultType="com.et.mybatis.study.entity.Student">
select * from student where id = 1
</select>
<select id="queryList" resultType="com.et.mybatis.study.entity.Student">
select * from student
</select>
<select id="queryMap" resultType="java.util.Map">
select * from student where id = 2
</select>
<select id="queryParam" resultType="student" parameterType="int">
select * from student where id = #{id}
</select>
<select id="queryMoreParam" resultType="student">
select * from student where id = #{id} and name =#{name}
</select>
<insert id="insert" parameterType="student">
insert into student values(#{id},#{name},#{sex},#{age},#{addr})
</insert>
</mapper>
select是查询标签
insert是插入标签
update是修改标签
delete是删除标签
配置完映射文件之后,读取配置文件,获取sqlSession对象
<span style="white-space:pre"> </span>InputStream inputStream = StudentTest.class.getResourceAsStream("/mybatis-config.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
当查询出来的数据只有一个的时候可以使用sqlSession.selectOne(arg0, arg1),arg0代表映射文件里面的id,最好使用namespace+id的方式;arg1代表传入sql的参数,该参数也可以不传。
当查询出来的数据有多个的时候可以使用sqlSession.selectList(arg0, arg1),arg0和arg1同上。
传参的方式有以下几种:
1.传入单个参数的时候:
可以直接传入,使用#{},${}获取,可以在映射文件里面声明参数的类型parameterType
2.传入多个参数的时候:
*直接传入一个引用对象
*把参数都添加到map里面,然后传入一个map
*使用@param注解
*直接在方法里面声明多个参数,然后使用#{0},#{1}...方式去获取
xml文件里面获取参数的方式有两种#{}和${}
#{}的方式会自带引号,防止了注入的风险,查询条件的参数都使用这个
${}的方式不会带引号,有注入的风险,当order by或者goup by时使用这个