加入maven的mybatis坐标,mysql驱动的坐标

MyBatis入门

  1. <dependency>
  2. <groupId>org.mybatis</groupId>
  3. <artifactId>mybatis</artifactId>
  4. <version>x.x.x</version>
  5. </dependency>
  1. <!--mybatis依赖-->
  2. <dependency>
  3. <groupId>org.mybatis</groupId>
  4. <artifactId>mybatis</artifactId>
  5. <version>3.5.1</version>
  6. </dependency>
  7. <!--mysql驱动-->
  8. <dependency>
  9. <groupId>mysql</groupId>
  10. <artifactId>mysql-connector-java</artifactId>
  11. <version>8.0.28</version>
  12. </dependency>

下面来写实体类(创建实体类,Student)

删除maintest目录下的自动生成的App.java

main目录下的最后一个目录中创建chentian.Student.java

package org.example.chentianyu;

//推荐和表名一样,容易记忆
public class Student {
    //定义属性,目前你的属性名和列名保持一致
    private Integer id;
    private String name;
    private String email;
    private Integer age;
}

笔记本中,f系列的按键上有商家的自定义宏那么可以Fn+Alt+prt sc按键,一般没改的情况下机械键盘是Alt+ins可以呼出快速定义getter和setter方法的一系列快捷键

package org.example.chentianyu;

//推荐和表名一样,容易记忆
public class Student {
    //定义属性,目前你的属性名和列名保持一致
    private Integer id;
    private String name;
    private String email;
    private Integer age;

    public Student() {
    }

    public Student(Integer id, String name, String email, Integer age) {
        this.id = id;
        this.name = name;
        this.email = email;
        this.age = age;
    }

    public Integer getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getEmail() {
        return email;
    }

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

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", email='" + email + '\'' +
                ", age=" + age +
                '}';
    }
}

操作数据的Dao接口(创建持久层的dao接口)

在上面的org.example目录上创建一个dao.StudentDao的接口

package org.example.dao;

import org.example.chentianyu.Student;

import java.util.List;

//接口,操作student表
public interface StudentDao {
    //查询student表的所有数据
    public List<Student> selectStudents();
}

创建一个mybatis使用的文件

dao > StudentDao.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="org.example.dao.StudentDao">
    <!--
        select: 表示查询操作
        id: 你要执行的sql语句的唯一标识,mybatis会使用这个id的值来找到执行的sql语句
            可以自定义,但是要求你使用接口中的方法名称
        resultType: (结果类型的,是sql执行后得到的ResultSet,遍历这个ResultSet得到的java对象的类型)表示标签里的sql语句执行后转变的java对象的类型
            值写全限定名称
    -->
    <select id="selectStudents" resultType="org.example.chentianyu.Student">
        select  * from  student order by id
    </select>
</mapper>

<!--
    sql映射文件: 写sql语句的,mybatis执行这些sql
    1.<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
        指定约束文件;mybatis-3-mapper.dtd是约束文件的名称,扩展名是dtd的。
    2.约束文件的作用: 限制,检查在当前文件中出现的标签,属性必须必须是符合mybatis的要求。
    3.mapper 是当前文件的的根目录,必须的。
        namespace: 叫做命名空间,唯一值的,可以自定义的字符串
            要求你使用dao接口全限定名称。
    4.当前文件中,可以使用特定的标签,表示数据库的特定操作
        <select>: 表示查询
        <update>: 表示更新数据库的操作,就是在<update>标签中,写的是update sql语句
        <insert>: 表示插入,放的是insert语句
        <delete>: 表示的是删除,它执行delete语句
-->