Mybatis的简单配置和使用

本片文章是为了防止我忘记和快速配置写下的。

第一步在pom.xml中添加依赖:

<!--mysql的驱动-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.49</version>
        </dependency>
        <!--mybatis-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.1.2</version>
        </dependency>

第二部配置mybatis的核心文件:

<?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>
    
    <typeAliases>
        <typeAlias alias="UserDao" type="com.zengbo.Dao.UserMapper"/>
        <typeAlias alias="User" type="com.zengbo.pojo.User"/><!--起一个别名减少
冗余-->
    </typeAliases>


    <environments default="development"><!--想要使用那个环境就在default中写id-->
        <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/cs1?useSSL=true&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
               <!-- 在xml中写&符号需要进行转义写成&amp;-->
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <!--这是告诉Mybatis区哪找持久化类的映射文件,对于在src下的文件直接写文件名,
            如果在某包下,则要写明路径,如:com/mybatistest/config/User.xml-->
        <mapper resource="com/zengbo/Dao/UserMapper.xml"></mapper>
    </mappers>

</configuration>

也可使用引入外部文件的方式给driver、url、username、password赋值如:

需要创建xxx.properties文件,例如:

<?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="connectionDB.properties">
        <property name="username" value="root"/>
        <property name="password" value="123456"/>
    </properties>
    <typeAliases>
        <typeAlias alias="UserDao" type="com.zengbo.Dao.UserMapper"/>
        <typeAlias alias="User" type="com.zengbo.pojo.User"/><!--起一个别名降低冗余-->
    </typeAliases>


    <environments default="development"><!--想要使用那个环境就在default中写id-->
        <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>
        <!--这是告诉Mybatis区哪找持久化类的映射文件,对于在src下的文件直接写文件名,
            如果在某包下,则要写明路径,如:com/mybatistest/config/User.xml-->
        <mapper resource="com/zengbo/Dao/UserMapper.xml"></mapper>
    </mappers>

</configuration>

第三步获取映射器实例

public class GetSqlsession {
   private static SqlSessionFactory sqlSessionFactory;
   static {

        try {
            String resource = "mybatis-config.xml";//这里是配置的mybatis的核心配置文件
            InputStream  inputStream = Resources.getResourceAsStream(resource);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
       } catch (IOException e) {
           e.printStackTrace();
       }

   }

   public static SqlSession getSqlSession(){
       return sqlSessionFactory.openSession();
   }
}

 第四步编写动态sql

<?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.xxx.Dao.UserMapper"><!--要写全限定名-->
    

    <select id="getUserList" resultType="com.xxx.xxx.User"><!--id是UserMapper的方法名 resultType要写返回类型的全限定名-->
        select * from user;
    </select>


</mapper>

第五步测试

@Test
    public void test(){
        SqlSession sqlsession = GetSqlsession.getSqlSession();

        UserMapper mapper = sqlsession.getMapper(UserMapper.class);
        List<User> userList = mapper.getUserList();
        for (User user:userList){
            System.out.println(user);
        }

            sqlsession.close();

    }

注意:

报错:Invalid bound statement (not found):( .xml文件)

在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>

这样就好了。

更多详细配置请参考:mybatis – MyBatis 3 | 简介

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值