框架学习系列 mybatis 第6篇 mybatis入门程序之需求开发3向数据库中插入数据1

本节主要内容

1:根据上节课中提出的需求完成③:向数据库中插入数据

2:测试代码实现

3:总结&下节预告

本文是《凯哥陪你学系列-框架学习之mybatis框架学习》中第6篇 mybatis入门程序之需求开发3向数据库中插入数据1

声明:本文系凯哥原创。转载请注明出处

一:数据库插入数据

1.1:先写sql插入数据库

全参数插入:

框架学习系列 mybatis 第6篇 mybatis入门程序之需求开发3向数据库中插入数据1

说明:数据库中user表中有五个字段。所以需要五个参数。

在看表结构:

框架学习系列 mybatis 第6篇 mybatis入门程序之需求开发3向数据库中插入数据1

我们可以看到,主键id是自增长类型的。所以在插入的时候可以不进行插入。

修改后的sql语句:

框架学习系列 mybatis 第6篇 mybatis入门程序之需求开发3向数据库中插入数据1

1.2:在mybatis中怎么写呢?

思考:

1:直接把sql语句放置到对应的mapper.xml文件中吗?那么参数怎么获取?

2:传递的参数又是什么?

分析:

1:通过前面学习我们知道#{}相当于是?起占位符作用

而${}是连接符的作用(相当于是java中加号(+)连接作用)

通过sql语句,我们看到了参数值是四个?。所以这里使用#{}获取值。

2:parameterType是对应的pojo对象就可以。

在获取的时候,#{属性}中的属性就是pojo对象中属性即可。

这种是通过OGNL表达式获取的。

框架学习系列 mybatis 第6篇 mybatis入门程序之需求开发3向数据库中插入数据1

说明:

1:通过OGNL表达式到user对象中获取对应的属性值

2:#{属性}中的属性名称必须和user对象中的属性名称一致

二:测试代码

2.1:如下图:

框架学习系列 mybatis 第6篇 mybatis入门程序之需求开发3向数据库中插入数据1

说明:

1:插入数据的时候使用的是sqlsession的insert方法

2:第一个参数依然是sql语句唯一标识符

3:参数二是sql语句需要的参数。在这里我们需要的是user这个对象

2.2:使用unit测试

框架学习系列 mybatis 第6篇 mybatis入门程序之需求开发3向数据库中插入数据1

绿色的说明成。

查看打印的sql语句:

框架学习系列 mybatis 第6篇 mybatis入门程序之需求开发3向数据库中插入数据1

说明:

1:Preparing 是执行的sql语句

2:Parameters 是执行sql需要的参数列表。按照?的顺序的。

我们发现,明明传递的是user对象,这这里打印出的参数不是user对象,而是我们给user对应属性设置的值。这就是OGNL表达式做的。

3:Updates 是执行该条sql语句所影响的行数

查询数据库:

框架学习系列 mybatis 第6篇 mybatis入门程序之需求开发3向数据库中插入数据1

发现数据库中并没有数据啊。这是为什么呢?

因为没有提交事务。所以,数据就没有入库。

在代码中添加事务:

框架学习系列 mybatis 第6篇 mybatis入门程序之需求开发3向数据库中插入数据1

重新查询数据库:

框架学习系列 mybatis 第6篇 mybatis入门程序之需求开发3向数据库中插入数据1

上面是手动提交事务的。

在创建获取sqlsession对象的时候,还可以设置为自动提交事务:

框架学习系列 mybatis 第6篇 mybatis入门程序之需求开发3向数据库中插入数据1

就是在openSession的时候传递一个boolean类型的参数。

我们可以查看源码:

框架学习系列 mybatis 第6篇 mybatis入门程序之需求开发3向数据库中插入数据1

发现源码中会自动commit()的。

三:总结&下节预告

通过本文学习我们需要掌握的

1:在保存数据的时候,如果通过一个对象来保存

2:需要注意的是,在提交的时候需要事务。

如果是自动提交,在执行完insert方法后可以不再手动提交了

如果非自动提交事务,那么在执行完insert方法后必须手动提交(commit),数据才会入库的。

下节预告:

在电商项目中,比如下单需要涉及到多张表。如订单表、订单明细表、联系人(收货地址、联系人、手机号等)表三张表。在订单明细表和订单表是关联的。在订单明细表中,需要有订单表的主键id.

也就是说,在订单表数据插入完数据库后,就需要将这条数据的id作为参数插入到订单明细表中。

注意这些操作在同一个事务中,怎么操作才能实现这个功能呢?

欢迎学习下一篇《框架学习系列 mybatis 第7篇 mybatis入门程序之插入数据库后返回主键》