IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Java真的不难(四十一)Mybatis的入门 -> 正文阅读

[Java知识库]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" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<!-- 通过这个配置文件完成mybatis与数据库的连接 -->
<configuration>
	<!-- 引入 database.properties 文件-->
	<properties resource="database.properties"/>
	<!-- 配置mybatis的log实现为LOG4J -->
	<settings>
		<setting name="logImpl" value="LOG4J" />
	</settings>
	
	<environments default="development">
		<environment id="development">
			<!--配置事务管理,采用JDBC的事务管理  -->
			<transactionManager type="JDBC"></transactionManager>
			<!-- POOLED:mybatis自带的数据源,JNDI:基于tomcat的数据源 -->
			<dataSource type="POOLED">
				<property name="driver" value="${driver}"/>
				<property name="url" value="${jdbc.url}"/>
				<property name="username" value="${user}"/>
				<property name="password" value="${password}"/>
			</dataSource>
		</environment>
	</environments>
	
	<!-- 将mapper文件加入到配置文件中 -->
	<mappers>
	<!-- 这里的文件根据自己的路径以及文件名来配置即可-->
		<mapper resource="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层可以定义一个接口:

public interface DeptMapper {
    /**
     * 查询所有部门
     */
    public List selectDeptList();
}

创建一个实体类,实现ORM


public class Dept {

    private Integer deptNo; //部门编号
    private String deptName; //部门名称
    private String password;  //密码
    private String address;  //地址


    @Override
    public String toString() {
        return "Dept{" +
                "deptNo=" + deptNo +
                ", deptName='" + deptName + '\'' +
                ", password='" + password + '\'' +
                ", address='" + address + '\'' +
                '}';
    }
    
}

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

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

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="db.dao.DeptMapper">
    
    <select id="selectDeptList" resultType="db.pojo.Dept">
        SELECT * FROM dept
    </select>
    
</mapper>

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

public class MybatisUtils {

    private  static SqlSessionFactory factory;
    static {
        InputStream is;
        try {
            //通过IO流获取到mybatis-config.xml中的配置信息
            is= Resources.getResourceAsStream("mybatis-config.xml");
            factory= new SqlSessionFactoryBuilder().build(is);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /**
     * 获取到sqlSession
     * @return
     */
    public  static SqlSession createSqlSession(){
        return  factory.openSession();
    }

    /**
     * 关闭sqlSession
     * @param sqlSession
     */
    public static void  closeSqlsession(SqlSession sqlSession){
        if(sqlSession!=null){
            sqlSession.close();
        }
    }
}

最后是测试类:

    @Test
    public void test02(){
        //获取到sqlSessionFactory,再获取到sqlsession
        SqlSession 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都已经帮你做了。

好啦,大家快去试试吧,

在这里插入图片描述

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-06-03 23:53:36  更:2022-06-03 23:54:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 20:30:49-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码