Account.java
package cn.itcast.domin; public class Account { private Integer aid; private Integer uid; private Double money; //实现一对一 private User user; public User getUser() { return user; } public void setUser(User user) { this.user = user; } public Account() { } public Integer getAid() { return aid; } public void setAid(Integer aid) { this.aid = aid; } public Integer getUid() { return uid; } public void setUid(Integer uid) { this.uid = uid; } public Double getMoney() { return money; } public void setMoney(Double money) { this.money = money; } @Override public String toString() { return "Account{" + "aid=" + aid + ", uid=" + uid + ", money=" + money + '}'; } } |
User.java
package cn.itcast.domin; import java.io.Serializable; import java.util.Date; import java.util.List; /** * */ public class User implements Serializable { private Integer userId; private String userName; private String userAddress; private String userSex; private Date userBirthday; //实现一对多 private List<Account> accounts; public List<Account> getAccounts() { return accounts; } public void setAccounts(List<Account> accounts) { this.accounts = accounts; } public Integer getUserId() { return userId; } public void setUserId(Integer userId) { this.userId = userId; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getUserAddress() { return userAddress; } public void setUserAddress(String userAddress) { this.userAddress = userAddress; } public String getUserSex() { return userSex; } public void setUserSex(String userSex) { this.userSex = userSex; } public Date getUserBirthday() { return userBirthday; } public void setUserBirthday(Date userBirthday) { this.userBirthday = userBirthday; } @Override public String toString() { return "User{" + "userId=" + userId + ", userName='" + userName + '\'' + ", userAddress='" + userAddress + '\'' + ", userSex='" + userSex + '\'' + ", userBirthday=" + userBirthday + '}'; } public static void main(String[] args) { System.out.println("000"); } } |
IAccountDao.java
package cn.itcast.dao; import cn.itcast.domin.Account; import java.util.List; public interface IAccountDao { //查询所有账户信息,关联查询用户的信息。(一对一) public List<Account> findAccount(); } |
IUserDao.java
package cn.itcast.dao; import cn.itcast.domin.User; import java.util.List; public interface IUserDao { //查询所有用户信息及用户关联的账户信息。(一对多) public List<User> findUser(); } |
IAccountDao.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="cn.itcast.dao.IAccountDao"> <resultMap id="accountMap" type="cn.itcast.domin.Account"> <!--Account类中的属性和account表中的列相对应 <id></id>:account表中主键的和Account类属性对象 --> <!--注意column属性对应的是,sql语句查询出来的字段名(或者起的别名),不是表中的字段--> <id property="aid" column="aid"></id> <result property="uid" column="uid"></result> <result property="money" column="money"></result> <!--Account类中,引入User类 property:Account类中引入User类,所起的属性名( private User user) javaType:user的全类名 <id></id>:user表中主键的和User类属性对象 --> <!--一对一--> <association property="user" javaType="cn.itcast.domin.User"> <!--注意column属性对应的是,sql语句查询出来的字段名(或者起的别名),不是表中的字段--> <id property="userId" column="id"></id> <result property="userName" column="username"></result> <result property="userBirthday" column="birthday"></result> <result property="userSex" column="sex"></result> <result property="userAddress" column="address"></result> </association> </resultMap> <!--查询所有账户信息,关联查询用户的信息。(一个账户对应一个用户,一对一)--> <select id="findAccount" resultMap="accountMap"> SELECT a.*, u.* FROM account a, USER u WHERE a.uid = u.id </select> </mapper> |
IUserDao.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="cn.itcast.dao.IUserDao"> <resultMap id="userMap" type="cn.itcast.domin.User"> <!--注意column属性对应的是,sql语句查询出来的字段名(或者起的别名),不是表中的字段--> <id property="userId" column="id"></id> <result property="userName" column="username"></result> <result property="userBirthday" column="birthday"></result> <result property="userSex" column="sex"></result> <result property="userAddress" column="address"></result> <!--User类中引入的List<Account> accounts ofType:引入list的泛型 --> <!--一对多 --> <collection property="accounts" ofType="cn.itcast.domin.Account"> <!--注意column属性对应的是,sql语句查询出来的字段名(或者起的别名),不是表中的字段--> <id property="aid" column="aid"></id> <result property="uid" column="uid"></result> <result property="money" column="money"></result> </collection> </resultMap> <!--查询所有用户信息及用户关联的账户信息。(一对多)--> <select id="findUser" resultMap="userMap"> SELECT * FROM USER u LEFT JOIN account a ON a.`uid` = u.`id` </select> </mapper> |
多对多