Mybatis(1)—— 快速入门使用持久层框架Mybatis

​🏠​ 个人主页:csdn春和
📚 推荐专栏:更多专栏尽在主页!
Scala专栏(spark必学语言 已完结)
JavaWeb专栏(从入门到实战超详细!!!)
SSM专栏 (更新中…)
​📖​ 本期文章:Mybatis(1)—— 快速入门使用持久层框架Mybatis


如果对您有帮助还请三连支持,定会一 一回访!🙋🏻‍♂️


在这里插入图片描述

一、Mybatis简介

1.1、原始jdbc操作

使用·原是jdbc的方式查询数据

public class SelectData {
   
    public static void main(String[] args) {
   

        try {
   
            // 1、注册驱动
            Class.forName("com.mysql.jdbc.Driver");
            // 2、获得连接
            Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/study", "root", "123456");
            // 3、获得satement
            Statement statement = connection.createStatement();
            // 4、定义sql
            String sql = "select * from user";
            // 5、之心sql
            ResultSet resultSet = statement.executeQuery(sql);
            // 6、遍历结果集
            while (resultSet.next()){
   
                int id = resultSet.getInt(1);
                String name = resultSet.getString(2);
                String passwd = resultSet.getString(3);
                System.out.println(id + "---" + name +"---" + passwd);
            }
            // 7、释放资源
            resultSet.close();
            statement.close();
            connection.close();


        } catch (ClassNotFoundException e) {
   
            e.printStackTrace();
        } catch (SQLException throwables) {
   
            throwables.printStackTrace();
        }

    }
}

1.2、原始jdbc操作的缺点

原始jdbc开发存在的问题如下:

①数据库连接创建、释放频繁造成系统资源浪费从而影响系统性能

②sql 语句在代码中硬编码,造成代码不易维护,实际应用 sql 变化的可能较大,sql 变动需要改变java代码。

③查询操作时,需要手动将结果集中的数据手动封装到实体中。插入操作时,需要手动将实体的数据设置到sql语句的占位符位置

应对上述问题给出的解决方案:

使用数据库连接池初始化连接资源

将sql语句抽取到xml配置文件中

使用反射、内省等底层技术,自动将实体与表进行属性与字段的自动映射

1.3、Mybatis是什么?

    mybatis 是一个优秀的基于java的持久层框架,它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。

mybatis通过xml或注解的方式将要执行的各种 statement配置起来,并通过java对象和statement中sql的动态参数进行映射生成最终执行的sql语句。

最后mybatis框架执行sql并将结果映射为java对象并返回。采用ORM思想解决了实体和数据库映射的问题,对jdbc 进行了封装,屏蔽了jdbc api 底层访问细节,使我们不用与jdbc api 打交道,就可以完成对数据库的持久化操作。

Mybatis官网地址:http://www.mybatis.org/mybatis-3/

在这里插入图片描述

二、Mybatis的快速入门

开发步骤:

①添加MyBatis的坐标

②创建user数据表

③编写User实体类

④编写映射文件UserMapper.xml

⑤编写核心文件SqlMapConfig.xml

⑥编写测试类

1、环境准备

创建一个新的module。导入相应的依赖坐标

<dependencies>
    <!--  mysql连接驱动      -->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.37</version>
    </dependency>
    <!-- mybatis坐标 -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.4.6</version>
    </dependency>
    <!-- junit单元测试-->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
    </dependency>
    <!-- log4j日志打印 -->
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
    </dependency>
</dependencies>

2、创建一张表

在这里插入图片描述

3、创建实体类

public class User {
   
    private int id; // 用户id
    private String username; // 用户名
    private String password; // 密码

    public int getId() {
   
        return id;
    }

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

    public String getUsername() {
   
        return username;
    }

    public void setUsername(String username) {
   
        this.username = username;
    }

    public String getPassword() {
   
        return password;
    }

    public void setPassword(String password) {
   
        this.password = password;
    }

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

4、编写UserMapper映射文件

<?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="userMapper">
    <select id="findAll" resultType="com.zhou.mybatis.domain.User">
        select * from user 
    </select>
    
</mapper>

5、编写mybatis核心配置文件

<?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 default="development">
        <environment id="development">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/study"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
 <!--  加载映射文件  -->
    <mappers>
        <mapper resource="com/zhou/mybatis/mapper/UserMapper.xml"></mapper>
    </mappers>
</configuration>

6、编写测试代码

public class MybatisTest {
   

    @Test
    public void test1() throws IOException {
   
        // 1、加载核心配置文件
        InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");
        // 2、获得session工厂对象
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
        // 3、获得session会话对象
        SqlSession sqlSession = sqlSessionFactory.openSession();
        // 4、执行操作 参数就是 namespace + id
        List<User> userList = sqlSession.selectList("userMapper.findAll");
        // 5、打印数据
        System.out.println(userList);
        // 6、释放资源
        sqlSession.close();

    }
}

7、测试

在这里插入图片描述

三、mybatis映射文件概述

在这里插入图片描述

3.1、mybatis插入数据操作

1、编写UserMapper映射文件

<mapper namespace="userMapper">
    <!--  查询操作  -->
    <
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值