MyBatis-jar包下载及项目创建流程

简单概述

  MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 pojo,(普通的 Java对象)映射成数据库中的记录。

为什么要使用MyBatis?

  • MyBatis是一个半自动化,轻量级的持久层框架。
  • sql与java编码分离的,sql是由开发人员自己控制的。
  • 对开发人员而言,核心sql还是需要自己优化。
  • sql 和 java 编码分开,功能边界清晰,一个专注业务,一个专注数据。

操作步骤:

  1. 首先 idea 创建一个java项目
  2. 获取jar包链接:https://pan.baidu.com/s/1luwfkFjvVcwHsuv1Sp6vfg 提取码:yqtw
  3. 导包——创建一个lib文件夹将下载的包导入到lib目录下,选中所有包右击Add As Library

在这里插入图片描述

在这里插入图片描述
3. src下新建一个package,package只需根据命名规则命名,完事后创建一个实体类,实体类要与数据库字段名称相同。

创建实体类如下:
package com.atguigu.mybatis;

import org.apache.ibatis.type.Alias;


public class Employee {
    private int id;
    private String lastname;
    private String email;
    private String gender;

    public int getId() {
        return id;
    }

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

    public String getLastname() {
        return lastname;
    }

    public void setLastname(String last_name) {
        this.lastname = last_name;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    @Override
    public String toString() {
        return "Employee{" +
                "id=" + id +
                ", last_name='" + lastname + '\'' +
                ", email='" + email + '\'' +
                ", gender='" + gender + '\'' +
                '}';
    }
}

 在创建一个接口
	package com.atgui.gu.mybatis.dao;
	
	import com.atguigu.mybatis.Employee;
	
	public interface EmployeeMapper {
	
	    public Employee getEmpByID(int id);
	}
  1. src下新建一个conf包,里边需要创建如下三个文件:

在这里插入图片描述
dbconfig.properties——连接数据库

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/zhangsan?serverTimezone=GMT%2B8
jdbc.username=root
jdbc.password=root

EmployeeMapper.xml——sql映射文件

<?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.atgui.gu.mybatis.dao.EmployeeMapper">

<!--
    #{id}:从传递过来的参数中取出id值
-->

<!--    public Employee getEmpByID(int id);
-->
    <select id="selectEmp" resultType="employee">

         select * from tbl_employee where id = #{id}

    </select>

</mapper>

mybatis-config.xml——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>
    <!--
        1.mybatis可以使用properties来引入外部properties配置文件的内容
        resource:引入类路径下的资源
        url:引入网络路径或者磁盘路径下的资源
    -->
    <properties resource="conf/dbconfig.properties"></properties>

    <!--环境配置,连接的数据库,这里使用的是MySQL-->
    <environments default="mysql">
        <environment id="mysql">
            <!--指定事务管理的类型,这里简单使用Java的JDBC的提交和回滚设置-->
            <transactionManager type="JDBC"></transactionManager>
            <!--dataSource 指连接源配置,POOLED是JDBC连接对象的数据源连接池的实现-->
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"></property>
                <property name="url" value="${jdbc.url}"></property>
                <property name="username" value="${jdbc.username}"></property>
                <property name="password" value="${jdbc.password}"></property>
            </dataSource>
        </environment>
    </environments>

    <mappers>
            <!--这是告诉Mybatis去哪找持久化类的映射文件,对于在src下的文件直接写文件名,
            如果在某包下,则要写明路径,如:com/mybatistest/config/EmployeeMapper.xml-->
        <mapper resource="conf/EmployeeMapper.xml"></mapper>
    </mappers>

</configuration>

测试类:

public class MyBatisTest {

    public SqlSessionFactory getSqlSessionFactory() throws IOException {

        String resource ="conf/mybatis-config.xml";

        InputStream inputStream = Resources.getResourceAsStream(resource);

        return new SqlSessionFactoryBuilder().build(inputStream);
    }
 
    //接口式编程,优点:解耦,严格的类型检查。
    @Test
    public void  text01() throws IOException {
        //1.获取SqlSessionFactory对象
        SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
        //2.获取sqlSession对象
        SqlSession openSession = sqlSessionFactory.openSession();

        try {
        //3.获取接口的实现类对象
            //会为接口自动的创建一个代理对象,代理对象去执行增删改查方法
        EmployeeMapper mapper = openSession.getMapper(EmployeeMapper.class);

        Employee empByID = mapper.getEmpByID(2);

        System.out.println(empByID);

        }finally {
            openSession.close();
        }
    }

mybatis小结:

  1. SqlSession代表和数据库的一次会话;用完必须关闭;
  2. SqlSession和connection一样她都是非线程安全。每次使用都应该去获取新的对象。
  3. mapper接口没有实现类,但是mybatis会为这个接口生成一个代理对象。
    (将接口和xml进行绑定)
    EmployeeMapper empMapper = sqlSession.getMapper(EmployeeMapper.class)
  4. 两个重要的配置文件:
    mybatis的全局配置文件:包含数据库连接池信息,事务管理器信息。系统运行环境信息
    sql映射文件:保存了每一个sql语句的映射信息:将sql抽取了出来。
  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值