mybatis框架学习-配置文件

结构图,顺序不能改变

(最底下有文档连接,超级详细,有点不想搬运)

大致说一下常用的吧

1.Properties(属性) 

可以在标签内部配置连接数据库的信息。常用通过属性引用外部配置文件信息

 2.typeAliases(类型别名) 

类型别名是为 Java 类型设置一个短的名字。 它只和 XML 配置有关,存在的意义仅在于用来减少类完全限定名的冗余。

有两种用法,1是单一起别名,2是为整个包起别名

另外,mybatis为常见的 Java 类型建立很多相应的类型别名。它们都是不区分大小写的,详细看文档

3.环境配置(environments)

MyBatis可以配置多个环境。这可以帮助你SQL映射对应多种数据库等。
比如说,你想为开发、测试、发布产品配置不同的环境。等等。
不过,值得咱们注意的是:虽然你可以配置多重环境,但是你只可以选择一对一的SqlsessionFactory实例。
例如: 用environment 的id属性来标识,然后environments 的default指定

环境里面要配置

事务管理器(transactionManager):在 MyBatis 中有两种类型的事务管理器(也就是 type=”[JDBC|MANAGED]”)

数据源(dataSource):有三种内建的数据源类型(也就是 type=”[UNPOOLED|POOLED|JNDI]”):

具体看文档(底下连接)

4.Mappers (映射器) 

既然 MyBatis 的行为已经由上述元素配置完了,我们现在就要定义 SQL 映射语句了。

但是首先我们需要告诉 MyBatis 到哪里去找到这些语句。

Java 在自动查找这方面没有提供一个很好的方法,所以最佳的方式是告诉 MyBatis 到哪里去找映射文件。

你可以使用相对于类路径的资源引用, 或完全限定资源定位符(包括 file:/// 的 URL),或类名和包名等。

具体看文档

以上这些配置会告诉了 MyBatis 去哪里找映射文件,剩下的细节就应该是每个 SQL 映射文件了,也就是接下来我们要讨论的。

个人的配置

<?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属性: 常用的
            用于指定配置文件的位置,是按照类路径的写法来写,并且必须存在于类路径下。
        url属性:
            是要求按照Url的写法来写地址
            URL:Uniform Resource Locator 统一资源定位符。它是可以唯一标识一个资源的位置。
            它的写法:
                http://localhost:8080/mybatisserver/demo1Servlet
                协议      主机     端口       URI

            URI:Uniform Resource Identifier 统一资源标识符。它是在应用中可以唯一定位一个资源的。
    -->
    <properties resource="db.properties">
    <!--<properties url="file:///D:\java\code\mybatis\mybatis_para_res_config\src\main\resources/db.properties">-->
        <!-- 
      <property name="driver" value="com.mysql.jdbc.Driver"></property> <property name="url" value="jdbc:mysql://localhost:3306/cong"></property> <property name="username" value="root"></property> <property name="password" value="123456"></property>
     --> </properties> <!--使用typeAliases配置别名,它只能配置pojo中类的别名 --> <typeAliases> <!--typeAlias用于配置别名。type属性指定的是实体类全限定类名。alias属性指定别名,当指定了别名就再区分大小写 <typeAlias type="com.cong.pojo.Account" alias="account"></typeAlias>--> <!-- 用于指定要配置别名的包,当指定之后,该包下的实体类都会注册别名,并且类名就是别名,不再区分大小写--> <package name="com.cong.pojo"></package> </typeAliases> <!--配置环境 如果有多个环境,比如mysql,Oracle等--> <environments default="mysql"> <!-- 配置mysql的环境--> <environment id="mysql"> <!-- 配置事务管理 --> <transactionManager type="JDBC"></transactionManager> <!--配置数据源--> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}"></property> <property name="url" value="${jdbc.url}"></property> <property name="username" value="${jdbc.username}"></property> <property name="password" value="${jdbc.password}"></property> </dataSource> </environment> </environments> <!-- 配置映射文件的位置 --> <mappers> <!--<mapper resource="com/cong/mapper/AccountMapper.xml"></mapper>--> <!--<mapper url="file:///D:\java\code\mybatis\mybatis_para_res_config\src\main\resources\com\cong\mapper\AccountMapper.xml"></mapper>--> <!--以下两个需要AccountMapper.class与AccountMapper.xml有相同的目录结构--> <!--<mapper class="com.cong.mapper.AccountMapper"></mapper>--> <!-- package标签是用于指定dao接口所在的包,当指定了之后就不需要在写mapper以及resource或者class了 --> <package name="com.cong.mapper"></package> </mappers> </configuration>

db.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/cong
jdbc.username=root
jdbc.password=123456

 

XML 映射文件

所在文档页:http://www.mybatis.org/mybatis-3/zh/sqlmap-xml.html#Result_Maps

关于AccountMapper.xml中的命名空间namespace,文档这么说

在之前版本的 MyBatis 中,命名空间(Namespaces)的作用并不大,是可选的。 但现在,随着命名空间越发重要,你必须指定命名空间。

命名空间的作用有两个,一个是利用更长的完全限定名来将不同的语句隔离开来,同时也实现了你上面见到的接口绑定。就算你觉得暂时用不到接口绑定,你也应该遵循这里的规定,以防哪天你改变了主意。 长远来看,只要将命名空间置于合适的 Java 包命名空间之中,你的代码会变得更加整洁,也有利于你更方便地使用 MyBatis。

命名解析:为了减少输入量,MyBatis 对所有的命名配置元素(包括语句,结果映射,缓存等)使用了如下的命名解析规则。

  • 完全限定名(比如 “com.mypackage.MyMapper.selectAllThings)将被直接用于查找及使用。
  • 短名称(比如 “selectAllThings”)如果全局唯一也可以作为一个单独的引用。 如果不唯一,有两个或两个以上的相同名称(比如 “com.foo.selectAllThings” 和 “com.bar.selectAllThings”),那么使用时就会产生“短名称不唯一”的错误,这种情况下就必须使用完全限定名。

 

 

MyBatis 的真正强大在于它的映射语句,这是它的魔力所在。由于它的异常强大,映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代码。MyBatis 为聚焦于 SQL 而构建,以尽可能地为你减少麻烦。

主要需要注意的有

1.传入参数的类型

2.输出结果的类型

3.插入数据返回插入数据的id

一些内容上篇博客有提到:https://www.cnblogs.com/ccoonngg/p/11300871.html

 

 参考:https://blog.csdn.net/weixin_40254133/article/details/80615597

文档:http://www.mybatis.org/mybatis-3/zh/configuration.html#properties

posted @ 2019-08-05 08:11  匆匆、  阅读(308)  评论(0编辑  收藏  举报