mybatis的配置使用

教你一步一步,从配置mysql到使用mybatis获取数据库数据,相关软件:mysql版本8.0.17、jdk1.8、navicat

第一章 建立Mysql环境

1.首先下载mysql
因为我们在windows下进行学习使用,所以选择windows,点击第一个download。
在这里插入图片描述
进入MySQL Community Downloads,选择No thanks,开始下载。下载好后直接解压就行
在这里插入图片描述
2.安装教程(https://blog.csdn.net/Charonmomo/article/details/98440968),我安装的是mysql8.0.17
1.安装教程问题汇总:
.txt格式怎么保存为.ini配置文件格式?
在另存为项中输入(my.ini),选择格式为(.)所有文件,保存即可。
在这里插入图片描述
root管理员
用户名:root
修改初始化的mysql密码为:123
root管理员权限功能强大,操作失误造成的影响严重,所以为mysql创建用户。
Mybatis创建用户与授权
在这里插入图片描述
我创建了一个本地用户zhh和一个远程用户zhh2,都进行了对数据库与数据表所有操作的授权

第二章 建立Mysql数据库数据

使用我们的Navicat,点击连接输入用户名与密码,然后再root这个服务器创建一个名为javateam的数据库,点击查询,新建查询,输入以下代码

var foo='bar';
```bash
use javateam;
DROP TABLE IF EXISTS tb_user;
CREATE TABLE tb_user (
id char(32) NOT NULL,
user_name varchar(32) DEFAULT NULL,
password varchar(32) DEFAULT NULL,
name varchar(32) DEFAULT NULL,
age int(10) DEFAULT NULL,
sex int(2) DEFAULT NULL,
birthday date DEFAULT NULL,
created datetime DEFAULT NULL,
updated datetime DEFAULT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO javateam.tb_user (id,user_name, password, name, age, sex, birthday, created, updated) VALUES (1,'zpc', '123456', '鹏程', '22', '1', '1990-09-02', sysdate(), sysdate());
INSERT INTO javateam.tb_user (id,user_name, password, name, age, sex, birthday, created, updated) VALUES (2,'hj', '123456', '静静', '22', '1', '1993-09-05', sysdate(), sysdate());

在navicat中点运行,完成后如图:
在这里插入图片描述
到此我们已经有了数据库表及表数据!

第三章 创建mybatis项目

一.我们回到eclipse中,新建一个maven项目,对照项目结构图,建立对应的源文件包,再src/main/java中创建一个com.gliet.edu.cn的包,这个包下放我们的源代码。src/main/resource下新建一个名为mybatis-config.xml并创建一个mappers文件夹,在该文件夹新建MyMapper.xml
在这里插入图片描述
二.添加依赖
我们通过Maven,配置pom.xml,在下添加如下代码即可

```bash
  <dependencies>
  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>3.8.1</version>
    <scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.15</version>
</dependency>
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.2.8</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.google.protobuf/protobuf-java -->
<!-- https://mvnrepository.com/artifact/com.google.protobuf/protobuf-java -->
<dependency>
    <groupId>com.google.protobuf</groupId>
    <artifactId>protobuf-java</artifactId>
    <version>3.7.1</version>
</dependency>
</dependencies>

依赖添加好后在Maven Dependencies下出现下图的jar包,其中mybatis就是一个jar包,引用即可。
在这里插入图片描述

常见问题
1.Caused by: java.sql.SQLException: Unknown system variable ‘query_cache_size’…,当前我的mysql的版本是8.0.17,mysql驱动版本较低,使用maven更换8.0版的驱动即可解决
2.pox.xml文件报错,Failure to transfer com.google.protobuf:protobuf-java:jar:3.6.1… ,用maven重新安装一个protobuf即可,我引入了一个3.7.1的protobuf的jar包

三.配置全局配置文件(mybatis-config.xml)

```bash
<?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>
	<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
	<property name="url" value="jdbc:mysql://localhost/javateam?useUnicode=true&amp;characterEncoding=utf-8&amp;allowMultiQueries=true;useSSL=false"/>
	<property name="username" value="root"/>
    	<property name="password" value="123"/>
   </properties>

   <!-- 环境,可以配置多个,default:指定采用哪个环境 -->
   <environments default="test">
      <!-- id:唯一标识 -->
      <environment id="test">
         <!-- 事务管理器,JDBC类型的事务管理器 -->
         <transactionManager type="JDBC" />
         <!-- 数据源,池类型的数据源 -->
         <dataSource type="POOLED">
            <property name="driver" value="com.mysql.cj.jdbc.Driver" />
            <property name="url" value="jdbc:mysql://localhost/javateam?useSSL=false&amp;serverTimezone=UTC&amp;characterEncoding=utf-8" />
            <property name="username" value="root" />
            <property name="password" value="123" />
         </dataSource>
      </environment>
      <environment id="development">
         <!-- 事务管理器,JDBC类型的事务管理器 -->
         <transactionManager type="JDBC" />
         <!-- 数据源,池类型的数据源 -->
         <dataSource type="POOLED">
            <property name="driver" value="${driver}" /> <!-- 配置了properties,所以可以直接引用 -->
            <property name="url" value="${url}" />
            <property name="username" value="${username}" />
            <property name="password" value="${password}" />
         </dataSource>
      </environment>
   </environments>
  </configuration>

四.配置Map.xml(MyMapper.xml)

```bash
<?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:命名空间,随便写,一般保证命名空间唯一 -->
<mapper namespace="MyMapper">
   <!-- statement,内容:sql语句。id:唯一标识,随便写,在同一个命名空间下保持唯一
      resultType:sql语句查询结果集的封装类型,tb_user即为数据库中的表
    -->
   <select id="selectUser" resultType="com.gliet.edu.cn.User">
      select * from tb_user where id = #{id}
   </select>
</mapper>

五.修改全局配置文件(mybatis-config.xml),在下图的位置加入代码:
在这里插入图片描述

```bash
   <mappers>
     <mapper resource="mappers/MyMapper.xml" />
   </mappers>

六.在src/main/java里些两个类,MybatisTest和User
MybatisTest.java

```bash
package com.gliet.edu.cn;

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;

public class MybatisTest {
   public static void main(String[] args) throws Exception {
      // 指定全局配置文件
      String resource = "mybatis-config.xml";
      // 读取配置文件
      InputStream inputStream = Resources.getResourceAsStream(resource);
      // 构建sqlSessionFactory
      SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
      // 获取sqlSession
      SqlSession sqlSession = sqlSessionFactory.openSession();
      try {
         // 操作CRUD,第一个参数:指定statement,规则:命名空间+“.”+statementId
         // 第二个参数:指定传入sql的参数:这里是用户id
         User user = sqlSession.selectOne("MyMapper.selectUser",1);
         System.out.println(user);
      } finally {
         sqlSession.close();
      }
   }
}

User.java

```bash
package com.gliet.edu.cn;
import java.text.SimpleDateFormat;
import java.util.Date;

public class User {
    private String id;
    private String userName;
    private String password;
    private String name;
    private Integer age;
    private Integer sex;
    private Date birthday;
    private String created;
    private String updated;

    public String getId() {
        return id;
    }

    public void setId(String 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 getName() {
        return name;
    }

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

    public Integer getAge() {
        return age;
    }

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

    public Integer getSex() {
        return sex;
    }

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

    public Date getBirthday() {
        return birthday;
    }

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

    public String getCreated() {
        return created;
    }

    public void setCreated(String created) {
        this.created = created;
    }

    public String getUpdated() {
        return updated;
    }

    public void setUpdated(String updated) {
        this.updated = updated;
    }

    @Override
    public String toString() {
        return "User{" +
                "id='" + id + '\'' +
                ", userName='" + userName + '\'' +
                ", password='" + password + '\'' +
                ", name='" + name + '\'' +
                ", age=" + age +
                ", sex=" + sex +
                ", birthday='" + new SimpleDateFormat("yyyy-MM-dd").format(birthday) + '\'' +
                ", created='" + created + '\'' +
                ", updated='" + updated + '\'' +
                '}';
    }
}

然后点击运行调试,即可的到以下结果,恭喜你成功了
在这里插入图片描述

后记

两个配置文件MyMapper.xml和mybatis-config.xml很重要。在MyMapper.xml中写sql语句,resultType一般为我们自己定义的entity类。在mybaties-config.xml对properties进行配置,配置中一定要确定自己的端口号,数据库名称和用户名和密码

参考文献

mybatis实战详细解析

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值