Mybatis入门


1、创建测试表

2、创建maven项目

3、修改pom文件          引入依赖 mybatis  mysql驱动 测试代码 junit         中加入资源插件

<dependencies>
    
    <dependency>
        <groupId>junitgroupId>
        <artifactId>junitartifactId>
        <version>4.11version>
        <scope>testscope>
    dependency>
    
    <dependency>
        <groupId>org.mybatisgroupId>
        <artifactId>mybatisartifactId>
        <version>3.5.1version>
    dependency>

    
    <dependency>
        <groupId>mysqlgroupId>
        <artifactId>mysql-connector-javaartifactId>
        <version>5.1.49version>
    dependency>
dependencies>

<build>
    
    <resources>
        <resource>
            
            <directory>src/main/javadirectory>
            
            <includes>
                <include>**/*.propertiesinclude>
                <include>**/*.xmlinclude>
            includes>
            <filtering>falsefiltering>
        resource>
    resources>

    <plugins>
        <plugin>
            
            <groupId>org.apache.maven.pluginsgroupId>
            <artifactId>maven-compiler-pluginartifactId>
            <version>3.1version>
            <configuration>
                <source>1.8source>
                <target>1.8target>
            configuration>
        plugin>
    plugins>
build>
pom文件

4、创建实体类 student 定义属性

package com.pojo;

/**
* @author lbon
* @create 2022-04-13 21:49
*/
public class Student {
    private Integer id;
    private String name;
    private String email;
    private Integer 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 +
                '}';
    }
}
student类

5、创建Dao接口  定义操作数据库方法

package com.dao;

import com.pojo.Student;
import org.apache.ibatis.annotations.Param;

import java.util.List;


/**
* @author lbon
* @create 2022-04-13 21:51
*/
public interface StudentDao {
    /**
     * 获取学生列表
     * @return
     */
    List getStudentList();


    /**
     * 新增学生
     * @param student
     * @return
     */
    Boolean insertStudent(@Param("student") Student student);
}
Dao接口 6、创建xml文件(mapper文件) 书写sql语句             mybatis推荐将sql语句和java代码相分离             mapper文件:定义和dao接口在同一目录 一个表对应一个mapper文件
<?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.StudentDao">
    
    <insert id="insertStudent">
        insert into student values(#{id},#{name},#{email},#{age})
    insert>
    
    <select id="getStudentList" resultType="com.pojo.Student">
        select *
        from student
    select>
mapper>
mapper文件 7、创建mybatis的主配置文件(xml文件) 一个项目仅一个 放在resources下         1)定义创建连接实例的数据源对象DateSource对象         2)指定其他mapper的位置
<?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>
    
    <settings>
        <setting name="logImpl" value="STDOUT_LOGGING"/>
    settings>

    <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/mybatisdb?useUnicode=true&characterEncodeing=utf-8"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            dataSource>
        environment>
    environments>

    
    <mappers>
        
        <mapper resource="com/dao/StudentDao.xml"/>
    mappers>

configuration>
mybatis主配置文件 8、创建测试内容         main方法 或单元测试Junit
import com.pojo.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 org.junit.Test;

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

/**
* @author lbon
* @create 2022-04-14 15:06
*/
public class MyTest {

    @Test
    public void testSelectStudentList() {
        //调用mybatis读取学生信息
        //mybatis核心类 SqlSessionFactory
        //定义mybatis主配置文件位置,从类路径开始的相对路径
        String resource = "mybatis.xml";
        try {
            //读取配置文件 使用mybatis中Resources类
            InputStream inputStream = Resources.getResourceAsStream(resource);
            //创建SqlSessionFactory对象
            SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            //获取SqlSession对象
            SqlSession sqlSession = sqlSessionFactory.openSession();
            //指定要执行的sql语句id  namespace+"."+ mapper语句标签id  通过sqlSession方法获取sql语句
            List objects = sqlSession.selectList("com.dao.StudentDao.getStudentList", Student.class);
            for (Student s : objects) {
                System.out.println(s.toString());
            }
            //关闭sqlSession对象
            sqlSession.close();
            inputStream.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
测试方法