IDEA——手把手教你mybatis的使用(新手教程)

Posted bambooDragon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IDEA——手把手教你mybatis的使用(新手教程)相关的知识,希望对你有一定的参考价值。

        说到Mybatis,很多人不知道这是用来干什么的,简单来说就是用来优化JDBC的使用,我们可以理解为一个这样的流程:

        数据库->JDBC->MyBatis->Java

        今天来教一下简单的mybatis使用方法,对于初学者很友好。

 

目录

一、MySQL准备

二、IDEA配置 mybatis环境

创建pojo

 创建mapper.xml

创建Mapper代理接口

回到StudentMapper.xml文件

启动Main方法


一、mysql准备

首先呢我们需要准备一个数据库的表数据,来进行随后使用mybatis进行的查询操作。

这里用到的是MySQL数据库,我们首先通过cmd命令窗口进行数据库连接

mysql -u root -p

进入数据库后我们创建一个属于自己的数据库,建议检查exists以防报错

create database if not exists csdnsql;

 

通过use csdnsql;进入数据库进行操作

接下来创建一个存储数据的表单,我在这里创建一个Student简易学生表

 create table student(
     id varchar(10) primary key,
     name varchar(10) not null,
     sex char(1) not null,
     birthday date default '2000-01-01',
     address varchar(30)
     );

 

 

接下来通过insert方法录入几个数据以供后面使用

insert into student values
     ('10101','张三','男','2002-08-12','北京市朝阳区'),
     ('10103','李四','男','2001-9-22','北京市东城区'),
     ('10105','小霞','女','2003-02-15','北京市大兴区');

 

 

接下来我们来查看一下自己录入的数据是否已经存在于数据库中了

 

 可以看到我们的数据已经成功进入了数据库中,数据库的准备就这样结束了,马上进入IDEA进行我们的mybatis学习。


 

 

二、IDEA配置 mybatis环境

创建一个maven项目

 

创建完成后打开项目下的pom.xml进行一些依赖的配置,你问我依赖是什么?依赖就是导jar包,连网自动导入不用百度的那种。

 

添加如下内容导入mybatis和jdbc的jar包

    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.30</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.10</version>
        </dependency>
    </dependencies>

         上官网!哈哈,肯定是mybatis的官网,我们去把它的核心配置文件copy下来,不过首先我们要在这个目录下创建一个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.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql:///csdnsql?useSSL=false"/>
                <property name="username" value="root"/>
                <property name="password" value="1234"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="org/mybatis/example/BlogMapper.xml"/>
    </mappers>
</configuration>


上面这些其实都还没有创建结束,但我们需要先进行pojo的创建和mapper映射的创建,才能继续修改mybatis核心配置文件xml


 

创建pojo

这其实就是你的JavaBean,类名就是查询的表名咯

创建一个com.bamboo.pojo的package包

在其中创建一个名为Student的类

package com.bamboo.pojo;

import java.text.SimpleDateFormat;
import java.util.Date;

public class Student 
    private String id;
    private String primary;
    private String name;
    private Character sex;
    private Date birthday;
    private String address;

    public String getId() 
        return id;
    

    public void setId(String id) 
        this.id = id;
    

    public String getPrimary() 
        return primary;
    

    public void setPrimary(String primary) 
        this.primary = primary;
    

    public String getName() 
        return name;
    

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

    public Character getSex() 
        return sex;
    

    public void setSex(Character sex) 
        this.sex = sex;
    

    public Date getBirthday() 
        return birthday;
    

    public void setBirthday(Date birthday) 
        this.birthday = birthday;
    

    public String getAddress() 
        return address;
    

    public void setAddress(String address) 
        this.address = address;
    

    @Override
    public String toString() 
        return "Student" +
                "id='" + id + '\\'' +
                ", primary='" + primary + '\\'' +
                ", name='" + name + '\\'' +
                ", sex=" + sex +
                ", birthday=" + new SimpleDateFormat("yyyy-MM-dd").format(birthday).toString() +
                ", address='" + address + '\\'' +
                '';
    


 

 创建mapper.xml

接下来创建映射文件咯~~

问我干嘛的?用来保存SQL语句的东西

在resources下创建一个com/bamboo/mapper/StudentMapper.xml的文件,一定要用/分隔,不然会形成你不想看到的结果,创建完成后先不用管。

 

很好!接下来我们回到mybatis核心配置文件

1.修改其中的<mappers>标签为以下内容

        是不是想问这个是用来干嘛的,我来告诉你

        这个用来定位刚才我们创建的mapper映射文件

<mappers>
        <package name="com.bamboo.mapper"/>
    </mappers>

2.在<environments>标签上方创建<typeAliases>标签来为我们的pojo起别名,省略需要写全限名的步骤

<typeAliases>
        <package name="com.bamboo.pojo"/>
    </typeAliases>

 

创建Mapper代理接口

在java源路径下创建com.bamboo.mapper.StudentMapper的接口

具体如下图,我们在其中添加一个接口, 并且写入一个接口方法。

 

package com.bamboo.mapper;

import com.bamboo.pojo.Student;

import java.util.List;

public interface StudentMapper 
    List<Student> selectAll();


 

回到StudentMapper.xml文件

把下面这串全添加进去,大部分是官网给出的dtd,所以看起来有些复杂

实际上就只是通过mapper映射到了Mapper接口,然后通过下面的id来定位方法,resultType来设置返回的结果类,内容显而易见的是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.bamboo.mapper.StudentMapper">
    <select id="selectAll" resultType="Student">
        select * from csdnsql.student;
    </select>
</mapper>

 至此配置全部结束,我们开始使用这些东西来进行对数据库的查询和使用。


 

启动Main方法

直接在com.bamboo包下创建一个主线程MybatisDemo类文件来启动我们的mybatis项目

至此项目结构图是这样的,如果哪里不对请稍作修改

 

        一个一个写,写累了呀,我一次性写完带图好叭,哈哈,我可还真的不是一个负责任的博主。

步骤:先创建一个startMybatis()方法来保存所有代码,通过throws Exception抛出异常给main

1.获取SqlSessionFactory

2.通过工厂来获取SqlSession

3.创建Mapper映射

4.创建List集合接收mapper代理执行获取得结果

5.输出结果

6.关闭sqlSession对象

7.使用main来调用,通过try-catch捕获异常避免jvm异常终止程序

!!!!!!上代码!

!!果然还是先上结果再上代码,这样更有信服力

 

 

package com.bamboo;

import com.bamboo.mapper.StudentMapper;
import com.bamboo.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 java.io.InputStream;
import java.util.List;

public class MybatisDemo 
    public static void main(String[] args) 
        try 
            startMybatis();
         catch (Exception e) 
            e.printStackTrace();
        
    
    public static void startMybatis() throws Exception 
        //1
        String resource = "mybatis-config.xml";
        InputStream in = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
        //2
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //3
        StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);
        //4
        List<Student> students = studentMapper.selectAll();
        //5
        for (Student student : students) 
            System.out.println(student);
        
        //6
        sqlSession.close();
    

 至此mybatis初体验就结束啦,亲手试一试,你就不会觉得那么难了。

 

手把手教你在Linux(Deepin)使用IDEA连接MySQL

JDK可以直接用IDEA安装
IDEA直接在Deepin软件商店安装即可
IDEA官网链接:https://www.jetbrains.com/idea/download/#section=linux
MYSQL安装:https://blog.csdn.net/weixin_46285416/article/details/117925764

  1. IDEA安装后,第一次打开需要注意的步骤
  2. 连接MySQL

勾选对话框点击Continue

点击Don’t Send

选择Evaluate for free->Evaluate

点击Continue

点击New Project创建新项目


这里显示没有JDK
我们可以点击download JDK下载


可以选择下载哪个JDK,这里我就下载Oracle的了


自动下载自动配置,不需要手动操作

下载好了,点击下一步Next


继续下一步


选择目录和项目名字

右键src选择New点击Java Class

添加类名

这里先不动了,先去弄Mysql
开头有Mysql安装教程

我这里先简单弄了几个简单的数据

数据库:demo
表:users

点击IDEA右面的Database,点击左面的加号,点击datasource,选择MySQL

这里提示下载,下载即可

安装完成


点击Test Connection会提示报错
这里是需要权限检查

跳过一下权限就可以了

需要修改一下MySQL数据库的远程访问权限(记得进入mysql才能运行)

grant all privileges on *.* to '数据库用户名'@'你主机地址' identified by '你的密码';
这里主机地址如果是本机的话就用localhost,切记单引号别删除了

这里是我的语句
grant all privileges on *.* to 'root'@'localhost' identified by 'root';

一定要刷新权限


刷新权限:FLUSH PRIVILEGES;
查看权限:select user,host from mysql.user;

然后更改root密码

MariaDB [(none)]> USE mysql;
MariaDB [(none)]> UPDATE user SET password=PASSWORD('你要设置的密码') WHERE User='root' AND Host = 'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;        修改完密码必须刷新mysql系统权限相关表
退出,重新登录,看是否修改成功

然后重新打开IDEA,重新连接,输入你的密码
PS:这里我的密码都是root,方便好记,大家一定要改成一个熟悉的密码,忘了很麻烦的

连接完成

然后测试一下

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

public class Demo 
    public static final String URL = "jdbc:mysql://localhost:3306/demo";    //数据库的名称是demo
    public static final String USER = "root";   //用户名
    public static final String PASSWORD = "root";   //密码

    public static void main(String[] args) throws Exception 
        //1.加载驱动程序
        Class.forName("com.mysql.cj.jdbc.Driver");      //这个驱动程序去DataBase找DataSource and Drivers,然后再Drivers里面找到对应的数据库,填写类名
        //2. 获得数据库连接
        Connection conn = DriverManager.getConnection(URL, USER, PASSWORD);
        //3.操作数据库,实现增删改查
        Statement stmt = conn.createStatement();
        ResultSet rs = stmt.executeQuery("SELECT * FROM demo"); //SQL语句
        //如果有数据,rs.next()返回true
        while(rs.next())       //输出的时候,int类型就getint,string就getstring
            System.out.println(rs.getInt("id")+" 年龄:"+rs.getString("name"));
        
    


驱动程序那里很容易报错,找不到,这里就做个详细的更改

依次点击
database->加号->Driver and Data Source

点击Drivers,点击User Driver


依次点击

点击Switch

选择不是红色的就可以,然后点击右下角apply


下面划线的选什么,上面类名就要写什么

大概就是这样,不行了,这教学文档太难写了/(ㄒoㄒ)/~~

以上是关于IDEA——手把手教你mybatis的使用(新手教程)的主要内容,如果未能解决你的问题,请参考以下文章

手把手教你在Linux(Deepin)使用IDEA连接MySQL

手把手教你在Linux(Deepin)使用IDEA连接MySQL

MyBatis注解开发多表代码操作——手把手教你实战操作

手把手教你阅读mybatis核心源码,掌握底层工作原理与设计思想

手把手教你阅读mybatis核心源码,掌握底层工作原理与设计思想

如何使用MyBatis-Plus实现字段的自动填充?(若不会,我便手把手教你)