一、实体关系
实体——数据实体,实体关系指的就是数据与数据之间的关系
例如:用户和角色、房屋和楼栋、订单和商品
实体关系分为以下四种:
一对一关联
实例:学生和校园卡、人和身份证、用户基本信息和详情
数据表关系:
-
主键关联(用户表主键和详情主键相同时,表示是匹配的数据)
学生和校园卡
- 唯一外键关联
学生和校园卡
一对多关联、多对一关联
实例:
-
一对多: 班级和学生、 类别和商品、楼栋和房屋
-
多对一:学生和班级 、 商品和类别
数据表关系:
-
在“多”的一方添加外键和“一”的一方进行关联。
学生和班级
多对多关联
实例:任课老师和班级、任课老师和学生、学生和社团、用户和角色、角色和权限、订单和商品。
数据表关系:建立第三张关系表添加两个外键分别与两张表主键进行关联。
学生和课程及成绩
任课教师和班级
二、创建项目部署MyBatis框架
(一)创建Web项目
项目名称:MyBatisTest2
添加Web4.0支持。
在pom.xml文件中添加Maven依赖(Servlet支持):
<!-- 添加web依赖 --> <dependency> <groupId>javax.servlet</groupId> <artifactId>jsp-api</artifactId> <version>2.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.1</version> <scope>provided</scope> </dependency>
另外还需要在pom.xml添加打包方式为war,这样在配置Tomcat发布时,部署里就会有“工件”选项。
<packaging>war</packaging>
如果测试jsp页面出现404错误,无法访问jsp,可以在【项目结构】->【工件】->【输出布局】中,添加项目的web目录。
(二)部署MyBatis框架
在pom.xml文件中添加Maven依赖(MyBatis支持和MySQL数据库驱动):
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.49</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.13</version> </dependency>
我们使用Maven方式添加jar包,在发布项目之前一定要在【项目结构】--【工件】中将Maven方式导入的包(右侧)添加到【输出根】(左侧)中。
(三)创建数据库连接配置文件
在src/main/resources目录下创建db.properties文件,在该文件中配置数据库连接的参数。
mysql.driver=com.mysql.jdbc.Driver mysql.url=jdbc:mysql://localhost:3306/db_test?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false mysql.username=root mysql.password=1234
(四)创建MyBatis核心配置文件
在src/main/resources目录下创建mybatis-config.xml文件,该文件主要用于项目的环境配置。
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!-- 环境配置 --> <!-- 加载类路径下的属性文件 --> <properties resource="db.properties"/> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <!-- 数据库连接配置,db.properties文件中的内容 --> <dataSource type="POOLED"> <property name="driver" value="${mysql.driver}"/> <property name="url" value="${mysql.url}"/> <property name="username" value="${mysql.username}"/> <property name="password" value="${mysql.password}"/> </dataSource> </environment> </environments> </configuration>
三、一对一关联
1、建表
CREATE TABLE tb_student ( sid INT PRIMARY KEY auto_increment, sname VARCHAR(20) NOT NULL, age INT ); CREATE TABLE tb_card ( cid INT PRIMARY KEY auto_increment, balance DOUBLE NOT NULL, sid INT NOT NULL UNIQUE-- CONSTRAINT FK_STUDENT FOREIGN KEY(sid) REFERENCES tb_student(sid) -- 物理外键关联,不推荐使用 );
现在很多大公司都“不推荐使用物理外键关联”,其中原因,大家可以自行上网搜索学习。https://blog.csdn.net/corleone_4ever/article/details/106540079
添加数据,可以使用Navicat【数据生成】功能,添加一些测试数据。
2、创建实体类
我们在这里给大家介绍一下Lombok。Lombok项目是一个Java库,它可以自动插入到编辑器和构建工具中,增强java的性能。不需要再写构造方法、getter和setter等方法,通过使用对应的注解,可以在编译源码的时候动态添加源码。
Lombok是一个可以大幅减少Java代码的工具。
导入Lombok依赖
<dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.26</version> <scope>provided</scope> </dependency>
- @Getter/@Setter
为字段生成Getter和Setter方法,可以注解到字段或者类上(注解在类上会为类中的所有字段生成Getter和Setter方法),默认是public类型的,如果需要的话可以修改方法的访问级别。
- @NonNull
为字段赋值时(即调用字段的setter方法时),如果传的参数为null,则会抛出空异常NullPointerException,生成setter方法时会对参数是否为空检查。
- @NoArgsConstructor
生成一个无参构造方法。当类中有final字段没有被初始化时,编译器会报错,此时可用@NoArgsConstructor(force = true),然后就会为没有初始化的final字段设置默认值 0 / false / null, 这样编译器就不会报错。对于具有约束的字段(例如@NonNull字段),不会生成检查或分配,因此请注意,正确初始化这些字段之前,这些约束无效。
- @RequiredArgsConstructor
生成构造方法(可能带参数也可能不带参数),如果带参数,这参数只能是以final修饰的未经初始化的字段,或者是以@NonNull注解的未经初始化的字段。
@RequiredArgsConstructor(staticName = “of”)会生成一个of()的静态方法,并把构造方法设置为私有的。
- @AllArgsConstructor
生成一个全参数的构造方法。
- @ToString
生成toString()方法,默认情况下它会按顺序(以逗号分隔)打印你的类名称以及每个字段。可以这样设置不包含哪些字段,可以指定一个也可以指定多个@ToString(exclude = “id”) / @ToString(exclude = {“id”,“name”})
如果继承的有父类的话,可以设置callSuper 让其调用父类的toString()方法,例如:@ToString(callSuper = true)
- @Data
@Data 包含了 @ToString、@EqualsAndHashCode、@Getter / @Setter和@RequiredArgsConstructor的功能。
Student类
package com.sdbi.pojo; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.ToString; @Data @NoArgsConstructor @AllArgsConstructor @ToString public class Student { private int sid; private String sname; private int age; }
Card类
package com.sdbi.pojo; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.ToString; @Data @NoArgsConstructor @AllArgsConstructor @ToString public class Card { private int cid; private double balance; private int uid; }
3、添加操作(事务)
4、一对一关联查询
四、一对多关联
1、建表
五、多对一关联
六、多对多关联
标签:关系,03,映射,关联,添加,ToString,mysql,import,lombok From: https://www.cnblogs.com/lihuawei/p/17273136.html