myBatis笔记(第二部分)

前言

对于上次笔记我个人认为不够直观,不能够达到很好的观看效果,加上之前笔记做的有点久了,自己也有点忘记,这次的笔记我打算重新整理,让这次的笔记整理的能够更加的透彻。

myBatis的入门

1.需要的预备知识

1.对java的jdbc能够熟练掌握
2.接触过dao层(持久层)封装,也应该熟练掌握,这样会更好的理解(因为尝试过写dao的痛苦后才能知道myBatis的甜头,以及为什么要这么做)
3.对三层有一定的了解(这个不一定要知道,不影响学习myBatis,但是现在开发模式都是这样,不知道也得知道)
4.至少了解mysql数据库,对sql语句能够熟练掌握(说实话不知道数据库,这个框架没有理由学下去,因为这个框架就是封装了对数据的持久化,让程序与数据库交互更加便捷与方便)

说实话上面的几点只要知道最后一点,花点时间也不是不可能掌握的。

2.需要准备的文件

1.需要的jar包有以下三个
	log4j.jar(不要也可以跑,建议加上只有好处没坏处)
	mybatis-3.x.x.jar
	mysql-connector-java-5.1.x.jar
2.需要的xml文件有如下
	log4j.xml
	mybatis-config.xml
	xxxMapper.xml(该文件用来写sql映射接口方法,可自定义名称)

有了以上准备就可以着手学习myBatis了

mysql-config.xml文件介绍

我不会把该配设文件的全部信息列出来,我只把关键主要的结构一一介绍
1.configuration:

<configuration>..</configuration><!--这里是该配设文件的"总管",相当于html的<html>标签-->

2.properties:

<properties>
	<property name="driver" value="com.mysql.jdbc.Driver" />
    <property name="url" value="jdbc:mysql://localhost:3306/test" />
    <property name="username" value="root" />
    <property name="password" value="root" />
</properties>

3.environment、transactionManager、dataSource

<environment id="mysql">
    <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>

以上就是对数据库连接信息的一个配设文件的基本设置了,我们看到第一个节点properties的四个子节点的name分别是数据库连接信息的四个必要信息:driver、url、username、password, 在这之后连接信息就已经配设好了,之后再用environment下的dataSource对连接池进行动态配设,可以把environment看成是一个环境,环境的id是mysql,下面的transactionManager则为事务,其中的type则是jdbc事务类型。最后可以看到最重要的dataSource节点,这个是获取连接的信息的主要节点,通过property标签value的${driver}的形式获取name为driver的value,其中的type属性可以为UNPOOLED、POOLED、JNDI,这里用的是POOLED,是使用mybatis框架自己的连接池,就不一一介绍每个的意思了。
这里还可以通过properties标签的resource属性导入.properties文件来实现

<properties resource="config/database.properties"></properties>

 <environments default="mysql">
        <environment id="mysql">
            <!--指定事务管理的类型,这里简单使用Java的JDBC的提交和回滚设置-->
            <transactionManager type="JDBC"></transactionManager>
            <!--dataSource 指连接源配置,POOLED是JDBC连接对象的数据源连接池的实现-->
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"></property>
                <property name="url" value="${url}"></property>
                <property name="username" value="${username}"></property>
                <property name="password" value="${password}"></property>
            </dataSource>
        </environment>
    </environments>

4.mappers、mapper、package

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

需要注意的是包下的xml映射文件需要放在与接口同一包下,如果不是放在包下,那么config文件夹必须和src同级,这里说的映射文件会在我的下一篇文章中介绍,希望能够帮助到大家,谢谢。

<?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="config/database.properties"></properties>
    <!--环境配置,连接的数据库,这里使用的是MySQL-->
    <environments default="mysql">
        <environment id="mysql">
            <!--指定事务管理的类型,这里简单使用Java的JDBC的提交和回滚设置-->
            <transactionManager type="JDBC"></transactionManager>
            <!--dataSource 指连接源配置,POOLED是JDBC连接对象的数据源连接池的实现-->
            <dataSource type="POOLED">
                <property name="driver" value="${driver}"></property>
                <property name="url" value="${url}"></property>
                <property name="username" value="${username}"></property>
                <property name="password" value="${password}"></property>
            </dataSource>
        </environment>
    </environments>
    <mappers>        <!--这是告诉Mybatis区哪找持久化类的映射文件,对于在src下的文件直接写文件名,            如果在某包下,则要写明路径,如:com/mybatistest/config/User.xml-->
        <!--mapper resource="ProviderMapper.xml"></mapper-->
        <package name="com.supermarket.dao"/>
    </mappers>
</configuration>

以上是我配的一个完整xml代码

如果需要资料可以联系我的邮箱:[email protected]

猜你喜欢

转载自blog.csdn.net/qq_43538697/article/details/108219327