在上次设置的基础上,我们可以使用普通的增删改查
select
创建一个mybatisMapper的配置文件
创建的时候,我们要注意,mapper标签中,要指定我们要操作类的全类名
查(select)
select 常用的属性有
id : 指定我们操作的类中的接口方法 这里我操作是student类(必须和方法名一致)
resultType : 返回值包装的类型,必须这上,不然mybatis不知道查询后返回的类型
resultMap : 自定义映射 , 在后面我们会写到
databaseId : 选择指定的数据库,(这个属性,其实我也没太用到,只用mysql) 这里我使用的oracle
差不多就这样了!
现在我们可以想,在返回时候,我们一般返回的有 List,Map,和单个的POJO
那resultType,应该怎么去写呢?
当返回的是List的时候
resultType 直接 等于 我们的 List中的参数的类型
例如 : List<Student1> list = xxxxx.selectxxxxx();
resultType 返回 map的时候 Mybatis 自动封装了 java.util.Map类
我们这样写就可以了
这里是返回单个Map的值 多个Map呢?
这里返回是 多个Map
也就是这个样子 ---> List<Map>
pass : 我们查询的时候 如果有参数
单个参数 : mybatis 不会处理, 可以不用设置@Param("xxxxx") 这里涉及到Myabtis的源码,以后有时间写把
map参数 : 使用 #{key} 直接获取值
List参数 : 使用 #{List[N]} 获取值
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="com.prosay.mapper.StudentMapper">
<!--
namespace:空间命名
id: 唯一标识
parameterType: 返回值类型
#{id} 从传过来的参数中取出我们的id的值
-->
<!-- 当数据库和名字不一样的时候使用 -->
<!-- public Employee getEmployeeById(Integer id);
id一样绑定方法
-->
<!-- employee 别名 建议使用包名 -->
<select id="getStudentById" resultType="student1" databaseId="oracle">
<!-- 指定数据库 databaseId="mysql" -->
select * from student1 where s_id = #{sId}
</select>
<!-- 如果参数是一个map,直接可以用#{key} 取值 -->
<select id="getStudentByIdSetParamMap" resultType="student1">
select * from student1 where s_id = #{sId}
</select>
<!-- 如果返回的是一个集合 要写集合中参数的类型 List<Student1> -->
<select id="selectStudentResultList" resultType="student1">
select * from student1
</select>
<!-- 单个map -->
<!-- 返回值类型是resultType -->
<select id="getStudentByIdResultMap" resultType="map">
select * from student1 where s_id = #{sId}
</select>
<!-- 多条 -->
<!-- 封装多条记录,resultType实体类的类型 -->
<select id="selectStudentListMap" resultType="student1">
select * from student1
</select>
</mapper>