本篇目的介绍一下在开发过程中使用mabtis,如何自己去操作数据库以及如何将表之间的关系建立联系.当在Mapper的接口文件中写入多个方法对数据库进行操作时,需要在对应的xml
文件中,写入多条select
,insert
,delete
等语句,此时可以在xml文件中用结果映射的方式进行统一匹配处理,代码如下:
<mapper namespace="com.lanou.mapper.StudentMapper">
<resultMap id="BaseMap" type="com.lanou.bean.Student">
<id column="id" property="id"/>
<result column="name" property="name"/>
resultMap>
二、写上结果映射后,在写select等执行语句时,可以用resultMap=”ID”的形式进行映射,示例如下:
<select id="allListStudent" resultMap="BaseMap">
SELECT * FROM student
select>
三、数据库查询语句中,Mybats提供一种方法,可以将查询条件归集到一个标签中,将其ID设置好,这样用到对应条件的参数时,可以根据ID来进行操作,方便使用,示例如下:
<sql id="WaHaHa">
id,name
sql>
<select id="allListStudent" resultMap="BaseMap">
SELECT
<include refid="WaHaHa"/>
FROM student
select>
四、当对数据库进行增删改查等多项操作时,有时需要考虑根据某项参数来进行操作,或者直接操作实体类对象,代码如下:
public interface StudentMapper {
//查询所有的学生
List allListStudent();
//如果参数有多个,需要使用@Param注解规定参数的别名
void insertStudent(@Param("sname") String name);
//直接插入student
void insertStu(Student student);
//删除
void deleteStudent(@Param("sid") Integer id);
//更新数据
void updateStudent(Student student);
}
五、根据以上代码可以知道,用注解@Param的方式对参数进行规定别名,在xml文件中要与设置的别名对应上,其中的Type,需要用到的是parameterType,映射到具体的实体类但是该parameterType可写可不写,xml代码如下:
<insert id="insertStudent">
INSERT INTO student VALUES (NULL,#{sname});
insert>
<insert id="insertStu" parameterType="com.lanou.bean.Student">
INSERT INTO student VALUES (NULL ,#{name})
insert>
<delete id="deleteStudent">
DELETE FROM student WHERE id=#{sid};
delete>
<update id="updateStudent">
UPDATE student SET name=#{name} WHERE id = #{id};
update>