Mybatis映射关系-多对一映射
2017-12-05 15:15
211 查看
mybatis映射关系是开发中常见的一种开发思维模式,也是现在开发不可或缺的一种设计理念,今天我把多对一的程序笔记在博客上,作为日后学习的一种分享,主要步骤如下所示:
1.在entity包新建TClass.java类,用来存放class实体类,主要代码如下所示:
2.在entity包中新建TStudent.java,用来存放Student实体类,主要代码如下所示:
3.在dao包中新建TStudentDao.java接口,该接口用来定义实现数据库操作的接口,代码如下所示:
4.在entity包中新建TStudent.xml配置文件,用来配置数据库相关信息,代码如下所示:
5.接下来在src/main/resource里面添加“configure.xml”配置文件进行数据库连接配置以及映射文件配置,配置代码如下所示:
6.在biz包中的TStudentBiz.java里面进行业务层逻辑操作(关于SessionFactory.java配置在我的博客接口配置这块)代码如下所示:
7.这是最后一步,进行测试连接,代码如下所示:
此外关于实体类数据库查询的配置还有另外一种配置方案,代码如下所示:
1.在entity包新建TClass.java类,用来存放class实体类,主要代码如下所示:
package com.baidu.lmj.entity; public class TClass { private int id; private String cname; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getCname() { return cname; } public void setCname(String cname) { this.cname = cname; } }
2.在entity包中新建TStudent.java,用来存放Student实体类,主要代码如下所示:
package com.baidu.lmj.entity; public class TStudent { private int id; private String username; private int cid; private TClass tclass; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public int getCid() { return cid; } public void setCid(int cid) { this.cid = cid; } public TClass getTclass() { return tclass; } public void setTclass(TClass tclass) { this.tclass = tclass; } }
3.在dao包中新建TStudentDao.java接口,该接口用来定义实现数据库操作的接口,代码如下所示:
package com.baidu.lmj.dao; import java.util.List; import com.baidu.lmj.entity.TStudent; public interface TStudentDao { public List<TStudent> SelectAllTStudent(); }
4.在entity包中新建TStudent.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.baidu.lmj.dao.TStudentDao"> <!-- 制定一个映射,用来接受返回类型 (type:指出指定实体类 ,id:映射名称)--> <resultMap type="com.baidu.lmj.entity.TStudent" id="map01"> <!-- id 主键名称 result:属性名称 --> <id column="sid" property="id"/> <result column="username" property="username"/> <result column="cid" property="cid"/> <!--association:如果一个实体类中包含另一个实体类,可以用来接收属性名称 javatype:指这是指定属性名称 --> <association property="tclass" javaType="com.baidu.lmj.entity.TClass"> <id column="cid" property="id"/> <result column="cname" property="cname"/> </association> </resultMap> <select id="SelectAllTStudent" resultMap="map01"> select a.id AS sid,username,cid,cname FROM t_class b INNER JOIN t_student a ON b.id=a.cid </select> </mapper>
5.接下来在src/main/resource里面添加“configure.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> <environments default="development"> <environment id="development"> <transactionManager type="JDBC" /> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://127.0.0.1:3306/project3" /> <property name="username" value="root" /> <property name="password" value="" /> </dataSource> </environment> </environments> <!-- 实体类映射配置 --> <mappers> <mapper resource="com/baidu/lmj/entity/TStudent.xml"/> </mappers> </configuration>
6.在biz包中的TStudentBiz.java里面进行业务层逻辑操作(关于SessionFactory.java配置在我的博客接口配置这块)代码如下所示:
package com.baidu.lmj.biz; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.ibatis.session.SqlSession; import com.baidu.lmj.dao.TStudentDao; import com.baidu.lmj.entity.TStudent; import com.baidu.lmj.util.SessionFactory; public class TStudentBiz { TStudentDao dao; public List<TStudent> getAllTStudent(){ List<TStudent> list=new ArrayList<TStudent>(); try { SqlSession session=SessionFactory.getSession(); dao=session.getMapper(TStudentDao.class); list=dao.SelectAllTStudent(); SessionFactory.ClosedSession(session); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; } }
7.这是最后一步,进行测试连接,代码如下所示:
package com.baidu.lmj.Main; import java.util.List; import com.baidu.lmj.biz.TStudentBiz; import com.baidu.lmj.entity.TStudent; public class Main { public static void main(String[] args) { TStudentBiz biz=new TStudentBiz(); List<TStudent> list=biz.getAllTStudent(); for(TStudent t:list) { System.out.println(t.getId()+" "+t.getUsername()+" "+t.getTclass().getId()+"("+t.getTclass().getCname()+")"); } } }
此外关于实体类数据库查询的配置还有另外一种配置方案,代码如下所示:
<resultMap type="com.baidu.lmj.entity.TStudent" id="map02"> <id column="id" property="id"/> <result column="username" property="username"/> <association property="tclass" column="cid" javaType="com.baidu.lmj.entity.TClass" select="id1"> <id column="id" property="id"/> <result column="cname" property="cname"/> </association> </resultMap> <select id="SelectAllTStudent1" resultMap="map02"> select * from t_student </select> <select id="id1" parameterType="int" resultType="com.baidu.lmj.entity.TClass"> select * from t_class where id=#{id} </select>
相关文章推荐
- MyBatis 映射对象关系举例(3)
- mybatis 多对多映射关系
- MyBatis中多对多关系的映射和查询
- Mybatis多对多映射关系详解
- mybatis对象之间映射关系以及数据库表建立的时候外键的添加
- mybatis关系映射之一对多和多对一
- MyBatis 映射对象关系举例(4)
- MyBatis中多对多关系的映射和查询
- mybatis对象之间映射关系以及数据库表建立的时候外键的添加
- mybatis关系映射之一对多和多对一
- mybatis关系映射之一对多和多对一
- Mybatis 一对多(OneToOne)关系映射
- java的orm框架 mybatis 多对多 一对多关系的关联映射和查询--简单易懂,理解才是王道
- MyBatis关系映射之一对一
- MyBatis 映射对象关系举例(5)
- Mybatis框架中实现双向一对多关系映射
- mybatis对象之间映射关系以及数据库表建立的时候外键的添加
- mybatis对象之间映射关系以及数据库表建立的时候外键的添加
- Mybatis的关系映射和相应的配置文件
- mybatis关系映射之一对多和多对一