MyBatis入门

本文详细介绍了MyBatis的基本概念和作用,演示了如何在一个Maven项目中配置MyBatis,包括添加依赖、配置数据库信息、创建实体类、接口及映射文件,并提供了测试类的示例代码,帮助初学者快速上手MyBatis。
摘要由CSDN通过智能技术生成

1、什么是MyBatis?

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

MyBatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去加载驱动、创建连接、创建Statement等繁杂过程。程序员直接编写原生态sql,可以严格控制sql执行性能,灵活度高。

2、怎么用MyBatis

先创建一个普通的maven项目

请添加图片描述

请添加图片描述

请添加图片描述
请添加图片描述

创建完成之后先配置pom.xml文件

请添加图片描述

复制过去即可
<!--    mybatis的jar-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.1</version>
    </dependency>

<!--    jdbc-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.9</version>
    </dependency>

请添加图片描述

新建main的文件夹,再在这个文件夹里面建一个resources的资源目录

请添加图片描述

同理再建一个text文件夹,建完之后就是这个样子:

请添加图片描述

java文件夹下面的包就是一个java项目的基本结构,在这里就不多描述了,有疑问可以问我

在resources的资源目录中新建一个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>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/student?useUnicode=true&amp;characterEncoding=utf8"/>//student是我自己的数据库,改成你的数据库名称
                <property name="username" value="root"/>//这个是你数据库的账号
                <property name="password" value="123456"/>//这个是密码
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="com/dh/dao/Student.xml"/>//这个是映射文件,稍后我会解释
    </mappers>
</configuration>
新建一个实体类
package com.dh.entity;

public class Student {
    private Integer id;//id
    private String name;//姓名
    private Integer age;//年龄
    private String gender;//性别

    public Student() {//无参构造方法
    }

    public Student(Integer id, String name, Integer age, String gander) {//有参构造
        this.id = id;
        this.name = name;
        this.age = age;
        this.gender = gander;
    }

    //get和set方法
    public int getId() {
        return id;
    }

    public void setId(int 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;
    }

    public String getGender() {
        return gender;
    }

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

//重写tostring方法
    @Override
    public String toString() {
        return "student{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                ", gender='" + gender + '\'' +
                '}';
    }
}
新建一个接口
package com.dh.dao;

import com.dh.entity.Student;

import java.util.List;

public interface StudentDao {

    List<Student> selectStudents();
}

请添加图片描述

这个xml文件就是上面配置数据库映射到这个文件
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<!--唯一字符串-->
<mapper namespace="com.dh.dao.StudentDao">//接口的位置

    <!--    resultType 返回值类型   id指向的的就是刚刚写的接口的方法名称-->
    <select id="selectStudents" resultType="com.dh.entity.Student">// resultType指向你的实体类
        select * from student//查询所有学生的sql语句
    </select>
</mapper>
再建一个测试类

请添加图片描述

package com.dh.controller;

import com.dh.entity.Student;
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.IOException;
import java.io.InputStream;
import java.util.List;

public class studnetText {

    public static void main(String[] args) throws IOException {

        SqlSession session=null;

        //mybatis全局配置文件
        String resources="mybatis.xml";

        //加载 mybatis 全局配置文件
        InputStream resourceAsStream = Resources.getResourceAsStream(resources);

        //构建sqlSession的工厂
        SqlSessionFactory build = new SqlSessionFactoryBuilder().build(resourceAsStream);

        //根据 sqlSessionFactory 产生 session
        session=build.openSession();

        //接口的位置加上方法的名字   !!!一定不要写错了
        String statement = "com.dh.dao.StudentDao.selectStudents";

        //获取所有的学生对象
        List<Student> students=session.selectList(statement);

        //把所有的学生展示出来
        for (Student stu:students){
            System.out.println(stu);
        }

        //最后一步关闭流
        session.close();

    }
}

在这里插入图片描述

写的可能不好,大家谅解

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值