javaweb的基础2

六、Mybatis基础操作

1、Mybatis基础操作-环境准备

页面需求和操作步骤:

  • 准备数据库表 emp
  • 创建一个新的springboot工程,选择引入对应的起步依赖(mybatis、mysql驱动、lombok)
  • application.properties中引入数据库连接信息 创建对应的实体类 Emp(实体类属性采用驼峰命名)
  • 准备Mapper接口 EmpMapper

(1)准备表和数据

(2)springboot项目创建

2、Mybatis-基础操作-删除

(1)直接删除id

(2)动态删除

delete方法中设置形参id

在运行测试类时传入参数id的具体数值

查看emp表中id=17的数据是否删除

注:老师给的代码中的数据库连接配置密码与自己的可能不一致,需修改。

 

(3)在控制台输出执行的sql语句

(4)预编译

(5)不使用预编译登录

  • 打开sql的jar包服务器
  • 打开http://localhost:9090/login.html网址
  • 输入用户名和密码(全正确,其中一个错误,全部错误),查看登录情况和命令提示符界面的sql语句

当用户名和密码都错误却可以登录成功,原因是直接将参数拼接在sql语句中,预编译可以解决这个问题。

(6)使用预编译登录

使用预编译时,使用?拼接sql语句。若用户名和密码错误时,则登录不成功。

(5)小结

3、Mybatis-基础操作-新增

  • EmpMapper中编写sql语句
  • Emp有表的字段名
  • 测试类中传入字段的具体值和调用EmpMapper的insert方法

(1)图示新增表数据

4、Mybatis-基础操作-新增(主键返回)

有时候需要获取添加数据的主键值

  • EmpMapper中添加注解@Options
  • 在测试类中修改要添加的数据并加入一行输入id的代码

(1)图示步骤

5、Mybatis-基础操作-更改

更改的sql语句

在测试类中调用更改的方法

6、Mybatis-基础操作-查询(where的某一个字段)

public Emp getById(Integer id);

Emp emp=empMapper.getById(20);

(1)id查询

查询id为xx的数据并将返回数据Emp类的对象。

输出:执行测试方法时将getById的方法返回结果emp对象输出

运行结果:deptId值为null

(2)属性名的自动封装

id=20时,查询结果中某些字段的值为null。原因如图:

(3)解决不自动封装的问题

只需要开启映射开关,其他不变。

(4)小结:3种自动封装的方法

7、Mybatis-基础操作-条件查询(where下的多个字段)

(1)需求案例

(2)使用mybatis进行条件查询

方法1:name直接拼接

方法2:name预编译

(3)条件查询小结

8、Mybatis-基础操作-XML映射文件

通过xml来编写SQL查询语句,而不是用注释的方法来编写SQL查询语句

public List <Emp>  list(String name,Short gender,LocalData begin,LocalData end);

List<Emp> empList=empMapper.list("张",1,xx,xx);

(1)映射条件的步骤

(2)映射的步骤

  • 查询方法在EmpMapper中
  • 查询语句在EmpMapper.xml
  • 测试方法在测试类

(3)映射与注释对比

9、Mybatis-动态SQL-if(where下的所有字段皆可以为null)

动态查询时,没有查询的字段就不显示。如:张

非动态查询时,没有查询的字段为null。如:张,null,null,null

(3)小结

10、

(1)非动态更新emp表

EmpMapper

test

结果没有更新的字段为null,如:张,null

(2)动态更新emp表

EmpMapper类

xml

test

结果没有更新的字段保持不变。如:张,不变

 

七、web开发综合案例

1、环境搭建

(1)需求

部门管理:增删改查

员工管理:增删改查

(2)环境搭建步骤

2、环境搭建实操

(1)创建springboot工程,准备数据库表dept等

(2)application.properties和pom.xml配置

pom.xml:web起步依赖、mybatis起步依赖、mysql起步依赖、lombok起步依赖、springboot起步依赖、springboot单元测试。

application.properties:数据库连接的四要素、mybatis的输出日志的位置、驼峰命名自动映射的开关

(3)工程的代码目录:controller、mapper、pojo、service目录

(4)导入result类到pojo包下

(5)开发流程

页面原型的需求-接口文档-思路分析-接口开发-接口测试-前后端联调

3、案例-部门管理-查询

(1)DeptController:调用service的list

(2)DeptServiceImpl:调用mapper的list

(3)DeptMapper

(4)启动服务器

(5)postman的测试

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值