我是靠谱客的博主 稳重大叔,最近开发中收集的这篇文章主要介绍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>

最后

以上就是稳重大叔为你收集整理的mybatis学习三之mapper.xml开发方法的全部内容,希望文章能够帮你解决mybatis学习三之mapper.xml开发方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部