配置文件完成增删改查
简单来说就是把SQL语句写进配置文件中
准备环境
- 数据库表tb_brand
- 实体类Brand
- 测试用例
- 安装MyBatisX插件
测试用例即创建一个测试类,而测试类则应该在test/java目录下创建,而不是main/java目录下创建
MyBatisX是一款基于IDEA的快速开发插件,为效率而生
主要功能:
- XML和接口方法相互跳转
- 根据接口方法生成statement
注解完成增删改查
简单来说就是把SQL语句写进注解中
MyBatis操作步骤:
- 编写接口方法:Mapper接口
- 参数:确定是否有参数,参数即条件
- 结果:确定左后的返回的结果集类型
- 编写SQL语句:SQL映射文件
- 执行方法,测试
ResultMap取别名
在编写SQL的时候,要注意实体类里面的属性名和数据库中的字段名的匹配性问题,从而引起的封装失败的问题。比如常见的数据库采用下划线命名,而java采用驼峰命名法:
例如:stu_name 和 stuName
解决方法:
-
在编写SQL的时候起别名,让别名和实体类的属性名相同
- 缺点:每次查询都要编写别名(可以使用sql片段解决,但是实际操作性也很低)
-
resultMap
在SQL映射文件下编写映射即可
<?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"> <!-- namespace 名称空间 id SQL语句的唯一标识,不可重复 resultType 对应返回结果的数据类型 --> <!-- id:唯一标识 type:映射的类型,支持别名 --> <resultMap id = "brandResultMap" type = "brand"> <!-- column:表的列名 property:实体类的属性名 --> <result column="brand_name" property="brandName"/> <result column="company_name" property="companyName"/> </resultMap> <mapper namespace="com.javaweb.mapper.BrandMapper"> <select id="selectAll" resultMap="brandResultMap"> <!--此处需要修改resultType为resultMap,并且将值修改为前面的ResultMap的id值--> select * from tb_brand; </select> </mapper>
在resultMap标签内,有result和id两个子标签,其中id用来给主键字段名起别名,result则用于一般字段起别名