文章目录

  • 1. 创建maven项目
  • 2. 导入Mybatis和MySQL需要的jar包
  • 3.创建实体类(这里我们使用学生类Student)
  • 4. 为实体类配置数据库信息(Student类与student表的映射)
  • 5. 创建实体类的mapper映射文件(StudentMapper接口以及StudentMapper.xml可以理解为接口的实现)
  • 6. 配置Mybatis文件(文件名字可以命名为:mybatis-config.xml)
  • 7. 创建SqlSessionFactory工厂类(这是为了读取配置文件,执行sql语句,并且可以减少代码的冗余)
  • 8. 运行测试


1. 创建maven项目

注意:建立maven项目前,电脑要已经下载好了maven并完成了配置

使用idea创建mysql数据库 idea创建mysql表_mysql


使用idea创建mysql数据库 idea创建mysql表_intellij-idea_02


创建好之后是这个样子

使用idea创建mysql数据库 idea创建mysql表_java_03


我们可以在里面创建实体类、测试类、接口类所在的包,为了后续的方便可以参考我是如何创建的,创建好之后是这个样子:

使用idea创建mysql数据库 idea创建mysql表_使用idea创建mysql数据库_04

2. 导入Mybatis和MySQL需要的jar包

因为我们创建的是Maven项目,我们只需要在pom文件里面导入相应的依赖,
代码如下

<dependencies>
        <!--mybatis的依赖-->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.3.0</version>
    </dependency>
        <!--mysql的依赖-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.29</version>
    </dependency>
    </dependencies>

添加好依赖之后点击刷新,创建好之后是这个样子

使用idea创建mysql数据库 idea创建mysql表_intellij-idea_05

3.创建实体类(这里我们使用学生类Student)

在entity下面创建java类,并命名为Student,代码如下

package com.HaiMeng.entity;

public class Student {

    private int id;
    private String name;
    private int age;

    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;
    }

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

使用idea创建mysql数据库 idea创建mysql表_mybatis_06

4. 为实体类配置数据库信息(Student类与student表的映射)

我们首先创建mybatis数据库(也可以自己起名字)在该数据库下面创建student表,命令字符创建代码:

SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `student`
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student` (
  `id` int(10) NOT NULL auto_increment,
  `name` varchar(10) NOT NULL,
  `age` int(10) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=gbk;

-- ----------------------------
-- Records of student
-- ----------------------------
INSERT INTO student VALUES ('1', '王五', '1001');

我们可以在navicat lite进行查看

使用idea创建mysql数据库 idea创建mysql表_mysql_07


到这里我们的Student类和student的表的映射已经创建好了

接着在resources下面创建一个config.properties文件,用来存放我们的数据库的信息:

database.driver=com.mysql.jdbc.Driver
database.url=jdbc:mysql://localhost:3306/mybatis
database.username=root
database.password=123456

使用idea创建mysql数据库 idea创建mysql表_使用idea创建mysql数据库_08

使用idea创建mysql数据库 idea创建mysql表_intellij-idea_09

到这里我们已经配置好数据库了

5. 创建实体类的mapper映射文件(StudentMapper接口以及StudentMapper.xml可以理解为接口的实现)

  1. 在mapper下面创建StudentMapper
  2. 在resources/mapper下面创建StudentMapper.xml(可以理解为StudentMapper的实现)

StudentMapper代码如下

package com.HaiMeng.mapper;

import com.HaiMeng.entity.Student;

public interface StudentMapper {
//    因为创建的是接口,所以里面是方法
//    尽然是方法,那么我们接下来就是要实现它
//    怎么实现呢???
//    这里是通过一个StudentMapper.xml文件进行实现的
    public Student getStudent(long id);
}

使用idea创建mysql数据库 idea创建mysql表_intellij-idea_10


StudentMapper.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="com.HaiMeng.mapper.StudentMapper">
<!--getStudent得到实现,增删改查都可以在mapper标签内进行实现,我们这里是查询所以学生-->
    <select id="getStudent" parameterType="long" resultType="com.HaiMeng.entity.Student">
        select id, name, age
        from student
        where id = #{id}
    </select>

</mapper>

使用idea创建mysql数据库 idea创建mysql表_mysql_11

有可能会有不知道怎么创建StudentMapper.xml文件(这里简单的介绍一下,因为下面还需要创建mybatis-config.xml文件,知道如何创建的可以跳过这一部分)

首先进入:

File->Setting->File and code templates

使用idea创建mysql数据库 idea创建mysql表_mybatis_12


代码模板如下:

<?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.HaiMeng.mapper.StudentMapper">
<!--getStudent得到实现,增删改查都可以在mapper标签内进行实现,我们这里是查询所以学生-->
    <select id="getStudent" parameterType="long" resultType="com.HaiMeng.entity.Student">
        select id, name, age
        from student
        where id = #{id}
    </select>

</mapper>

这个时候我们再去点击新建,我们就会发现我们有一个这样的模板,再以后需要的时候就可以快速的创建,只需要再mapper标签内对接口里面的方法进行实现就可。

到此StudentMapperStudentMapper.xml文件都创建完了

6. 配置Mybatis文件(文件名字可以命名为:mybatis-config.xml)

resources下面创建mybatis-config.xml文件
mybatis-config.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>
    <properties resource="config.properties"/>
    <typeAliases>
        <package name=""/>
    </typeAliases>

        <!--    配置环境-->
    <environments default="mysql">
<!--        配置MySQL的环境-->
        <environment id="mysql">
<!--            配置事务的类型-->
            <transactionManager type="JDBC"/>
            
            <dataSource type="POOLED">
<!--                配置连接数据库的四个基本信息-->
                <property name="driver" value="${database.driver}"/>
                <property name="url" value="${database.url}"/>
                <property name="username" value="${database.username}"/>
                <property name="password" value="${database.password}"/>
            </dataSource>
            
        </environment>
    </environments>
<!--    指定映射文件的位置,映射文件指的是每个DAO独立的配置文件-->
    <mappers>
        <mapper resource="mapper/StudentMapper.xml"/>
    </mappers>

</configuration>

使用idea创建mysql数据库 idea创建mysql表_java_13


到这里,mybatis-config.xml就配置好了

7. 创建SqlSessionFactory工厂类(这是为了读取配置文件,执行sql语句,并且可以减少代码的冗余)

在utils下面创建SqlSessionFactory工厂类,代码如下

package com.HaiMeng.utils;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

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

public class SqlSessionFactory {

    private final static Class<SqlSessionFactory> lock= SqlSessionFactory.class;

    private static org.apache.ibatis.session.SqlSessionFactory sqlSessionFactory=null;

    private SqlSessionFactory(){};


//会话工厂
    public static org.apache.ibatis.session.SqlSessionFactory getSqlSessionFactory() {
       //
        synchronized (lock) {
            if (sqlSessionFactory != null) {
                return sqlSessionFactory;
            }
//            mybatis配置文件的名字
            String resource = "mybatis-config.xml";
            InputStream inputStream;

            try {
                //读取配置文件
                inputStream = Resources.getResourceAsStream(resource);
                //创建SqlSessionFactory工厂
                sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

            } catch (IOException e) {
                e.printStackTrace();
                return null;
            }
            return sqlSessionFactory;
        }
    }


//使用工厂生产Sqlsession对象
    public static SqlSession openSqlSession(){
        if (sqlSessionFactory==null){
            getSqlSessionFactory();
        }
        return  sqlSessionFactory.openSession();
    }

}

使用idea创建mysql数据库 idea创建mysql表_mysql_14

8. 运行测试

在test/java下面创建测试类TestMybatis进行测试,代码如下:

import com.HaiMeng.mapper.StudentMapper;
import com.HaiMeng.utils.SqlSessionFactory;
import org.apache.ibatis.session.SqlSession;

public class TestMybatis {
    public static void main(String[] args){
        SqlSession sqlSession= SqlSessionFactory.openSqlSession();
        StudentMapper studentMapper=sqlSession.getMapper(StudentMapper.class);
        System.out.println(studentMapper.getStudent(1).toString());
    }

}

使用idea创建mysql数据库 idea创建mysql表_使用idea创建mysql数据库_15

到这里我们的整个项目已经写完了,我们可以运行TestMybatis看看效果

使用idea创建mysql数据库 idea创建mysql表_使用idea创建mysql数据库_16

可以看到,成功从数据库里面查询到了学生。到此我们整个Mybatis配置完成,并顺利运行。

最后我们来看一下我们项目的整体结构:

使用idea创建mysql数据库 idea创建mysql表_mybatis_17

大家有什么问题可以在下面留言,一起进步,共同成长!!!!