• 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:javacodemybatismybatis_para_res_configsrcmain
    esources/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:javacodemybatismybatis_para_res_configsrcmain esourcescomcongmapperAccountMapper.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

    爱生活,爱码字

    我是匆匆、我曾喂自己半年酒。

    好好生活吧,有缘或许相见。

  • 相关阅读:
    解决bash: less: command not found
    IDEA-相关插件使用
    如何理解多租户架构?
    mybatis自动生成model、dao及对应的mapper.xml文件
    IDEA设置提示生成序列化ID
    [DUBBO] qos-server can not bind localhost:22222错误解决
    @NotNull,@NotEmpty,@NotBlank区别
    (三)IDEA使用,功能面板
    PHP实现自己活了多少岁
    使用PHP函数输出前一天的时间和后一天的时间
  • 原文地址:https://www.cnblogs.com/ccoonngg/p/11300906.html
Copyright © 2020-2023  润新知