使用idea创建一个mybatis项目并进行初步使用

入门小白,第一次写博客,如有不足之处请各位大佬及时指出,不胜感激!(抱拳)

简单了解MyBatis

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

什么是框架?

Java框架就是一些类和接口的集合,通过这些类和接口协调来完成一系列的程序实现。简单来说就是一个模板,规定好了很多的格式,要求开发者,按照指定格式填写代码,完成指定功能。学习如何使用框架,目的是为了提高开发效率,而不是研究框架底层。

基于maven创建一个简单的Mybatis项目

一、创建项目

首先打开idea,选择新建一个maven项目,可以选择从原型中创建一个quickstart项目
选择新建一个Simple Maven项目也可以,两者之间的区别感兴趣的朋友可以通过其他途径查看点击next
在这里插入图片描述在这里插入图片描述

二、引入依赖

项目创建完毕,在pom.xml文件中引入所需的依赖,并且可以将build标签内容删除,目前用不到。
所需依赖放在这里

 <!--mysql jar包-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.28</version>
    </dependency>

    <!--mybatis jar包-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.6</version>
    </dependency>

在这里插入图片描述

三、完善项目结构

接下来完善项目结构。右击main目录,依次new->Directory,在弹窗中选择resources,双击后将会在main目录下新建一个resources文件夹作为资源配置文件夹。
在这里插入图片描述继续完善项目结构,在resources目录下依次创建数据库配置文件db.properties及mybatis的配置文件mybatis-config.xml。db.properties内容为:

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test?useSSL=false
username=root
password=你的密码

在这里插入图片描述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="db.properties"></properties>
    <settings>
        <!-- 开启将数据库中下划线连接的字段自动映射为Java的小驼峰命名 -->
        <setting name="mapUnderscoreToCamelCase" value="true"/>

    </settings>
    <!--针对一个包下所有的类统一起别名  默认别名为类名 首字母不区分大小写-->
    <typeAliases>
        <package name="com.kkjf.bean"/>
    </typeAliases>


    <!--连接数据库环境配置-->
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"/>
                <property name="url" value="${url}"/>
                <property name="username" value="${username}"/>
                <property name="password" value="${password}"/>
            </dataSource>
        </environment>
    </environments>
    <!--sql文件位置-->
    <mappers>
        <mapper resource="com/kkjf/mapper/UserMapper.xml"/>
    </mappers>
</configuration>

在这里插入图片描述
此时的项目结构为
在这里插入图片描述

四、数据库创建与连接测试

使用mybatis的目的是为了能够操纵数据库,现在在我的test数据库中有一个张表为user,这里建表过程就不做累述。
在这里插入图片描述然后可以通过idea内置的数据库连接器简单测试一下能否正常连接数据库,点击左上角的+号
在这里插入图片描述
输入数据库名,账号,密码,点击Test Connection测试连接,有些可能会报如下的错误,大概意思是时区无效。

上述问题的解决方案如下:选择Driver为MySQL for 5.1,再次点击Test Connection,连接成功
在这里插入图片描述连接成功后点击apply->OK,在查询页面写一个SQL测试效果
在这里插入图片描述

五、创建bean类、sqlmapper文件等

在\java\com\kkjf目录下新建bean包,里边创建User类,生成setter,getter方法、无参,有参构造方法、tostring方法,使用注解模式也可以。

package com.kkjf.bena;

public class User {
    private Integer id;           //id
    private  String username;     //用户名
    private String password;      //密码
    private String sex;           //性别
    private Integer age;          //年龄

    public Integer getId() {
        return id;
    }

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

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public User() {
    }

    public User(Integer id, String username, String password, String sex, Integer age) {
        this.id = id;
        this.username = username;
        this.password = password;
        this.sex = sex;
        this.age = age;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                ", sex='" + sex + '\'' +
                ", age=" + age +
                '}';
    }

}

在这里插入图片描述
继续完善项目结构,新建了一个UserMapper的接口以及一个UserMapper.xml的配置文件
在这里插入图片描述
UserMapper.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.kkjf.mapper.UserMapper">

    <!--
        id:在当前文件唯一
        resultType:表示返回的数据类型(java类型)
    -->
    <select id="selectOne" resultType="com.kkjf.bena.User">
        select * from person where id = #{id}
    </select>

</mapper>

在这里插入图片描述UserMapper接口的内容为:

package com.kkjf.mapper;

import com.kkjf.bena.User;

public interface UserMapper {

    User selectOne(Integer id);
}

在这里插入图片描述此时一个mybatis项目的准备工作基本完毕!接下来进行测试。

六、测试效果

在APPTest测试类中输入以下内容:

@Test
    public void aa() throws IOException {
        // 1. 初始化mybatis配置
        String confPath = "mybatis-config.xml";
        InputStream in = Resources.getResourceAsStream(confPath);
        // 2. 构建SqlSessionFactory对象
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(in);
        // 3. 获取SqlSession对象,默认事务不自动提交
        SqlSession sqlSession = sqlSessionFactory.openSession();
        // 4. 获取Mapper
        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        User user = mapper.selectOne(1);
        System.out.println(user.toString());
    }

在这里插入图片描述根据控制台输出可以发现测试成功。

总结:

1.使用mybatis的目的是为了连接数据库并简化SQL结果集的获取,并实现一定的解耦。因此在配置过程中我们应该有配置数据库并进行连接的过程,即mybatis-config.xml中environments标签中的内容。

2.mybatis-config.xml配置中properties标签的目的是为了引入外部配置文件,即本项目中的db.properties。我们可以发现db.properties中的内容是以Key-Value的形式存在的,mybatis-config.xml通过properties标签引入db.properties文件后,就可以通过 ${Key} 的形式获取到对应的Value内容。

3.我们可以将mybatis-config.xml理解为mybatis项目的入口,然后我们会通过mappers标签来标记项目后已有的sqlmapper文件(即写有自定义SQL语句的xxxMapper.xml文件),在sqlmapper文件中会通过

<mapper namespace="">

方式标记该sqlmapper文件暴露在外的接口。

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值