SSM框架-MyBatis进阶篇(一)

一、MaBatis

本篇目的介绍一下在开发过程中使用mabtis,如何自己去操作数据库以及如何将表之间的关系建立联系.当在Mapper的接口文件中写入多个方法对数据库进行操作时,需要在对应的xml文件中,写入多条select,insert,delete等语句,此时可以在xml文件中用结果映射的方式进行统一匹配处理,代码如下:

<!--namespace:一般写对应的接口路径-->
<mapper namespace="com.lanou.mapper.StudentMapper">

    <!--MyBatis的结果映射:
        如果当实体类的属性名和数据库表的列名不一致的情况下,
     需要使用结果映射来确保数据的一致性
     要求:需要将所有的映射写在sql语句之上
     -->
    <resultMap id="BaseMap" type="com.lanou.bean.Student">
        <!--
           column:数据库表的列名.property:实体类的属性名
           id:只有这个是特殊的
           其他的都用result即可
        -->
        <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片段,以供反复使用-->
    <sql id="WaHaHa">
        id,name
    </sql>

    <select id="allListStudent" resultMap="BaseMap">

        SELECT
         <include refid="WaHaHa"/>
         FROM student

    </select>

四、当对数据库进行增删改查等多项操作时,有时需要考虑根据某项参数来进行操作,或者直接操作实体类对象,代码如下:

public interface StudentMapper {
    //查询所有的学生
    List<Student> 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>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值