Hello Mybatis(1)

在maven环境下实现Mybatis操作数据库

最近学习Mybatis,众所周知,Mybatis是一款数据库管理框架,为了学习Spring整合Mybatis,所以先学习在maven环境下的Mybais的简单操作,一一步一步的学习整个框架的知识。
首先,做好准备工作:
新建maven项目
加入锁需要的依赖
配置Mybatis的主配置文件和映射表文件
建立数据库表格
使用框架操作数据

一.新建项目

我们新建maven项目,因为借助maven仓库,可以将我们的依赖包处理的非常好!
在这里插入图片描述

二. 统计我们需要的依赖文件,统一配置好

我们可以知道,首先我们需要Mybatis的依赖文件,其次是测试单元所需要的依赖文件,在这时mysql的jdbc依赖文件

<dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.clojure/java.jdbc -->

    <!-- https://mvnrepository.com/artifact/log4j/log4j -->
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.17</version>
    </dependency>

    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.4.6</version>
    </dependency>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.19</version>
    </dependency>
  </dependencies>

这里笔者犯了几个错误,导致都得不到connection连接,后续我会专门出一篇各种错误的总结文章。配置xml文件的时候一定要非常认真!

三.配置Mybatis的主配置文件,以及映射文件

我们新建主配置文件mybatis.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>

    <!-- 配置Mybatis的事务及数据源等等 default="development" 开发状态会显示更多的日志信息-->
    <environments default="development">
        <environment id="development">
            <!-- 使用jdbc自带的事务管理器,进行简单的事务开启和提交 -->
            <transactionManager type="JDBC" />
            <!-- 使用jdbc自带的数据库连接池 -->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver" />
                <property name="url" value="jdbc:mysql://localhost:3306/student?serverTimezone=UTC" />
                <property name="username" value="root" />
                <property name="password" value="123456" />
            </dataSource>
        </environment>
    </environments>
    <!-- 映射文件的路径-->
    <mappers>
        <mapper resource="StudentMapper.xml"/>
    </mappers>
</configuration>

<?xml version="1.0" encoding="UTF-8" ?>是文件头,必须要有,而且,前边不能有空行。

<environments default="development">//是配置的数据库环境,我们使用哪个数据库,就使用哪个的数据库环境的id
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
        //这是它的约束文件
  <dataSource type="POOLED">
            <property name="driver" value="com.mysql.cj.jdbc.Driver" />
            <property name="url" value="jdbc:mysql://localhost:3306/student?serverTimezone=UTC" />
            <property name="username" value="root" />
            <property name="password" value="123456" />
        </dataSource>

driver是jdbc的驱动,url是数据库的位置,下方是用户名和密码

我们新建映射表文件

?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="student" >
<select id="getByid" parameterType="java.lang.String" resultType="com.yuyi.Student">

    select * from studentno where id=#{id}
</select>

    </mapper>

namespace是命名空间,我们这里简单给他命为student,用来区别不同的映射关系。

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

这是约束文件
mapper标签里面可以写sql语句,我们给每一条sql语句起个id属性,用来区别不同的sql语句。
parameterType 是传入值的类型,resultType是返回值的类型。

写完映射表之后,我们要将映射表加入Mybatis的主文件中,进行声明。

四,建立数据库表格

我们新建数据库表格如下图
在这里插入图片描述
同时在idea中新建Student类,进行数据的操作

package com.yuyi;

public class Student {
    private String id;
    private String name;
    private Integer age;

    public Student() {
    }

    public String getId() {
        return id;
    }

    public void setId(String 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 "Student{" +
                "id='" + id + '\'' +
                ", name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

五。使用Mybatis操作数据

    @Test
    public void test(){
        InputStream inputStream=null;
        String resource = "mybatis.xml";
        try {
             inputStream = Resources.getResourceAsStream(resource);
        } catch (IOException e) {
            e.printStackTrace();
        }

        SqlSessionFactory sqlSessionFactory= new SqlSessionFactoryBuilder().build(inputStream);

        SqlSession sqlSession = sqlSessionFactory.openSession();
        /**
         * 根据id查单条
         */
        Student st =sqlSession.selectOne("student.getByid","A001");
        System.out.println(st);
        System.out.println(st==null);
        //sqlSession.close();

    }

我们使用junit进行测试,首先读取配置文件,得到与数据库的连接通道,

 inputStream = Resources.getResourceAsStream(resource);

我们主要使用的是SqlSession,使用 SqlSessionFactory将写入流包装,建立 SqlSession
之后我们只需要根据映射关系调用sql语句

Student st =sqlSession.selectOne("student.getByid","A001");

第一个参数是sql的位置,第二个参数是传入的数值
运行测试类
在这里插入图片描述
和我们的预测结果一模一样!
篇幅的原因,有些东西没有写的太清楚,让我们期待Mybatis第二期,我会详细讲解它的原理和原因

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值