4.0.0org.springframework.bootspring-boot-starter-parent2.3.9.RELEASEcom.atguigumybatis_plus0.0.1-SNAPSHOTmybatis_plusDemo project for Spring Boot1.8org.springframework.bootspring-boot-starterorg.springframework.bootspring-boot-starter-testtestorg.junit.vintagejunit-vintage-enginecom.baomidoumybatis-plus-boot-starter3.3.1mysqlmysql-connector-javaorg.projectlomboklomboktrueorg.mybatismybatis-spring2.0.6org.springframework.dataspring-data-commons2.3.7.RELEASEorg.springframework.bootspring-boot-maven-plugin
2.配置信息
#数据库的相关配置
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis1x?serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=root
# MyBatis Mapper所对应的XML文件位置
mybatis-plus.mapper-locations= classpath*:/static
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for account
-- ----------------------------
DROp TABLE IF EXISTS `account`;
CREATE TABLE `account` (
`a_id` int(11) NOT NULL AUTO_INCREMENT,
`money` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`u_id` int(11) NULL DEFAULT NULL,
PRIMARY KEY (`a_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of account
-- ----------------------------
INSERT INTO `account` VALUES (1, '100', 1);
INSERT INTO `account` VALUES (2, '200', 2);
INSERT INTO `account` VALUES (3, '300', 3);
INSERT INTO `account` VALUES (4, '400', 4);
INSERT INTO `account` VALUES (5, '110', 1);
-- ----------------------------
-- Table structure for role
-- ----------------------------
DROP TABLE IF EXISTS `role`;
CREATE TABLE `role` (
`role_id` int(11) NOT NULL AUTO_INCREMENT,
`role_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`role_desc` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
PRIMARY KEY (`role_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of role
-- ----------------------------
INSERT INTO `role` VALUES (1, '总裁', '管理公司');
INSERT INTO `role` VALUES (2, '经理', '管理部门');
INSERT INTO `role` VALUES (3, '组长', '管理小组');
INSERT INTO `role` VALUES (4, '县长', '管理县');
-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
`sex` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of user
-- ----------------------------
INSERT INTO `user` VALUES (1, '牛一', '海南', '男');
INSERT INTO `user` VALUES (2, '牛二', '海南', '女');
INSERT INTO `user` VALUES (3, '京一', '北京', '男');
INSERT INTO `user` VALUES (4, '京二', '北京', '女');
-- ----------------------------
-- Table structure for user_role
-- ----------------------------
DROP TABLE IF EXISTS `user_role`;
CREATE TABLE `user_role` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NULL DEFAULT NULL,
`role_id` int(11) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
-- ----------------------------
-- Records of user_role
-- ----------------------------
INSERT INTO `user_role` VALUES (1, 1, 1);
INSERT INTO `user_role` VALUES (2, 1, 4);
INSERT INTO `user_role` VALUES (3, 2, 2);
INSERT INTO `user_role` VALUES (4, 3, 3);
INSERT INTO `user_role` VALUES (5, 4, 4);
SET FOREIGN_KEY_CHECKS = 1;
二、一对一
1.Account实体类
package com.atguigu.mybatis_plus.entity;
import lombok.Data;
@Data
public class Account {
private Integer aId;
private Integer uId;
private Double money;
//一个账号只有一个用户。1-1
private User user;//对应association property="user" user指的就是这个对象
@Override
public String toString() {
return "Account{" +
"aId=" + aId +
", uId=" + uId +
", money=" + money +
'}';
}
}
2.User实体类
package com.atguigu.mybatis_plus.entity;
import lombok.Data;
@Data
public class User {
private Integer id;
private String name;
private String address;
private String sex;
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + ''' +
", address='" + address + ''' +
", sex='" + sex + ''' +
'}';
}
}
3.AccountMapper接口
package com.atguigu.mybatis_plus.mapper;
import com.atguigu.mybatis_plus.entity.Account;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
import java.util.List;
@Mapper
@Repository
public interface AccountMapper {
//查找所有账号,每个账号对应一个用户
List findAll();
}
//一个用户对应多个账户,也就是一个User有多个Account对象。
private List account;
2.UserMapper接口
package com.atguigu.mybatis_plus.mapper;
import com.atguigu.mybatis_plus.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
import java.util.List;
@Mapper
@Repository
public interface UserMapper {
//查询所有操作,同时获取到用户下所有账户的信息
List findAll();
//根据用户id找某个用户信息
User findById(int id);
}
3.UserMapper.xml
4.测试类加上方法
@Test
public void userfind() {
List list= userMapper.findAll();
for (User a:list) {
a.toString();
System.out.println(a.getAccount());
}
User user = userMapper.findById(1);
System.out.println(user);
System.out.println(user.getAccount());
}