实体类
package com.zking.pojo;
public class root_user {
//权限id
private String rid;
//用户id
private String uid;
//权限类型
private int rtyep;
//字表对象
private users u;
public root_user() {
}
public root_user(String rid, String uid, int rtyep) {
this.rid = rid;
this.uid = uid;
this.rtyep = rtyep;
}
//setget方法
public users getU() {
return u;
}
public void setU(users u) {
this.u = u;
}
public String getRid() {
return rid;
}
public void setRid(String rid) {
this.rid = rid;
}
public String getUid() {
return uid;
}
public void setUid(String uid) {
this.uid = uid;
}
public int getRtyep() {
return rtyep;
}
public void setRtyep(int rtyep) {
this.rtyep = rtyep;
}
}
package com.zking.pojo;
import java.util.List;
public class users extends PageVo {
//id
private String uid;
//名称
private String uname;
//子表对象
private root_user root_user;
//权限id
private String rid;
//字表集合
private List<root_user> root_userList;
//构造方法
public users() {
}
//带参数的构造方法
public users(String uid, String uname, String rid) {
this.uid = uid;
this.uname = uname;
this.rid = rid;
}
//对象get/set方法
public List<com.zking.pojo.root_user> getRoot_userList() {
return root_userList;
}
public void setRoot_userList(List<com.zking.pojo.root_user> root_userList) {
this.root_userList = root_userList;
}
public String getUid() {
return uid;
}
public void setUid(String uid) {
this.uid = uid;
}
public String getUname() {
return uname;
}
public void setUname(String uname) {
this.uname = uname;
}
public String getRid() {
return rid;
}
public void setRid(String rid) {
this.rid = rid;
}
public root_user getRoot_user() {
return root_user;
}
public void setRoot_user(root_user root_user) {
this.root_user = root_user;
}
//toString方法
@Override
public String toString() {
return "users{" +
"uid='" + uid + '\'' +
", uname='" + uname + '\'' +
'}';
}
}
Mapper:
package com.zking.mapper;
import com.zking.pojo.users;
import java.util.List;
public interface IUsers {
//1对1
public List<users> FindAll();
//1对多
public List<users> FindAllList();
}
package com.zking.mapper;
import com.zking.pojo.root_user;
import java.util.List;
public interface IRoot_user {
//多对一方法
public List<root_user> FindAll();
}
XML:
<?xml version="1.0" encoding="utf-8" ?>
<!--引用mybatisDTD文件-->
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zking.mapper.IUsers">
<!--resultMap里面写的所有的列是你当前SQL语句所需要返回的列-->
<!--1对1-->
<resultMap id="UserAndRoot" type="users">
<id property="uid" column="uid"></id>
<result property="uname" column="uname"></result>
<association property="root_user" javaType="root_user">
<!--root_user是user表里面定义的root_user表的对象
association是1-->
<result property="uid" column="uid"></result>
</association>
</resultMap>
<!--1对多-->
<resultMap id="UserAndRootList" type="users">
<id property="uid" column="uid"></id>
<result property="uname" column="uname"></result>
<collection property="root_userList" ofType="root_user">
<!--root_userList是user表里面定义的root_userList集合
collection多-->
<result property="uid" column="uid"></result>
</collection>
</resultMap>
<!--表连接sql语句-->
<select id="FindAll" resultMap="UserAndRoot">
select * from users u INNER JOIN root_user r on u.uid=r.uid
</select>
<!--表连接sql语句-->
<select id="FindAllList" resultMap="UserAndRoot">
select * from users u LEFT JOIN root_user r on u.uid=r.uid
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8" ?>
<!--引用mybatisDTD文件-->
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zking.mapper.IRoot_user">
<!--多对1关系-->
<resultMap id="Root_userAndUser" type="root_user">
<result property="uid" column="uid"></result>
<association property="u" javaType="users">
<!--u是root_user表里面定义的user表的对象-->
<id property="uid" column="uid"></id>
<result property="uname" column="uname"></result>
</association>
</resultMap>
<!--表连接sql语句-->
<select id="FindAll" resultMap="Root_userAndUser">
select * from root_user r INNER JOIN users u on r.uid=u.uid
</select>
</mapper>
Test:
import com.zking.mapper.IRoot_user;
import com.zking.mapper.IUsers;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class Test {
@org.junit.Test
//1对1
public void OnetoOne() throws Exception {
//创建工程并且获取xml文件
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis-config.xml"));
//创建会话
SqlSession sqlSession = sqlSessionFactory.openSession();
//进行方法的调用getMapper并且输出
IUsers mapper = sqlSession.getMapper(IUsers.class);
//调用查询方法
mapper. FindAll();
//关闭数据库连接
sqlSession.close();
}
@org.junit.Test
//多对多
public void OnetoMany() throws Exception {
//创建工程并且获取xml文件
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis-config.xml"));
//创建会话
SqlSession sqlSession = sqlSessionFactory.openSession();
//进行方法的调用getMapper并且输出
IUsers mapper = sqlSession.getMapper(IUsers.class);
//调用查询方法
mapper. FindAllList();
//关闭数据库连接
sqlSession.close();
}
//多对1
public void ManytoOne() throws Exception {
//创建工程并且获取xml文件
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(Resources.getResourceAsStream("mybatis-config.xml"));
//创建会话
SqlSession sqlSession = sqlSessionFactory.openSession();
//进行方法的调用getMapper并且输出
IRoot_user mapper = sqlSession.getMapper(IRoot_user.class);
//调用查询方法
mapper. FindAll();
//关闭数据库连接
sqlSession.close();
}
}
配置文件:
<?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>
<settings>
<setting name="logImpl" value="LOG4J"/>
</settings>
<typeAliases>
<package name="com.zking.pojo"></package>
</typeAliases>
<!--jdbc数据库连接池-->
<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://localhost:3306/zx?characterEncoding=UTF-8"/>
<property name="username" value="root"/>
<property name="password" value="sasa"/>
</dataSource>
</environment>
</environments>
<!--添加mapper依赖-->
<mappers>
<mapper resource="com/zking/mapper/Users.xml"></mapper>
<mapper resource="com/zking/mapper/Root_user.xml"></mapper>
</mappers>
</configuration>