什么是mybatis
mybatis是一个优秀的基于java的持久层框架,它内部封装了jdbc,使开发者只需要关注sql语句本身
核心配置文件:
<properties resource="jdbc.properties"></properties>
<typeAliases>
<typeAlias type="com.cqgcxy.entity.Phone"></typeAlias>
</typeAliases>
<!--使用相对于类路径的资源引用,例如: -->
<mapper resource="org/mybatis/builder/AuthorMapper.xml"/>
<!--使用完全限定资源定位符(URL),例如: -->
<mapper url="file:///var/mappers/AuthorMapper.xml" />
<!--使用映射器接口实现类的完全限定类名,例如: -->
<mapper class="org.mybatis.builder.AuthorMapper"/>
<!--将包内的映射器接口实现全部主册为映射器,例如: -->
<package name="org.mybatis.builder"/>
mybatis实现增删查改
1)导入相关依赖
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.33</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
</dependency>
</dependencies>
2)创建实体类
3)在resources文件夹下创建并编写映射文件mapper/PhoneMapper.xml
其中namespace:是接口的别名,要与自己写的mapper接口名称相对应,否则无法完成映射
其中property="是实体类的字段名称" column="是数据库的字段名称"
type代表类型
当一对多进行查询的时候使用的是<collection> 使用<select><update><insert><delete>标签来进行增删查改
id是唯一表示,在mapper接口使用,resultMap是返回值类型
使用注解方式来增删查改
在mapper接口中用@Select
public interface BrandMapper {
@Select("SELECT * FROM brand WHERE brand_id = #{brandId}")
Brand selectById(Long brandId);
}
xml方式:实现同一对多。不同点在于,多对多至少是三张表之间的关系(包含关联表)。
注解方式:实现同一对多。不同点在于,多对多@Many中的查询语句要根据条件id查询包括关联表在内的两张表。