mybatis学习三之mapper.xml开发方法

第一篇最后介绍了mybatis在Java类中的实现方法,现在介绍mybatis的 mapper代理开发方法的用法

1.编写mapper接口

    只需要写一个接口,在接口中写要实现的Java的方法定义即可.方法的定义最后要抛出异常

    遵循一定的开发规范,mybatis可以自动生成mapper接口实现类代理对象

2.编写映射文件 mapper.xml

    开发规范:1).在mapper.xml文件中的namespace等于mapper接口(1中创建的接口)的映射地址

                   2).mapper.java接口中的方法名与xml文件中statement的id相同(即 <select id=""> 此处的id)

                   3).mapper.java接口中的方法返回值类型和xml文件中statement的resultType指定的类型一致(java中返回类型为List泛型List<E>的时候, statement中的 resultType的返回值用的是E的全地址映射)

                   4).mapper.java接口中的参数和xml文件中的statement的parameterType指定的类型一致

3.编写流程

1).创建接口,接口的方法和xml遵循开发规范

2).在主类中添加会话工厂(单例模式)

3).主函数中new 一个sqlSession会话

4).定义接口对象

   例:UseMapper useMapper = sqlSession.getMapper(UseMapper.class);

5).执行需要的函数

6).关闭对话sqlSession.close();


注意: mapper接口的方法参数只能有一个,可以包装类型的pojo来满足不同的业务要求,系统框架中dao层是被业务逻辑层调用的

PS:持久层方法可以使用包装类型,hasMap等Service方法中建议不适用(不利于业务层维护或可扩展性)


附加一段代码:

mapper.java

public interface adminService {

    public Join adminJoinIn() throws Exception;
    public List<teacher> queryAllForTeacher() throws Exception;
    public List<student> queryAllForStudent() throws Exception;
    public List<JoinTS> joinMessageTeacher() throws  Exception;
    public List<JoinTS> joinMessageStudent() throws  Exception;
    public void insertT(teacher teacher) throws  Exception;
    public void insertS(student student) throws Exception;
    public void delete_T(int id) throws Exception;
    public void delete_S(int id) throws Exception;
    public void update_T(teacher teacher) throws Exception;
    public void update_S(student student) throws Exception;

}

对应的xml文件:(注意上面的类名和下面的namespace 以及其他规范)

<?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.service.adminService">

    <select id="adminJoinIn" resultType="com.domain.Join">
        SELECT * FROM admin;
    </select>

    <!--查询所有的老师的statement-->
    <select id="queryAllForTeacher" resultType="com.domain.teacher" >
        SELECT  * FROM teacher;
    </select>
    <!--查询所有学生的statement-->
    <select id="queryAllForStudent" resultType="com.domain.student" >
        SELECT  * FROM student;
    </select>
    <!--查询老师的登录账号和密码-->

    <select id="joinMessageTeacher" resultType="com.domain.JoinTS" >
        SELECT  id,password FROM teacher;
    </select>
    <!--查询学生的登录账号和密码-->
    <select id="joinMessageStudent" resultType="com.domain.JoinTS">
        SELECT  id,password FROM  student;
    </select>

<!--录入学生和老师的信息-->
    <insert id="insertT" parameterType="com.domain.teacher">
        INSERT teacher(id,name,password) values(#{id},#{name},#{password});
    </insert>
    <insert id="insertS" parameterType="com.domain.student">
        INSERT student(id,name,password,className,classId) values(#{id},#{name},#{password},#{className},#{classId})
    </insert>

    <!--删除单个的信息-->
    <delete id="delete_T"  parameterType="java.lang.Integer" >
        DELETE FROM teacher WHERE id = #{id};
    </delete>

    <delete id="delete_S"  parameterType="java.lang.Integer" >
        DELETE FROM student WHERE id = #{id};
    </delete>

    <!--修改单个的信息-->
    <select id="update_T" parameterType="com.domain.teacher" >
        update teacher SET id = #{id} ,name = #{name} , password = #{password} WHERE  id = #{id};
    </select>
    <select id="update_S" parameterType="com.domain.student" >
        update student SET id = #{id} ,name = #{name} , password = #{password}
        , className = #{className} , classId = #{classId} WHERE  id = #{id};
    </select>
</mapper>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MyBatis 是一款使用 XML 或注解配置的持久层框架,它可以自动化地将数据库中的数据映射到 Java 对象中。在 MyBatis 中,mappermapper.xml 是配对使用的,其中 mapper 是接口,而 mapper.xml 是映射配置文件。 mapper 接口中定义了数据库操作的方法,而 mapper.xml 中则定义了这些方法的 SQL 语句以及参数映射规则、结果集映射规则等。 下面是一个简单的例子: 1. 定义 mapper 接口 ```java public interface UserMapper { User selectUserById(Integer id); } ``` 2. 定义 mapper.xml 映射配置文件 ```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.example.UserMapper"> <resultMap id="userResultMap" type="com.example.User"> <id column="id" property="id"/> <result column="username" property="username"/> <result column="password" property="password"/> </resultMap> <select id="selectUserById" resultMap="userResultMap"> SELECT * FROM user WHERE id = #{id} </select> </mapper> ``` 上述代码中,namespace 属性指定了 mapper 接口的全限定名,resultMap 标签定义了一个结果集映射规则,select 标签定义了一个查询操作,其中 id 属性指定了 mapper 接口中的方法名,resultMap 属性指定了结果集映射规则的 id。 3. 在 MyBatis 配置文件中引入 mapper.xml ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <mappers> <mapper resource="com/example/UserMapper.xml"/> </mappers> </configuration> ``` 上述代码中,mapper 标签指定了映射配置文件的位置。 这样就完成了 mappermapper.xml 的配置。在代码中调用 selectUserById 方法时,MyBatis 会根据 mapper.xml 中的配置自动生成 SQL 语句,并将查询结果映射到 User 对象中。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值