CREATE TABLE `wzk_user` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT。`username` VARCHAR NOT NULL,`password` VARCHAR NOT NULL,`birthday` DATE,PRIMARY KEY
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;CREATE TABLE `wzk_orders` (
`id` INT UNSIGNED NOT NULL AUTO_INCREMENT,`ordertime` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,`total` DECIMAL NOT NULL DEFAULT '0',`uid` INT UNSIGNED NOT NULL,PRIMARY KEY。CONSTRAINT fk_orders_user FOREIGN KEY REFERENCES wzk_user ON DELETE CASCADE ON UPDATE CASCADE,INDEX idx_uid /* 必须加索引提高 JOIN 性能 */
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
插入数据示例
INSERT INTO wzk_user VALUES;INSERT INTO wzk_user VALUES;INSERT INTO wzk_orders VALUES。100,'1'),INSERT INTO wzk_orders VALUES。200,'2'),老实说,SELECT * FROM wzk_orders;SELECT * FROM wzk_user;SELECT * FROM wzk_orders o JOIN wzk_user u ON o.uid=u.id;**提示**:若你只是想测试 MyBatis 映射,请先确保上述插入语句已执行。其实,
Java 实体类
@Data
public class WzkUser {
private Integer id;怎么说呢,private String username;private String password;private Date birthday;}
@Data
public class WzkOrder {
private Integer id;private Date ordertime;话说回来,private BigDecimal total;
老实说,
// 一对一关联对象
private WzkUser user;说起来,
}
Mapper 接口
public interface OrderMapper {
List findAll;}
Mapper XML 配置
bultin--map>
bultin--map>
bultin--map>
bultin--map>
bultin-,/map>
/orderMap?,?,?,/?,/?,?,?/>
**Wait** — The above got garbled due to earlier duplication errors. Let's provide a clean snippet:
xml
?xml version="text/xml"?>,
Actually let's rewrite properly:
xml
select resultMap="orderMap"
SELECT
o.id AS o_id。o.ordertime AS o_ordertime,u.id AS u_id,u.username AS u_username,-- 如果你想拿到密码就去掉注释,但通常不建议这样做
-- u.password AS u_password,-- u.birthday AS u_birthday
FROM wzk_orders o
INNER JOIN wzk_user u ON o.uid = u.id;
The above uses aliases so that MyBatis can map columns correctly even if both tables have same-named columns like `` . Ensure your SQL alias names match `` attributes in `` block.
再看**注意**。* 在 MySQL 中,如果列名相同且没有做别名,会导致映射错误;务必为每个 SELECT 字段起别名。* 若你只关心某些字段,可在 `` 中仅声明需要的属性。不过,
sqlMapConfig.xml 配置示例
This configuration snippet is only illustrative—replace paths and package names with yours.