01-Mybatis之新建项目

标签:ace   值类型   pool   原生态   文件路径   配置到   目录   package   session   

Mybatis之新建项目

1、创建一个普通的Maven项目

2、导入依赖的包(pom.xml)

<!--mybatis-->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.5.2</version>
</dependency>
<!--mysql-->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.16</version>
</dependency>

3、配置资源路径(pom.xml中配置)

此步骤能够使Mapper.xml被正确读取(Maven项目会默认将除了resources目录下其他文件夹下的资源文件过滤掉),如果没有此步骤,需要将Mapper.xml配置到resources目录下

检查程序运行之后的target文件夹下的classes目录下有无配置文件若配置成功,代码运行之后target文件夹下不会将资源文件过滤掉

技术图片

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

4、创建Mybatis核心配置文件----在src目录下创建mybatis.xml文件(名字自定义)

xml文件代码:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>
    <!--引入db.properties文件,里面有数据库连接的信息-->
    <properties resource="db.properties"/>
    <!--起别名,起别名的主要作用就是简化mapper.xml文件中resultType值的简化-->
    <!--未起别名时Mapper.xml中resultType="com.whether.pojo.User",起别名resultType="User"(结合后面第六步查看)-->
    <typeAliases>
        <!--两种器别名的方法-->
        <!--指定包+类,给一个类起别名-->
        <!--<typeAlias type="com.whether.pojo.User" alias="User"/>-->
        <!--指定包,给一个包下的所有类起别名,起的别名就是该类的类名-->
		<package name="com.whether.pojo"/>
    </typeAliases>
    <!--default引用environment的id,当前所使用的环境-->
    <environments default="default">
        <!--声明可使用的环境-->
        <environment id="default">
            <!--使用原生态的JDBC事务,session需要进行提交(session.commit()-->
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
		<!--映射文件路径-->
        <mapper resource="com/whether/mapper/UserMapper.xml"/>
        <!--将包内的映射器!接口!实现全部注册为映射器-->
        <!--<package name="com.whether.mapper"/>-->
    </mappers>
</configuration>

5、创建实体类(pojo),与数据库的字段对应

package com.whether.pojo;
/**
 * 用户类
 */
public class User {
    /** 主键编号 */
    private Integer uid;
    /** 用户名 */
    private String username;
    /** 密码 */
    private String password;
}

6、编写mapper接口以及映射文件

//mapper接口定义了有什么方法,不用写这个方法具体干什么,只要告诉需要有什么方法
public interface UserMapper {
    List<User> findAll();
}
<!--映射文件定义了mapper接口的方法执行什么具体的sql语句-->
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace:理解成实现类的全路径,会将这个类与这个映射文件进行绑定,用于后期进行代理-->
<mapper namespace="com.whether.mapper.UserMapper">
    <!--id:方法名
        resultType:返回值类型
        parameterType:定义参数类型
        里面写sql语句
        如果返回值为list,在resultType中写的List的泛型,因为mybatis对jdbc封装,一行一行读取数据
    -->
    <select id="findAll" resultType="com.whether.pojo.User" >
        select * from user
    </select>
</mapper>

通过mapper我们描写了我们需要干什么,映射文件中告诉了我们某个mapper接口的方法具体需要干什么,这时候Mybatis的作用就是通过代理Mapper,将需要干什么和具体干什么联系起来

7、编写service

4.1创建对应的service接口
4.2创建对应的serviceimpl类,继承service接口并调用mapper进行数据交互
public class UserServiceImpl implements UserService {
    @Override
    public List<User> showAll() throws IOException {
        // 加载mybatis.xml配置文件
        InputStream inputStream = Resources.getResourceAsStream("mybatis.xml");
        // 将加载后的配置信息传入SqlSession构建工厂,构建出一个SqlSession工厂,在这里会将Mapper进行注册,注册了之后可以通过Mapper代理工厂获取代理实现类
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        // 从SqlSession工厂中实例化出一个SqlSession(打开一个Sql会话)
        SqlSession session=sqlSessionFactory.openSession();
        // 从session中获取到Mapper接口的代理实现类
        UserMapper userMapper = session.getMapper(UserMapper.class);
        // 执行代理实现类的selectAll()方法
        List<User> userList = userMapper.selectAll();
        session.close();
        return list;
    }
}

01-Mybatis之新建项目

标签:ace   值类型   pool   原生态   文件路径   配置到   目录   package   session   

原文地址:https://www.cnblogs.com/whether/p/14165110.html

版权声明:完美者 发表于 2020-12-25 12:17:06。
转载请注明:01-Mybatis之新建项目 | 完美导航

暂无评论

暂无评论...