Mybatis入门:1(Mybatis框架的环境搭建)

Mybatis框架的环境搭建

一.创建maven工程并导入坐标

导入坐标:

    <dependencies>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.4</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.20</version>
        </dependency>
    </dependencies>

完整的如下图:
在这里插入图片描述

二.创建实体类和dao接口

如下图:
在这里插入图片描述

User类(实体类)

package com.domain;

import java.io.Serializable;
import java.util.Date;

public class User implements Serializable {
    private String product_name;
    private String product_type;
    private int product_price;
    private Date regist_date;

    public String getProduct_name() {
        return product_name;
    }

    public void setProduct_name(String product_name) {
        this.product_name = product_name;
    }

    public String getProduct_type() {
        return product_type;
    }

    public void setProduct_type(String product_type) {
        this.product_type = product_type;
    }

    public int getProduct_price() {
        return product_price;
    }

    public void setProduct_price(int product_price) {
        this.product_price = product_price;
    }

    public Date getRegist_date() {
        return regist_date;
    }

    public void setRegist_date(Date regist_date) {
        this.regist_date = regist_date;
    }

    @Override
    public String toString() {
        return "User{" +
                "product_name='" + product_name + '\'' +
                ", product_type='" + product_type + '\'' +
                ", product_price=" + product_price +
                ", regist_date=" + regist_date +
                '}';
    }
}

dao接口

package com.dao;

import com.domain.User;

import java.util.List;

public interface UserDao {
    /**
     * 简单查询操作
     * @return
     */
    List<User>findAll();
}

三.创建Mybatis的主配置文件SqlMapConifg. 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>
    <!--配置环境-->
    <environments default="mysql">
        <!--配置mysql的环境-->
        <environment id="mysql">
            <!--配置事务类型-->
            <transactionManager type="JDBC"></transactionManager>
            <!--配置数据源(连接池)-->
            <dataSource type="POOLED">
                <!--配置连接数据库的4个基本信息(有了他们就能创建Connection对象)-->
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/study"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
    <!--指定映射配置文件的位置,映射配置文件指的是每个dao独立的配置文件-->
    <mappers>
        <mapper resource="com/dao/UserDao.xml"/> <!--有了它,就有了映射配置信息-->
    </mappers>
</configuration>

四.创建映射配置文件UserDao. 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">
<mapper namespace="com.dao.UserDao">
    <!--配置查询所有-->
    <select id="findAll" resultType="com.domain.User">    <!--在映射配置中告知mybatis要封装到哪个实体类中-->
        					<!--封装的实体类的全限定类名-->
        select * from product where regist_date>'2020-5-20'  <!--有了它,就有了执行的SQL语句,就可以获取PreparedStatement-->
    </select>
</mapper>

五.创建测试类

package com.test;

import com.dao.UserDao;
import com.domain.User;
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 java.io.InputStream;
import java.util.List;

/**
 1. mybatis的入门案例
 */
public class MybatisTest {
    public static void main(String[]args)throws Exception{
        //1.读取配置文件
        InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
        //2.创建SqlSessionFactory工厂
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        SqlSessionFactory factory = builder.build(inputStream);
        //3.使用工厂生产SqlSession对象
        SqlSession session = factory.openSession();
        //4.使用SqlSession创建Dao接口代理对象
        UserDao userDao = session.getMapper(UserDao.class);
        //5.使用代理对象执行方法
        List<User> users = userDao.findAll();
        for (User user:users) {
            System.out.println(user);
        }
        //6.释放资源
        session.close();
        inputStream.close();
    }
}

剩下的就是执行测试类了,结果如下图:
在这里插入图片描述

注意事项

  1. 创建UserDao.xml 和 UserDao.java时名称只是为了统一,关键在于namespace的值。在Mybatis中它把持久层的操作接口名称和映射文件也叫做:Mapper,所以:UserDao 和 UserMapper是一样的
  2. 在idea中创建目录的时候,它和包是不一样的,
    包在创建时:com.dao它是二级结构
    目录在创建时:com.dao是一级目录
  3. mybatis的映射配置文件位置必须和dao接口的包结构相同,如下图:
    在这里插入图片描述
  4. 映射配置文件的mapper标签namespace属性的取值必须是dao接口的全限定类名,如下图:
    在这里插入图片描述
  5. 映射配置文件的操作配置(select),id属性的取值必须是dao接口的方法名,如下图:
    在这里插入图片描述
  6. SqlSession 代表和数据库的一次会话,用完必须关闭;
  7. SqlSession 和 connection 一样它都是非线程安全的,每次使用都应该去获取新的对象;
  8. mapper 接口没有实现类,但是 mybatis 会为这个接口生成一个代理对象(将接口和xml进行绑定)
    UserDao userDao = session.getMapper(UserDao.class);
  9. 两个重要的配置文件:
    mybatis 的全局配置文件:包含数据库连接池信息,事务管理器信息等…系统运行环境信息
    SQL 映射文件:保存了每一个 SQL 语句的映射信息:将 SQL 抽取出来。

关于注解的方式开发

注解开发在xml方式的基础上,稍作修改,如下:

  1. 删除映射配置文件UserDao.xml,如下图:
    在这里插入图片描述
  2. 修改Mybatis的主配置文件SqlMapConfig.xml中的mappers标签的属性为class,注意的是包名不能是“/”来连接,而是以点,如下图:
    在这里插入图片描述
  3. 最关键的地方来了,在UserDao接口中方法的上面添加一行注解代码即可,如下图:
    在这里插入图片描述
    执行结果
    在这里插入图片描述
    其实结果和xml的方式是一样的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值