概述
第一篇最后介绍了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开发方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复