多表查询
创建一个类型,类的属性是表的字段,这里用两张表来实现
package com.java.damin;
public class User {
private Integer id;
private String user;
private String password;
private String gender;
private String email;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
}
- 两张表的字段可以写在一个类里面(为了不重复写,我这里继承了user类)
package com.java.damin;
public class UserOrder extends User{
private String name;
private String riqi;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getRiqi() {
return riqi;
}
public void setRiqi(String riqi) {
this.riqi = riqi;
}
}
写mapper接口
package com.java.mapper;
import java.util.List;
import com.java.damin.User;
import com.java.damin.UserOrder;
public interface UserMapper {
User testById(User user);
//多表查询
List<UserOrder> testByUser(UserOrder userOrder);
}
Mapper.XML文件
parameterType和resultType我设置l别名,没有设置需要用权限命名
<?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.java.mapper.UserMapper">
<!-- 查询id -->
<select id="testById" parameterType="int" resultType="User">
select * from user where id=#{id}
</select>
<!-- 多表查询 --> <!-- 已经设置好别名 -->
<select id = "testByUser" parameterType="UserOrder" resultType="UserOrder">
SELECT a.id,a.user,b.name,b.riqi FROM USER a,order1 b WHERE a.id=b.userId AND a.id=#{id}
</select>
</mapper>