SSM之MyBatis系列(二)---- Mybatis的环境搭建

新建项目

首先创建一个新的项目
在这里插入图片描述
选择Maven,然后一直下一步就行。
在这里插入图片描述

至于对Maven的知识,大家不懂的可以去找找资料来看看,我要发表的话,只能等我把SSM系列的洗完才会发。

新建完成之后:
在这里插入图片描述

创建 Maven 项目,导入相关依赖( pom.xml)

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>MyBatis</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>
        <!-- 导入依赖 -->
        <dependencies>
            <!-- mybatis -->
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
                <version>3.4.5</version>
            </dependency>
            <!-- 数据库驱动 -->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>8.0.20</version>
                <scope>runtime</scope>
            </dependency>
            <!-- 日志 -->
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>1.2.17</version>
            </dependency>
            <!-- JUnit -->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.11</version>
                <scope>test</scope>
            </dependency>
        </dependencies>
</project>

导入依赖的时候可能会出现的问题

大家可以去看看我这篇文章,因为我也出错了。传送门

新建数据库和表

-- 创建数据库
CREATE DATABASE IF NOT EXISTS db_mybatis CHARACTER SET utf8;
-- 创建数据表
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `id` int(11) NOT NULL auto_increment,
  `username` varchar(32) NOT NULL COMMENT '用户名称',
  `birthday` datetime default NULL COMMENT '生日',
  `sex` char(1) default NULL COMMENT '性别',
  `address` varchar(256) default NULL COMMENT '地址',
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- 添加记录
insert  into `user`(`id`,`username`,`birthday`,`sex`,`address`) values (41,'老王','2018-02-27 17:47:08','男','广东广州'),(42,'张三','2018-03-02 15:09:37','女','广东深圳'),(43,'李四','2018-03-04 11:34:34','女','广东佛山'),(45,'小二','2018-03-04 12:04:06','男','广东茂名'),(46,'老王','2018-03-07 17:37:26','男','广东珠海'),(48,'王五','2018-03-08 11:44:00','女','广东惠州');

在这里插入图片描述

新建实体类User

注意:实体类属性名与数据库表字段名保持一致

package com.Domain;

import javafx.scene.chart.PieChart;
import javafx.scene.chart.XYChart;
import java.io.Serializable;
import java.util.Date;

/**
 * @author zhang
 */
public class User implements Serializable {
    
    
    private Integer id;
    private String username;
    private Date birthday;
    private String sex;
    private String address;

    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 Date getBirthday() {
    
    
        return birthday;
    }

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

    public String getSex() {
    
    
        return sex;
    }

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

    public String getAddress() {
    
    
        return address;
    }

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

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

创建实体类的持久层接口

package com.Dao	;

import com.Doamin.User;
import java.util.List;

/**
 * @author zhang
 * 用户的持久层接口
 */
public interface UserDao {
    
    
    //查询所有操作
    List<User> findAll();
}

新建接口的映射文件

在resource下新建UserDao.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.Dao.UserDao">
        <!-- 配置查询所有   -->
    <select id="findAll">
        select * from user
    </select>
</mapper>

上面的id属性并不是随便取的,得要和你对应的接口的方法名一致

编写 Mybatis 的主配置文件

同样是在resource下新建SqlMapConfig.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">
<!--MyBatis的主配置文件-->
<configuration>
<!--  配置环境  -->
    <environments default="mysql">
        <!-- 配置MySQL的环境 -->
        <environment id="mysql">
        <!-- 配置事务类型 -->
            <transactionManager type="JDBC"></transactionManager>
            <!-- 配置数据源(连接池) -->
            <dataSource type="POOLED">
            <!-- 配置数据库的基本信息 -->
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis?serverTimezone=UTC&amp;characterEncoding=utf-8"/>
                <property name="username" value="root"/>
                <property name="password" value="7107883"/>
            </dataSource>
        </environment>
    </environments>

<!--  指定映射配置文件的位置,映射配置文件指的是每个Dao独立配置的文件  -->
    <mappers>
        <mapper resource="com/Dao/UserDao.xml"/>
    </mappers>
</configuration>

最后的结构图如下:
在这里插入图片描述

总结:

MyBatis的环境搭建主要分为四步:

  1. 创建Maven工程并导入依赖
  2. 创建实体类和Dao的接口
  3. 创建MyBatis的主配置文件:SqlMapConfig.xml
  4. 创建映射配置文件:UserDao.xml

注意事项:

  • 在 Mybatis 中,持久层的操作接口名称和映射文件也叫 Mapper ,所以 UserMapper 和 UserDao 是一样的

  • MyBatis的映射配置文件位置必须和Dao接口的包结构相同。(如图)
    在这里插入图片描述

  • 映射配置文件的 mapper 标签 namespace 属性的取值必须是 DAo接口的全限定类名

  • 映射配置文件的操作配置(select),id 属性的取值必须是 Dao接口的方法名

我们注意这些有什么好处呢?
当我们遵从上面这些注意事项之后,我们在开发中就无须在写Dao的实现类

环境搭建好之后,就进入入门案例和自定义mybatis框架了

猜你喜欢

转载自blog.csdn.net/weixin_43844418/article/details/112703813