MyBatis框架的配置及简单使用

我们知道MyBatis主要是为了方便我们与数据库进行连接,更方便快捷的实现增删改查操作。

另外,在使用MyBatis框架时,很多时候我们使用的是动态代理的模式来实现的。也就是说,mapper文件通常会放到java目录下,而并不是resource目录之下。

所以在pom文件中需要配置的主要有:

        mysql的依赖项、mybatis的依赖项、属性文件的路径

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

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

核心文件SqlMapConfig的配置:

<!--表头-->
<?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>
        <!--读取属性文件 
            resource: 在resource下查找
            url:通过绝对路径查找-->
    <properties resource="jdbc.properties"></properties>
        <!--配置数据库的环境变量,mybatis的核心配置-->
        <!--default 使用下面environment 的 id属性值对应的配置-->
    <environments default="local">
        <!--id 自主命名,方面在不同情况下选择不同的环境变量配置-->
        <environment id="local">

            <!--事务管理控制器配置。
                JDBC:事务的管理交给程序员处理
                MANAGED: 由容器(Spring)来管理事务-->
            <transactionManager type="JDBC"></transactionManager>

            <!--配置数据源    JNDI:服务器端进行数据库连接池的管理
                            POOLED:使用数据库连接池
                            UNPOOLED:不使用数据库连接池-->
            <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>

    <!--注册mapper,一般使用package的方式-->
    <mappers>
        <package name="com.zxf.mapper"/>
    </mappers>
</configuration>

 使用动态代理来实先MyBatis框架访问的几个规范:

  1. xxxMapper.xml和xxxMapper.java的接口必须在同一个目录下;
  2. xxxMapper.xml和xxxMapper.java文件名必须一致;
  3. xxxMapper.xml中标签的id值需要和xxxMapper接口中的方法名一致;
  4. parameterType的属性值和接口中方法的参数类型一致(除实体类型外可省略);
  5. resultType的属性值和接口中方法的返回值类型一致
  6. xxxMapper.xml中的namespace属性必须是接口的完全限定名称
  7. 在SqlMapConfig中注册mapper时,使用class或者package,需要是所在位置的完全限定名称。(class=具体到文件,package到文件所在包)

代码实现的一般步骤:

  1. 读取核心配置文件
  2. 创建SqlSessionFactory对象
  3. 获取SqlSession
  4. 执行mapper中对应的sql语句
  5. 关闭sqlSession
    public void testSelectList() throws IOException {
        //读取核心配置文件
        InputStream in = Resources.getResourceAsStream("SqlMapConfig.xml");
        //创建SqlSessionFactory对象
        SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
        //取出sqlSession, 默认手动提交,传入true的话自动提交
        SqlSession session = factory.openSession();
        //执行sql语句
        List<Employee> list = session.selectList("zxf.getEMP");
        //关闭session
        session.close();
        list.forEach(System.out::println);
    }

测试可以使用junit中的@BeforeEach和@AfterEach将重复的代码提取,实现复用!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值