0.前言

最近在学习使用ssm框架,整合过程比较麻烦,先把基础使用部分整理出来,这篇文章只是使用了mybatis连接数据库进行查询操作,主要来熟悉mybatis和数据库部分的操作。

IDEA:2020.2.1
mysql:8.0.21
本项目github连接

步骤如下:
1.新建maven工程
2.添加必要依赖
3. 连接数据库,编写实体类
4. 编写Mapper.xml(sql语句)
5.编写数据库配置文件
6.编写测试类


1.新建一个maven工程

新建一个项目,选择好JDK版本,直接点击Next。(注意,此处不需要web环境,所以直接搭建就可以)

选择名称和位置,点击Finish

新建完的maven工程后的目录结构如下:

2.添加坐标

打开prom.xml,添加依赖(坐标)。把下面内容赋值到prom.xml文件中保存即可

    <!--手动添加依赖-->
    <dependencies>
        <!--java单元测试框架-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
        </dependency>
        <!--lombok可以使用注解的方式提供get和set方法  -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.10</version>
        </dependency>
        <!--mysql数据库驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.39</version>
        </dependency>
        <!-- 日志打印-->
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.16</version>
        </dependency>
        <!-- mybatis,一种数据库持久层框架-->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.5</version>
        </dependency>
    </dependencies>


点击右侧的这个小图标,进行刷新操作,依赖就会添加了。


3.连接数据库,编写实体类

首先你要有个mysql数据库,如果没有的话,可以点击看如何下载安装配置。

执行下面这个sql脚本就会产生数据或者点击这里看如何生成测试数据。

DROP TABLE IF EXISTS `students`;
CREATE TABLE `students` (
    `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    `stu_name` varchar(20) NOT NULL ,
    `stu_sex` varchar(10)  NOT NULL ,
    `class_id` int(10)  NOT NULL ,
    `age` int(10) NOT NULL  DEFAULT 18,
    `create_time` datetime NULL DEFAULT CURRENT_TIMESTAMP,
    `update_time` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
    PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8;


insert into students (stu_name,stu_sex,class_id,age) values
('张三','男',1001,18),
('王晓红','女',2001,20),
('李清乐','男',1001,23),
('赵倚天','男',3001,23);

然后用IDEA自带的数据库连接软件进行连接操作

填写必要信息,点击测试连接

如果点击测试连接的时候出现服务器返回无效的时区。需要设置 ‘serverTimezone’ 属性”点击这里解决


在main下新建一个我们的目录文件。

新建一个实体类,跟数据库的表名对应。注意,类名首字母一般大写。

package com.cat.pojo;
import lombok.Data;

@Data  //加上Data就不用写get和set方法了
public class Students {
    private int id;
    private  String stu_name;
    private  String stu_sex;
    private  int class_id;
    private  int age;
}

4.编写mapper.xml(sql语句)

上面我们创建完了实体类,下面开始写xml配置,sql语句。我们新建包,然后在包下面新建一个studentsMapper.xml文件。注意这里建包规则和上面不同这里要写成com/cat/mapper。而上面的要写成com.cat.xxx 这种形式。



<?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.cat.mapper">
    <!--    id 和返回类型,就是封装到什么地方-->
    <select id="listAllStudents" resultType="com.cat.pojo.Students">
        select * from students;
    </select>
</mapper>

5.编写数据库配置文件(MyBatisConfig.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"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://127.0.0.1:3306/myapp"/>
                <property name="username"  value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="com/cat/mapper/StudentsMapper.xml"/>
    </mappers>
</configuration>
6.编写测试类

我们开始编写一个测试类,用来测试我们是否可以正常从数据库中取出数据。


有关Sqlsession等的知识可以点这里。


package com.cat.test;
import com.cat.pojo.Students;
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;
public class MyBatisTest {
    @Test
    public void  test() throws IOException{
        //获得核心配置文件
        InputStream in = Resources.getResourceAsStream("MyBatisConfig.xml");
        //获得session工厂对象
        SqlSessionFactoryBuilder builder =new SqlSessionFactoryBuilder();
        SqlSessionFactory factory=builder.build(in);
        SqlSession session =factory.openSession();
        //获得会话对象
        List<Students> students =session.selectList("com.cat.mapper.listAllStudents");
        System.out.println(students);
        session.close();  //关闭
    }
}

写完了之后,我们点击旁边绿色的小箭头。

可以看出这里已经输出数据库的信息了。

7.后记

这篇文章记录了使用mybatis连接数据库并从数据库中取出信息。核心配置文件一共就两个,一个是sql语句文件,一个是mybatis数据库配置文件。但是我们在测试的时候可发现,我们调用一个sql语句,就需要写大量的SqlSession,十分繁琐,所以后期我们用spring来进行整合操作。


返回目录:JAVA


分类: java