Mybatis学习01--环境搭建和第一个程序

简介

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

官网:https://mybatis.org/mybatis-3/zh/getting-started.html

环境搭建

MySQL

https://www.mysql.com/

MySQL安装目录下 my.ini 文件

[mysqld]
#设置3306端口号
port=3306
#设置MySQL的安装目录
basedir=D:\MySQL\mysql-8.0.22-winx64\mysql-8.0.22-winx64
#设置MySQL数据库的数据存放目录
datadir=D:\MySQL\mysql-8.0.22-winx64\mysql-8.0.22-winx64\data
#运行最大连接数
max_connections=200
#运行连接失败的次数。这也是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
#服务端使用的字符集默认为utf-8
character-set-server=utf8
#设置时区
default-time_zone='+08:00'

[mysql]
#客户端使用的字符集默认为utf8
default-character-set=utf8
[client]
#客户端默认端口号为3306
port=3306

添加环境变量

安装

mysqld --install

初始化

mysqld --initialize-insecure --user=mysql

登录

mysql -uroot -p

修改密码

ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

刷新权限

flush privileges;

重启

net stop mysql
net start mysql

SQLyog 数据库可视化工具

https://sqlyog.en.softonic.com/download

Mybatis

maven添加依赖 pom.xml文件中:

<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>x.x.x</version>
</dependency>

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>
  <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>
  <mappers>
    <mapper resource="org/mybatis/example/BlogMapper.xml"/>
  </mappers>
</configuration>

第一个程序

创建数据库


从SqlSessionFactory中获取SqlSession
public class MybatisUtil {

    private static SqlSessionFactory sqlSessionFactory;

    static {
        try {
            String resource = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    //获取SqlSession连接
    public static SqlSession getSession() {
        return sqlSessionFactory.openSession();
    }
}

利用SqlSession完成查询操作
        SqlSession session= MybatisUtil.getSession();
        UserMapper mapper=session.getMapper(UserMapper.class);
        List<User>  users=mapper.selectUser();

SQL查询是如何实现的呢?我们来看mybatis-config.xml文件,XML 配置文件中包含了对 MyBatis 系统的核心设置,包括获取数据库连接实例的数据源(DataSource)以及决定事务作用域和控制方式的事务管理器(TransactionManager)。

<?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"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useUnicode=true&amp;characterEncoding=utf8"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="UserMapper.xml"/>
    </mappers>
</configuration>

mappers 元素则包含了一组映射器(mapper),这些映射器的 XML 映射文件包含了 SQL 代码和映射定义信息。下面是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.tang.UserMapper">
    <select id="selectUser" resultType="com.tang.User">
    select * from user
  </select>
</mapper>

命名空间namespace将映射器的xml文件和接口绑定,在xml文件中可以定义sql语句,注意select id要与绑定的接口的方法一一对应

public interface UserMapper {
    public List<User> selectUser();
}
出现的问题

程序报错:Could not find resource UserMapper.xml 找不到映射器资源文件

原因:

  • 路径不正确

  • maven静态资源过滤问题,在pom.xml添加:

    <build>
            <resources>
                <resource>
                    <directory>src/main/java</directory>
                    <includes>
                        <include>**/*.properties</include>
                        <include>**/*.xml</include>
                    </includes>
                    <filtering>false</filtering>
                </resource>
                <resource>
                    <directory>src/main/resources</directory>
                    <includes>
                        <include>**/*.properties</include>
                        <include>**/*.xml</include>
                    </includes>
                    <filtering>false</filtering>
                </resource>
            </resources>
    </build>
    

参考:
https://blog.csdn.net/qq_33369905/article/details/106647283

posted @ 2020-12-04 16:21  剑意由心  阅读(67)  评论(0)    收藏  举报