mybatis详解

简介

  • MyBatis 几乎可以代替 JDBC, 与 JDBC 相比,减少了 50% 以上的代码量并且满足高并发和高响应的要求。

  • 使用Mybatis,只需要自己提供SQL语句,其他的工作,诸如建立连接,Statement, JDBC相关异常处理等等都交给Mybatis去做了

映射文件

映射语句

  • 映射语句是MyBatis映射文件中映射到sql的各种语句,如select、insert、update和delete等语句。

  • 所有的语句都有唯一的id。要执行这些语句,只需要将对应id传递给Java方法。

  • 映射文件避免了Java代码中重复编写SQL语句。

  • 所有映射语句都包含在<mapper>标签下,该标签有“namespace”属性。

    <mapper namespace = "User">
       // 映射语句与结果映射
    <mapper> 
    

增(insert)

要将值插入表,必须配置insert映射语句。insert映射语句有各种参数,通常主要使用idparameterType

id是唯一标识符,用于标识insert语句。parameterType表示传递给映射语句的参数类名或别名。

<insert id = "insert" parameterType = "User">
   INSERT INTO user (NAME) 
   VALUES (#{name});    
</insert>
上面的传入的参数类型是User (class)。

在映射文件中配置好insert映射语句后,在Java代码中就可以根据映射语句的id执行该语句。如下所示:

// 假设 session 是 SqlSession 实例
session.insert("User.insert", user);

改(update)

Update映射语句用于更新数据库记录。

<update id = "update" parameterType = "User">
   UPDATE user SET NAME = #{name} WHERE ID = #{id};
</update>

在Java代码中就可以根据映射语句的id执行该语句。如下所示:

// 假设 session 是 SqlSession 实例 
session.update("User.update", user);

删(delete)

Delete映射语句用于删除现有记录。

<delete id = "deleteById" parameterType = "long">
   DELETE from User WHERE ID = #{id};
</delete>

在Java代码中就可以根据映射语句的id执行该语句。如下所示:

// 假设 session 是 SqlSession 实例   
session.delete("User.deleteById", 3);

查(select)

Select映射语句用于查询数据。

<select id = "getAll" resultMap = "result">
   SELECT * FROM User; 
</select>

在Java代码中就可以根据映射语句的id执行该语句,该方法以列表形式返回结果,如下所示:

// 假设 session 是 SqlSession 实例  
List<User> list = session.selectList("User.getAll");

resultMaps即结果映射,是MyBatis中最重要、最强大的标签,其作用是把select sql执行结果映射到Java对象。

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×