Mybaits学习 - 1-实现简单查询

根据各位大佬大谆谆教诲,学东西从官网入手最佳:https://mybatis.org/mybatis-3/zh/getting-started.html。

添加depencency

将dependency添加到pom文件

<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.4.6</version>
</dependency>

reimport一下pom文件
在这里插入图片描述

创建数据库表单

1、用navicat连接数据库,然后创建一个teacher表,字段如下:
在这里插入图片描述
2、在数据库中插入数据
在这里插入图片描述

添加java bean

创建类Teacher,然后添加数据库对应字段,右键Generate 添加set、get和toString方法。

在这里插入图片描述

最终代码如下:

package bean;

public class Teacher {
    private  int id;
    private String name;
    private  char gender;

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

    public int getId() {
        return id;
    }

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

    public String getName() {
        return name;
    }

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

    public char getGender() {
        return gender;
    }

    @Override
    public String toString() {
        return "Teacher{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", gender=" + gender +
                '}';
    }
}

添加配置文件

在InterfaceTest/src/main/resources/创建配置文件mybatis-config.xml,从官网复制内容到文件。然后根据自己的数据库连接方式修改配置内容中的driver、url、username和password等信息
在这里插入图片描述

添加映射sql

在InterfaceTest/src/main/resources/mapper目录创建eacherMapper.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">
<!--namespace自定义的名称空间 -->
<mapper namespace="com.mybatis.stu">
    <!--id:自定义的sql唯一标志-->
    <!--resultType:指的是返回值类型,将javabean的全类名拷贝过来(包名.类名的格式)-->
    <!--如果数据库字段名和javabean中变量名字不同,需要在sql中使用别名-->
    <select id="selectTeacher" resultType="bean.Teacher">
    select * from teacher where id = #{id}
  </select>
</mapper>

注册映射sql到配置文件中

打开mybatis-config.xml文件,将新添加到mapper文件注册到文件中:
在这里插入图片描述

编写查询代码

第一个参数是sql都唯一标志,第二个参数是执行sql需要的参数
在这里插入图片描述
唯一标志为mapper文件中到namespace+id
Object O为查询需要的参数

最终代码如下:

import bean.Teacher;
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.testng.annotations.Test;

import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;


public class TestMybatis {

    @Test
    public  void testCase1() throws IOException {
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);


        //创建sqlSessionFactory对象
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

        //生成session实例
        SqlSession session = sqlSessionFactory.openSession();
        try{
        //第一个参数sql唯一标志用namespace.id来表示
        Teacher teacher = session.selectOne("com.mybatis.stu.selectTeacher",1);
        System.out.println(teacher);} finally { session.close(); }

    }
}

运行结果中正确输出查询值:
在这里插入图片描述

发布了108 篇原创文章 · 获赞 10 · 访问量 9687

猜你喜欢

转载自blog.csdn.net/liying15/article/details/102059867