Mybatis第二天
Mybatis的crud操作
在之前的接口中加入相对于的crud方法
在mapper映射文件中写好对应的sql语句
再写对应的测试就行了。
Mybatis参数
****ParameterType是接口中方法的参数类型,全限定类名
ResultType
有3种类型
1.基本数据类型
2.Pojo对象
3.Pojo列表
ResultMap
我们发现啊 domain中实体类属性必须与数据库属性一致才能完成数据库相关操作
那有没有实体类不一致也能完成数据库操作
答案是有的
只不过我们需要在mapper映射文件中加入相关配置
<resultMap id="studentmap" type="com.nan.domain.StudentMap">
<id property="sid" column="id"></id>
<result property="sname" column="name"></result>
<result property="stid" column="tid"></result>
</resultMap>
<select id="findAllMap" resultMap="studentmap">
select * from student;
</select>
Id是唯一标识,用于select标签内的resultmap。
Resultmap标签内的id是主键,property是java实体类中的属性名。Column是数据库中的列名。
Properties
Mybatis主配置文件中的节点标签
那么有什么作用呢?
能把之前连接数据库的DataSource节点中的properties的value属性写在外面,里面用${}表示。上图是它的用法之一,我们平时几乎不用这种方法。
我们平时在properties标签中加入属性resource或者url
一般我们会把数据库连接信息写在另外一个配置文件中。
然后采用properties的resource引入数据库连接信息。Resouce路径是类加载路径。
Typealiases
也是mybatis主配置文件中的标签。你发现没有啊,在我们mapper文件中,有些参数类型啊,或者是返回值类型能够用十分简便的单词,比如基本类型(int,string),而我们domain中自定义的实体类要必须用全限定类名来写啊
所以这个typealiases的作用:起别名,给我们domain中的实体类取别名。然后我们也可以使用简便单词写。
Type属性为domain中的全限定类名,alias是别名
Package
1.在typealiases中也是属于起别名的标签,用于起别名的包下的所有domain实体类。写好之后类名就是别名。不区分大小写。
2.在mappers节点中也有package标签,就是说里面也能将所有包里面的mapper文件加载到mybatis主配置文件中。
注意: 必须mapper文件名与接口名一致。