0


Java真的不难(四十一)Mybatis的入门

Mybatis的入门

哈喽大家好,好久不见!!!!

在上一篇文章中的JBDC是Java连接数据库的操作,但是JBDC在实际开发中存在繁琐、代码的复用性不高,然而Mybatis将解决了JBDC的繁琐问题,以后只需要写SQL即可,相当于半自动模式。

而Mybatis的代码是在GitHub上托管的
Mybatis官网:

https://mybatis.org/mybatis-3/zh/index.html

首先我们得了解什么是ORM?

Object Relation Mapping: 对象关系映射。对象指的是Java对象,关系指的是数据库中的关系模型,对象关系映射,指的就是在Java对象和数据库的关系模型之间建立一种对应关系,比如用一个Java的Student类,去对应数据库中的一张student表,类中的属性和表中的列一一对应。

简单的说:一张表对于一个类,字段=类属性

一、创建项目,引入Mybatis

这里我们可以使用Maven来引用Mybatis:

首先创建一个Maven项目:
在这里插入图片描述
在创建好Maven项目后,会得到一个pom.xml配置文件

这里把pom.xml的配置信息放在这里,可以直接复制到

 <dependencies> </dependencies>

内即可,然后刷新即可加载成功

或者大家可以自行查看需要依赖的配置信息:

https://mvnrepository.com/
<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope></dependency><!--        Mybatis驱动包--><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.10</version></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency><!--MySQL8驱动包--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.16</version></dependency>

如何查看是否添加成功?

在这里插入图片描述
在mybatis-config.xml配置文件内容如下(有些需要根据自己的情况去更改):

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPEconfigurationPUBLIC"-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><!-- 通过这个配置文件完成mybatis与数据库的连接 --><configuration><!-- 引入 database.properties 文件--><propertiesresource="database.properties"/><!-- 配置mybatis的log实现为LOG4J --><settings><settingname="logImpl"value="LOG4J"/></settings><environmentsdefault="development"><environmentid="development"><!--配置事务管理,采用JDBC的事务管理  --><transactionManagertype="JDBC"></transactionManager><!-- POOLED:mybatis自带的数据源,JNDI:基于tomcat的数据源 --><dataSourcetype="POOLED"><propertyname="driver"value="${driver}"/><propertyname="url"value="${jdbc.url}"/><propertyname="username"value="${user}"/><propertyname="password"value="${password}"/></dataSource></environment></environments><!-- 将mapper文件加入到配置文件中 --><mappers><!-- 这里的文件根据自己的路径以及文件名来配置即可--><mapperresource="mapper/DeptMapper.xml"/></mappers></configuration>

接着还是和JBDC一样创建一个

database.properties

文件,在里面写入数据库的信息:

driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/数据库名?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&rewriteBatchedStatements=true 
user=?//填写自己的数据库用户名,一般为root
password=?//数据库密码

二、创建pojo类

首先在dao层可以定义一个接口:

publicinterfaceDeptMapper{/**
     * 查询所有部门
     */publicListselectDeptList();}

创建一个实体类,实现ORM

publicclassDept{privateInteger deptNo;//部门编号privateString deptName;//部门名称privateString password;//密码privateString address;//地址@OverridepublicStringtoString(){return"Dept{"+"deptNo="+ deptNo +", deptName='"+ deptName +'\''+", password='"+ password +'\''+", address='"+ address +'\''+'}';}}

这个类和数据库的部门表是相互对应的:
在这里插入图片描述

三、编写mapper映射文件(写SQL)

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPEmapperPUBLIC"-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mappernamespace="db.dao.DeptMapper"><selectid="selectDeptList"resultType="db.pojo.Dept">
        SELECT * FROM dept
    </select></mapper>

我们可以把Mybais的常用语句封装在一个工具类里面,这样就可以给全局使用:

publicclassMybatisUtils{privatestaticSqlSessionFactory factory;static{InputStream is;try{//通过IO流获取到mybatis-config.xml中的配置信息
            is=Resources.getResourceAsStream("mybatis-config.xml");
            factory=newSqlSessionFactoryBuilder().build(is);}catch(IOException e){
            e.printStackTrace();}}/**
     * 获取到sqlSession
     * @return
     */publicstaticSqlSessioncreateSqlSession(){return  factory.openSession();}/**
     * 关闭sqlSession
     * @param sqlSession
     */publicstaticvoidcloseSqlsession(SqlSession sqlSession){if(sqlSession!=null){
            sqlSession.close();}}}

最后是测试类:

@Testpublicvoidtest02(){//获取到sqlSessionFactory,再获取到sqlsessionSqlSession sqlSession=null;try{
            sqlSession =MybatisUtils.createSqlSession();DeptMapper deptMapper = sqlSession.getMapper(DeptMapper.class);List<Dept> deptList = deptMapper.selectDeptList();for(Dept dept : deptList){System.out.println(dept.toString());}}catch(Exception e){
            sqlSession.rollback();
            e.printStackTrace();}finally{MybatisUtils.closeSqlsession(sqlSession);}}

运行结果:
在这里插入图片描述
我们可以看到数据库里面的数据被取到然后打印了出来,这就是通过Mybatis实现的

虽然在第一次创建、配置、使用Mybatis的时候可能比较麻烦,步骤多,但是当你在一个项目内配置好了后,在后面使用过程中只要写SQL即可,其他连接的问题Mybatis都已经帮你做了。

好啦,大家快去试试吧,

在这里插入图片描述


本文转载自: https://blog.csdn.net/m0_57310550/article/details/125052489
版权归原作者 热爱飞行的小应学长 所有, 如有侵权,请联系我们删除。

“Java真的不难(四十一)Mybatis的入门”的评论:

还没有评论