首页前端开发HTMLMyBatis从入门到精通整理

MyBatis从入门到精通整理

时间2024-05-16 22:10:03发布访客分类HTML浏览31
导读: 最近在知乎读书复习刘增辉老师所著的《MyBatis从入门到精通》一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正!知乎读书可以通过火狐浏览器另存页面为"网页,全部"的方式永久保存你借阅的电子书。 作为一个正在...
  最近在知乎读书复习刘增辉老师所著的《MyBatis从入门到精通》一书,很有收获,于是将自己学习的过程以博客形式输出,如有错误,欢迎指正!知乎读书可以通过火狐浏览器另存页面为"网页,全部"的方式永久保存你借阅的电子书。   作为一个正在自学Java的自动化专业本科生,在学习和实践过程中"趟了不少雷","走了不少弯路"。这本书首先是适合刚学完JavaSE知识后入门,不足之处是未能在整合过程中集成spring框架测试。为此我会将更新的IDEA版源码给出。   MyBatis是一款支持自定义SQL查询、存储过程和高级映射的持久层框架。消除了几乎所有JDBC代码和参数的手动设置以及结果集的检索。   MyBatis可以使用XML或注解进行配置和映射。它通过将参数映射到配置的SQL最终形成执行的SQL语句,最后将执行的SQL的结果映射成Java对象返回。   与其他的ORM(对象关系映射)框架不同,MyBatis并没有将Java对象与数据库表关联起来,而是将Java方法与SQL语句关联。   MyBatis 支持声明式数据缓存   Maven是一个项目构建和管理工具。目前市面上很多(2018年以前出版)陈旧的Java参考书还停留在讲如何使用Eclipse开发工具,包括本书。不过自2018年之后IT培训毕业班的双元视频都在介绍如何使用IntelliJ IDEA开发。   因此我们要新建个Maven项目,使用IntelliJ IDEA 2018.3.6 新建Maven项目的过程如下:   + Create New Project   注:JDK1.8 和 Maven3.6.2是需要用户解压安装并配置好系统环境变量,相关教程请参考黑马双元视频课的介绍。   我们新建完的Maven项目结构如下图所示:   默认生成的pom.xml文件其内容如下所示。   (此处省略,工具自动生成-> 无需记忆)   首先,设置源代码编码方式为UTF-8,配置如下。(推荐新手看:尚硅谷Java开发利器:IntelliJ IDEA的安装、配置与使用 -> 编码格式如何在IDEA中配置成UTF-8)   接着,设置编译源代码的JDK版本,为了增大兼容范围使用的是JDK 1.8,配置如下。   还需要在配置文件pom.xml中添加一些依赖才能使接下来的工作顺利进行。   这里要添加最重要的Mybatis3依赖、接着还需要添加会用到的 MySql驱动、JUnit、、Log4j的依赖。   注:数据库依赖的version要和自己电脑安装的实际情况一致-> 高版本的数据库驱动比如8.0.17兼容5.6.45数据库,但是url具体的一些连接规则有变化。(比如需要serverTimezone=Asia/Shanghai)   可以通过 或 来查找依赖坐标。   junit 是一个单元测试框架,那么使用 Junit 能让我们快速的完成单元测试。下载地址:   mysql是一个数据库,Navicat是数据库可视化操作工具,两者需要先自行安装后再进行本实验流程。下载地址:   log4j是一个一款开源的日志框架,在项目中,我们一般会结合slf4j和log4j一起使用。 下载地址:   slf4j是一个简单日记门面(simple logging Facade for java)可以为各种loging APIs提供一个简单统一的接口。 下载地址:   最终的pom.xml文件内容如下:   完成这个步骤后,MyBatis的基本开发环境就已经准备好了。   注:首先需要安装mysql软件,并且记下root管理员的密码。然后再安装Navicat这个有图形界面的MySQL客户端工具,此处命令行代码的录入建议用文本编辑器 Notepad++。   SQL语句学习,推荐看 《MYSQL必知必会》。   通过执行下面的SQL语句创建一个名为 testmybatis的数据库,然后再创建一个名为country的表并插入一些简单的数据。   首先点击【连接】弹出窗体 确定-> 创建了一个名为‘MyBatis从入门到精通’的【连接】-> 右键单击选择【打开连接】-> 右键菜单选择【命令列界面】-> 输入上述SQL语句并回车得到结果如下:   我们检查一下 数据库testmybatis 表country的内容如下图所示:   除XML方式外,在后面介绍MyBatis集成Spring会使用spring bean方式进行配置。   如果是SpringBoot开发构建微服务项目,还可以通过Java编码方式进行配置。   本节使用XML形式进行配置,首先在 src/main/resources 下面创建 mybatis-config.xml配置文件。   也可以叫做 SqlMapConfig.xml(对文件名没有强制要求,但公司内部一般有默认的标准约定)。   中的logImpl属性配置 指定使用LOG4J输出日志。   在MyBatis中需要频繁用到储存查询结果的JavaBeans的全限定名称,为了方便使用,我们配置了 cn.bjut.simple.model包,这样后在使用类的时候不需要写包名的部分,只使用Country即可。   环境配置中主要配置了数据库连接,数据库的url为: jdbc: 使用的本机MySQL中的mybatis数据库。   如果使用本地数据库要改的格式: jdbc:   com.mysql.jdbc.Driver 会报错应该改成: com.mysql.cj.jdbc.Driver   按照上述改完之后报错显示没填写默认时区修正方法:   中配置了一个 包含完整类路径的 CountryMapper.xml ,这是一个MyBatis的SQL语句的映射配置文件。   MyBatis是一个 结果映射框架 ,这里创建的实体类是一个数据值对象(Data Value Object)。在实际应用中,一个表一般会对应一个实体。   在src/main/java 下创建一个基础的包 cn.bjut.simple ,在这个包下面再创建model包。   根据数据库表 country ,在model包下创建实体类Country ,代码如下。   在 src/main/resources 目录下面创建 cn/bjut/simple/mapper 目录,再在该目录下面创建 CountryMapper.xml文件,添加如下内容。   SQL定义在 CountryMapper.xml文件中,里面的配置作用如下。   : XML的根元素,属性namespace定义了当前XML的命名空间,同时也是该映射文件对应接口文件的全限定名称。   元素: 我们所定义的一个 SELECT查询。   id属性: 定义了当前SELECT查询的 唯一 一个id。它就是接口中抽象方法的方法名。   resultType: 定义了当前查询的返回值类型,此处就是指 实体类Country。(前面配置了实体类别名扫描包,否则要写成cn.bjut.simple.model.Country)   创建好实体和Mapper.xml后,接下来要有针对性地配置 Log4j ,让MyBatis在执行数据库操作时将有关信息输出到控制台。   在 src/main/resources 中添加 log4j.properties配置文件,输入如下内容。   在MyBatis的日志实现中,所谓的包名实际上是XML配置中 namespace 属性值的一部分。由于namespace属性值必须和接口全限定类名相同(只有这样框架才能自动创建接口的实现类)。   MyBatis日志的 最低级别是 TRACE ,在这个日志级别下,会输出执行SQL过程中的详细信息,这个级别特别适合 开发时使用。   首先在 src/test/java 中创建 cn.bjut.simple.mapper 包 ,然后创建 CountryMapperTest1测试类 ,代码如下。   调用这个类里定义的私有成员方法时,可以省略this关键字。   通过 Resources 工具类 将mybatis-config,xml配置文件读入 Reader。   再通过 SqlSessionFactoryBuilder 建造类使用Reader创建 SqlSessionFactory工厂对象。这个过程中会读取全部的Mapper.xml进行 具体 方法的解析。   使用时通过 SqlSessionFactory工厂对象获取一个 SqlSession。   通过SqlSession的 selectList 方法查找到 CountryMapper.xml中id='selectAll'的方法,执行SQL查询。   MyBatis底层使用 JDBC执行SQL,获取查询结果集ResultSet后,根据 resultType的配置,将结果映射为Country类型的集合,返回查询结果。   这样就得到了最后的查询结果 countryList ,简单将结果输出到控制台。最后一定不要忘记关闭 SqlSession 。否则导致数据库连接数过多,造成系统崩溃。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: MyBatis从入门到精通整理
本文地址: https://pptw.com/jishu/661558.html
jsPlumb开发入门教程整理 MyBatis快速入门知识分享

游客 回复需填写必要信息