Mybatis学习日记-day1-搭建一个mybatis程序

1.Mybatis简介

        学习Mybatis之前,肯定要先了解Mybatis是什么。

        在了解、学习Mybatis中,官方文档是学习Mybatis的重要工具。地址:mybatis – MyBatis 3 | 简介

        Mybatis是什么?官方回答:mybatis – MyBatis 3 | 简介MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

        所谓持久层又是什么?持久层(Persistence Layer)是软件架构中的一个层次,主要负责数据的持久化存储和检索。在数据库应用中,持久层负责与数据库进行交互,包括数据的增删改查(CRUD)操作。它是连接业务逻辑层(Business Logic Layer, BLL)和数据存储层(如数据库)之间的桥梁。

        在Java开发中,常见的持久层技术有JDBC(Java Database Connectivity)、JPA(Java Persistence API)、Hibernate、MyBatis等。

        在之前学习mysql过程中,大家肯定学过JDBC。JDBC是Java语言连接数据库的一种规范,它提供了一套完整的接口,用于在Java应用程序中访问数据库。但是,直接使用JDBC编写数据访问代码比较繁琐,容易出错,且难以维护

        MyBatis是一个半自动的ORM框架,它允许开发者编写SQL语句,并通过映射文件或注解将SQL语句与Java对象进行映射。MyBatis提供了灵活的SQL编写能力,并且支持动态SQL,使得开发者可以编写出更加高效和灵活的SQL语句。但是,这也意味着开发者需要编写更多的SQL语句和映射配置。

        所以相比之下,为什么学习Mybatis的答案就很明显了。

2.创建一个Mybatis程序

       还是那句话,官方文档是学习Mybatis的重要工具,我接下来的学习也是很大程度上参考官方文档进行的,地址: mybatis – MyBatis 3 | 入门

1.搭建环境

1.新建一个数据库

代码

CREATE DATABASE `mybatis`;
USE `mybatis`;

create table Users(
    id int not null auto_increment primary key,
    name varchar(10) not null,
    age int not null
);

insert into Users(id,name,age) values(null,'张三',20),(null,'李四',18);

结果

2.创建一个项目

1.创建一个maven项目
2.项目结构如下

src目录下:

3.导入maven依赖


    <dependencies>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.2</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.11</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>compile</scope>
        </dependency>

    </dependencies>

4.资源过滤
 <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>
5.pom.xml

2.连接数据库

具体步骤:View → Tool Windows → DataBase → 屏幕右侧点加号 → DataSource → MySQL

进入以下界面:输入自己的用户名,密码,数据库名字

1.编写Mybatis核心配置文件

在MybatisConfig.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">
<configuration>
    <properties resource="db.properties"/>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <!--                JDBC 驱动-->
                <property name="driver" value="${mysql.driver}"/>
                <!--                url数据库的 JDBC URL地址。-->
                <property name="url" value="${mysql.url}"/>
                <property name="username" value="${mysql.username}"/>
                <property name="password" value="${mysql.password}"/>
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <!--引入映射文件-->
        <mapper resource="Mapper/UserMapper.xml"/>
    </mappers>

</configuration>

2.配置db.properties文件

在db.properties文件:

mysql.driver=com.mysql.cj.jdbc.Driver
mysql.username=root
mysql.password=admin123
mysql.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=false

3.编写Mybatis工具类

public class MybatisUtils {
    private static SqlSessionFactory sqlSessionFactory;
    static {
        try {
            String resource = "MybatisConfig.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    //获取SqlSession连接
    public static SqlSession getSession(){
        return sqlSessionFactory.openSession();
    }
}

3.编写实体代码

1.实体类

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

    public User() {
    }

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

    public int getUid() {
        return id;
    }

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

    public String getUname() {
        return name;
    }

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

    public int getUage() {
        return age;
    }
    public void setUage(int uage) {
        this.age = uage;
    }

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

2.Dao接口

public interface UserMapper {
    List<User> selectUser();
}

3.接口实现类

在UserMapper.xml文件:

<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.tyut.dao.UserMapper">
    <select id="selectUser" resultType="com.tyut.pojo.User">
        select * from users
    </select>
</mapper>

4.测试

1.写测试类

在UserTest类:

public class UserTest {
   
    
    @Test
    public void selectUser() {
        SqlSession session = MybatisUtils.getSession();
        UserMapper mapper = session.getMapper(UserMapper.class);
        List<User> users = mapper.selectUser();
        for (User user: users){
            System.out.println(user);
        }
        session.close();
    }
}

2.结果

  • 22
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值