一文教会你用mybatis查询数据库数据

 更新时间:2022年04月14日 16:23:29   作者:lichaohua!  
MyBatis本身是一个数据库连接框架,可以认为是JDBC的升级版,下面这篇文章主要给大家介绍了关于mybatis查询数据库数据的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下

一、新建数据库和表

建一个数据库mybatis,建一个表person,然后填充一些数据(这里我是使用了图形化工具Navicat for MySQL,就不写原生的数据库代码了)

二、新建maven项目,添加mybatis依赖

新建一个maven项目,我以往文章有提到如何建一个maven项目,这里不多赘述:

Maven入门—如何在idea中配置Maven

添加依赖,在pom.xml文件上添加以下代码

<dependencies>
        <!--    数据库驱动 版本不能乱用5.1.47  -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.47</version>
        </dependency>
        <!-- mybatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.6</version>
        </dependency>
		<!-- 单元测试-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13</version>
            <scope>test</scope>
        </dependency>

        <!-- lombok-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.10</version>
        </dependency>
</dependencies>

三、新建实体类、接口(Mapper)

Person实体类

package entity;

public class Person {
    private int id;
    private String name;
    private int age;

    public Person() {
    }

    public Person(int id, String name, int age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Person{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

PersonMapper接口

import entity.Person;
import java.util.List;

public interface PersonMapper {
    //查询所有数据
    public List<Person> getPerson();
}

四、新建实现类(使用.xml映射文件)

在resources目录下新建一个PersonMapper.xml文件

<?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">

<!-- 映射     namespace : 和哪个接口有映射关系-->
<mapper namespace="mapper.PersonMapper">
    <!--
        select标签中的语句  需要和接口中哪个方法有映射关系
        id         : 接口中的方法名
        resultType:  方法的返回类型(写全类名)
     -->
    <select id="getPerson" resultType="entity.Person">
        select * from person
    </select>
</mapper>

五、新建全局配置文件(mybatis-config.xml)

在resources目录下新建一个mybatis-config.xml文件

数据库密码(password)写你自己的

<?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">

<!--
    接下里的配置也就是一个数据源配置
-->
<configuration>
    <!-- environments  多环境配置
         environment   配置数据源
         transactionManager     事务管理器
         dataSource     数据源
     -->
    <environments default="p1">

        <environment id="p1">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>

    <!-- 注册映射  -->
    <mappers>
        <mapper resource="PersonMapper.xml"/>
    </mappers>
</configuration>

六、编写demo类,进行测试查询数据库

1、读取配置文件

2、根据配置文件构建工厂

3、获取会话

4、获取Mapper对象

5、执行方法

6、关闭会话

public class demo {
	@Test
    public void test2() throws IOException {
        //读取配置文件
        InputStream resourceAsStream = Resources.getResourceAsStream("mybatis-config.xml");
        //根据配置文件构建工厂
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
        //获取会话
        SqlSession sqlSession = sessionFactory.openSession();
        //获取Mapper对象
        PersonMapper personMapper = sqlSession.getMapper(PersonMapper.class);
        //执行方法
        List<Person> person = personMapper.getPerson();
        System.out.println(person);
        //关闭会话
        sqlSession.close();
    }
 }

输出结果

总结

到此这篇关于mybatis查询数据库数据的文章就介绍到这了,更多相关mybatis查询数据库数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 浅谈java中String的两种赋值方式的区别

    浅谈java中String的两种赋值方式的区别

    这篇文章主要介绍了浅谈java中String的两种赋值方式的区别。简单介绍了两种赋值方式,然后进行了实例分析,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • Java基础之不简单的数组

    Java基础之不简单的数组

    数组(Array)是有序的元素序列。 若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量
    2021-09-09
  • java面向对象之人机猜拳小游戏

    java面向对象之人机猜拳小游戏

    这篇文章主要为大家详细介绍了java面向对象之人机猜拳小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-12-12
  • Java中instanceof关键字的用法总结

    Java中instanceof关键字的用法总结

    instanceof是Java的一个二元操作符,和==,>,<是同一类东东。由于它是由字母组成的,所以也是Java的保留关键字。它的作用是测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据
    2013-10-10
  • Spring中的@ConditionalOnProperty注解详解

    Spring中的@ConditionalOnProperty注解详解

    这篇文章主要介绍了Spring中的@ConditionalOnProperty注解详解,常见的@Conditionalxxx开头的注解我们称之为条件注解,常见的条件注解有,简单来讲,一般是在配置类上或者是@Bean修饰的方法上,添加此注解表示一个类是否要被Spring上下文加载,需要的朋友可以参考下
    2024-01-01
  • 详解IDEA用maven创建springMVC项目和配置

    详解IDEA用maven创建springMVC项目和配置

    本篇文章主要介绍了详解IDEA用maven创建springMVC项目和配置 ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09
  • Java 阻塞队列和线程池原理分析

    Java 阻塞队列和线程池原理分析

    这篇文章主要介绍了Java 阻塞队列和线程池原理分析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • Java中Map遍历的九种方式汇总

    Java中Map遍历的九种方式汇总

    这篇文章主要介绍了Java中九种 Map 的遍历方式汇总的相关资料,需要的朋友可以参考下
    2022-11-11
  •  java中Thread.sleep()的具体使用

     java中Thread.sleep()的具体使用

    本文主要介绍了 java中Thread.sleep()的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • Java实现图片验证码具体代码

    Java实现图片验证码具体代码

    这篇文章主要为大家详细介绍了Java实现图片验证码具体代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10

最新评论