MyBatis简单入门(一)

MyBatis简单入门(一)

前言

一、前置说明

二、使用步骤

1.在pom.xml中引入依赖

2.使用MyBatis

数据库结构

配置数据库连接

创建实体化类

创建dao接口

3. 测试查询

总结



前言

最近开始学习java的ssm框架,在这记录我的学习历程。

这篇文章以IDEA作为开发工具,写出一个使用注解方式简单快速入门使用MyBatis的案例。

这里使用了Maven进行管理,但Maven的原下载网站网速较慢,所以这里可以对Maven进行换源处理。


使用步骤

1.在pom.xml中引入依赖

代码如下(示例):

    <dependencies>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.5</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.21</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

依赖说明:

mybatis:这次需要学习的持久层框架

mysql-connector-java:本次所使用的数据库连接库

junit:一个单元测试框架。 

2.使用MyBatis

数据库结构

create table library (bookId int primary key AUTO_INCREMENT,bookName varchar(20),author varchar(10),press varchar(30),price double);

配置数据库连接

在resource目录下创建一个名为db.properties的文件用来存储数据库连接信息,这里是笔者连接数据库名为test的数据库的配置。(这里由于数据库版本的不同,数据库连接url可能会不同,这里是mysql8以上的连接)

db.mysql=com.mysql.cj.jdbc.Driver
db.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true
db.username=root
db.password=root

创建SqlMapConfig.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>

    <properties resource="db.properties"/>
    <!--环境配置-->
    <environments default="mysql">
        <!--配置mysql的环境-->
        <environment id="mysql">
            <!--配置事务类型-->
            <transactionManager type="JDBC"></transactionManager>
            <!--配置数据源(连接池)-->
            <dataSource type="POOLED">
                <!--配置连接数据库的4个基本信息-->
                <property name="driver" value="${db.mysql}"/>
                <property name="url" value="${db.url}"/>
                <property name="username" value="${db.username}"/>
                <property name="password" value="${db.password}"/>

            </dataSource>
        </environment>
    </environments>
    <!-- 使用注解配置,此处应该使用class属性指定被字节的dao全限定类名-->
    <mappers>
        <mapper class="com.tao.dao.IBookDao"/>
    </mappers>
</configuration>

创建实体化类

根据自己的数据库创建实体化类,成员名需要与数据库中的字段对应(方便后续编程),实现get、set与toString方法

package com.tao.damain;

public class Book {
    int bookId;
    String bookName;
    String author;
    String press;
    float price;

    public int getBookId() {
        return bookId;
    }

    public void setBookId(int bookId) {
        this.bookId = bookId;
    }

    public String getBookName() {
        return bookName;
    }

    public void setBookName(String bookName) {
        this.bookName = bookName;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    public String getPress() {
        return press;
    }

    public void setPress(String press) {
        this.press = press;
    }

    public float getPrice() {
        return price;
    }

    public void setPrice(float price) {
        this.price = price;
    }

    @Override
    public String toString() {
        return "Book{" +
                "bookId=" + bookId +
                ", bookName='" + bookName + '\'' +
                ", author='" + author + '\'' +
                ", press='" + press + '\'' +
                ", price=" + price +
                '}';
    }
}

创建dao接口

简单查询代码如下:

package com.tao.dao;

import com.tao.damain.Book;
import org.apache.ibatis.annotations.Select;

import java.util.List;

public interface IBookDao {
    @Select("SELECT * FROM test.library")
    List<Book> findAll();
}

这里使用了注解配置,注解有4个,@Select 就是其中一个。

3. 测试查询

在test下面创建类:

package com.tao.test;

import com.tao.damain.Book;
import com.tao.dao.IBookDao;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

import java.io.IOException;
import java.io.InputStream;
import java.util.List;

public class MyBatisTest {
    @Test
    public void test() throws IOException {
        //读取配置文档
        InputStream in= Resources.getResourceAsStream("SqlMapConfig.xml");
        //创建SqlSessionFactory
        SqlSessionFactoryBuilder builder=new SqlSessionFactoryBuilder();
        SqlSessionFactory factory=builder.build(in);
        //使用SqlSessionFactory生成SqlSession对象
        SqlSession session=factory.openSession();
        //使用SqlSession创建Dao接口代理对象
        IBookDao bookDao=session.getMapper(IBookDao.class);
        //使用代理对象执行方法
        List<Book> books=bookDao.findAll();
        for (Book book:books){
            System.out.println(book);
        }
        //释放资源
        session.clearCache();
        in.close();
    }
}

运行程序可以发现已经查询成功:

 


总结

这篇文章记录了MyBatis的简单使用,后续笔者会继续跟进MyBatis的学习记录。

这是笔者第一次使用CSDN进行创作,如有不妥请告知。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值