第三步:编写SQL语句
一、通过注解编写SQL语句
1.1查
注:ibatis就是mybatis
①单纯打印数据列表 (如上图就是)
示例:
@Select("select * from userinfo")
//通过注解的方式进行方法的实现
List<UserInfo> queryUserList(); //方法的声明
② 传递一个参数查询数据列表
示例:
select * From userinfo where id = #{userId}
@Select(“select * From userinfo where id = #{userId}”)
③ 传递两个参数查询数据列表
示例:
@Select(“select * from userinfo where id = #{param1} and delete_flag = #{param2}”)
我们发现如果按照下面这样写的话。就会报错。因为我使用的是aliyun引入的Mybatis框架。
因此当传递两个参数时,只能使用param1和param2。或者arg1和arg0。作为形参。
④参数重命名@param注解
在方法传参列表的参数前使用@Param注解,我们可以通过参数命名来定义我们想要使用的参数名称。
1.2增
示例:
intert into userinfo(username,password,age,gender,phone) values(#{username},#{password},#{age},#{gender},#{phone})
@insert("intert into userinfo(username,password,age,gender,phone) values(#{username},#{password},#{age},#{gender},#{phone})")
使用对象来传参
@Insert("insert into userinfo(username,password,age,gender,phone)" +
" values(#{username},#{password},#{age},#{gender},#{phone})")
Integer insert (UserInfo userInfo);
1.3删
示例:
@delete("delete from userinfo where id = #{id}")
Mapper
Test
1.4 改
1.通过传参的方式
示例:
@Update("update userinfo set password = #{password} where id = #{id} ")
@Test
void update() {
userInfoMapper.update("nihao",6);
}
2.通过传递对象的方式
二、通过XML方式编写SQL语句
xml的方式和注解方式的操作基本上是一样的。
2.1增
1.首先声明insert方法,我们使用传递对象的方式来新增数据。
2.在xml文件中,写SQL语句。我们使用传递对象的方式来新增数据。
因此上方我们不仅要设置id 值为对应方法名 以及 返回类型resultType的值为UserInfo(要写全)
3.测试
通过xml方式拿到自增id
2.2删
和增一样的三个步骤
1.声明方法
2.在xml文件中写sql语句
3.Test测试
2.3改
1.声明方法
2.在xml中写sql语句
3.Test测试
2.4查
1.声明方法
2.写SQL语句
3.Test测试
对通过xml+SQL语句查的补充:驼峰转换
1.改别名,和注解是类似的.
2.在xml文件中用resultMap标签进行映射
没写的自动映射,写了的按照我们定义的进行映射,id其实也可以不用写
通过resultMap进行时候用
3.配置文件自动转换
同上
三、多表查询
再创建一个表
3.1多表查询步骤:
3.2 第一步:首先进行多表关联(sql语句如下)
3.2.1 SQL语句6(全部查询)
我们在数据库mybatis_test的查询控制台执行那么语句
执行后的结果为:
也可以指定查询(SQL语句如下)
3.2.2 SQL语句7(指定查询)
我们看到查询到了我们想要的数据。这就是进行多表同时查询。如何用Mybatis来实现这个功能呢。
3.3示例
1.多个表
如上已经添加
2..实体类
package com.qiyangyang.mybatisdemo.model;
import lombok.Data;
import java.util.Date;
@Data
public class ArticleInfo {
private Integer id;
private String title;
private String content;
private Integer uid;
private Integer deleteFlag;
private Date createTime;
private Date updateTime;
}
3. Mapper包
4. Test包
运行结果(成功查询多表)
四、通过URL来访问数据库
4.1UserController
4.2UserService
我们用Service来调用Dao(也就是数据访问层)。
4.3UserMapper
ok我们成功的在浏览器访问出来了。
总结:
注:
1.访问数据库的方法不能像java那样方法名称相同,参数不同而构成方法的重构。这是会报错的。这不符合Mybatis规范。方法名不可以重复(在xml文件中我们看到每一个方法都是会有一个id标识的因此不能重复)
2.若是通过aliyun引入的springframework依赖,那么不会帮我们生成可用的我们定义的参数。可以用param1和param2。 官方的依赖就可以,我们也可以手动修改依赖。也就能实现,自已定义参数名称了。将aliyun依赖换成官方的依赖。