MyBatis学习(三)——MyBatis程序中的CRUD增删查改

先将原代码中的所有的UserDao修改为UserMapper
在这里插入图片描述
在这里插入图片描述

session关闭

SqlSession是通过SqlSessionFactory来构造的,相当于维护一个连接池,当我们不停的进行查询的时候,由于没有关闭连接,导致与数据库的连接数量达到了一个上限(可能连接池有最大连接数,但是我们有找到文档)。到达上限之后,再次请求查询时,Factory说没有连接了,让你先等一下,它先去判断哪些SqlSession已经没有人使用了(类似于垃圾回收机制),然后调用相应的进程去自动关闭没用的session连接,注意调用进程可是要排队的,也要耗时间。等关闭了没有用的session之后,Factory通知你,有空闲的session了,开始准备你的查询吧,所有才会有等待很长一段时间才出现。也有可能导致内存泄漏

1.1、namespace

namespace中的包名要和接口的包名一致

1.2、select

选择查询语句
在这里插入图片描述

  • id :对应的namespace中的方法名
  • resultType:Sql语句执行的返回值
  • parameterType:参数类型

在这里插入图片描述
#{} ==实现的是sql语句的预处理参数、之后执行sql中用?号代替、使用时不需要关注数据类型、mybatis自动实现数据类型的转换、并且可以防止sql注入 ==

1.3、insert

在这里插入图片描述
MyBatis底层是对JDBC的封装,所以在插入、修改、删除时返回的都是int类型,表示受影响的行数。
在insert、update、delete标签中没有resultType属性,认为返回值都是int

在原来的JDBC中会自动提交事务,但是在MyBatis中默认关闭了JDBC的自动提交功能,最后要使用session.commit()提交事务,否则数据不会发生改变

在这里插入图片描述

1.4、Update

原来
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

1.5、Delete

原来
在这里插入图片描述
在这里插入图片描述

之后

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/char_m/article/details/111301043