Mybatis 学习笔记

刚开始学习Mybatis,跟着教程过了一遍知识点,做了一些基本概念性知识的记录,并且每个知识点都敲了代码,保存至此以便日后查阅
摘要由CSDN通过智能技术生成

刚开始学习Mybatis,跟着教程把各个知识过了一遍,每一项知识点都自己写了代码进行验证测试,并且将一些概念性的知识记录下,用于以后查阅。


Mybatis 是一个 数据持久层(ORM)框架。把实体类和SQL语句之间建立了映射关系,是一种 半自动化的ORM实现
Mybatis 将 SQL语句封装在配置文件中,便于统一管理与维护,降低程序的耦合度

Mybatis VS Hibernate


Mybatis
Hibernate
SQL语句映射的框架(工具) 主流ORM框架、提供从POJO到数据库表的全套映射机制
运行期不会自动生成SQL 会自动生成SQL
自动化程度低、手工映射SQL、灵活程度高 自动化程度高、映射配置复杂、api复杂,灵活性低
需要熟练掌握SQL语句 不必关注SQL底层语句开发


Mybatis Generator Mybatis的代码生成器

  • 依赖jar包: mybatis-generator-core-1.3.2.jar、mysql-connector-java-5.0.7-bin.jar

  • 使用指令java -jar mybatis-generator-core-1.3.2.jar -configfile generator.xml -overwrite

  • 配置模板: generator.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
  PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
  "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
        <!-- 驱动jar包,mysql使用mysql-connector-java-5.0.8-bin.jar -->
        <classPathEntry location="mysql-connector-java-5.0.7-bin.jar" />

        <context id="FreeCMS_Tables" targetRuntime="MyBatis3">

                <!-- mysql配置 -->
                <jdbcConnection
                        driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/mybatis_test"
                        userId="root"
                        password="Mj3623811">
                </jdbcConnection>

                <javaTypeResolver>
                        <property name="forceBigDecimals" value="false" />
                </javaTypeResolver>

                <!-- model生成文件的存放位置 -->
                <javaModelGenerator targetPackage="test.model"
                        targetProject="mybatis_study_src">
                        <property name="enableSubPackages" value="true" />
                        <property name="trimStrings" value="true" />
                </javaModelGenerator>

                <!-- sqlmap生成文件的存放位置 -->
                <sqlMapGenerator targetPackage="test.mapping"
                        targetProject="mybatis_study_src">
                        <property name="enableSubPackages" value="true" />
                </sqlMapGenerator>

                <!-- dao生成文件的存放位置 -->
                <javaClientGenerator type="XMLMAPPER"
                        targetPackage="test.dao"
                        targetProject="mybatis_study_src">
                        <property name="enableSubPackages" value="true" />
                </javaClientGenerator>

                <!-- 要生成的表 -->
                <table tableName="user"  domainObjectName="User" enableCountByExample="false" enableUpdateByExample="false"   enableDeleteByExample="false" enableSelectByExample="false"   selectByExampleQueryId="false"></table>

        </context>
</generatorConfiguration>

  •  最终结果:
     


Mybatis 配置数据源——mybatis.xml的配置

Mybatis的XML配置文件包含了设置和影响Mybatis行为的属性,层次结构如下:

-configuration配置
     - properties                               配置文件中属性值
     - settings                                   修改Mybatis运行时的行为方式
     - typeAliases                              为Java类型命名一个短的名字
     - typeHandlers                           类型处理器
     - objectFactory                          对象工厂
     - plugins                                    插件
     -environments                           环境
          - environment                      环境变量
               - transactionManager      事务管理器
               - dataSource                   数据源
     - mappers                                 映射器


1 . properties 
     配置文件中的属性值,可用于在整个文件中使用,通过${ }进行引用
     也可以引入外部定义的文件值
     也可以通过子标签property设置值
<properties resource="com/mybatis/property/jdbc.properties">     <!-- 引入外部文件 -->     
     <property name="username" value="admin" />                  <!-- 通过property标签设置值 -->
     <property name="password" value="admin" />
</property>

     在properties中定义的属性值可以在本文件内任何地方使用 ${ }引用

<dataSource type="POOLED">                                        <!-- 用来演示properties的作用 -->
     <property name="driver" value="${driver}" />                 <!-- 通过${}引用了上面properties定义的属性
     ...
</dataSource>

2 . settings 
     用于设置和改变Mybatis运行中的行为。

设置选项 描述 可用值 默认值
logImpl 指定Mybatis使用的Logging的实现方法 SLF4J | LOG4J | LOG4J2 | JDK_LOGGING | COMMONS_LOGGING | STDOUT_LOGGING | NO_LOGGING
Not Set
cacheEnabled 全局性地启用或禁用所有在mapper配置文件中配置的缓存 true | false true
lazyLoadingEnabled 全局地启用或禁用延迟加载。当禁用时所有关联的配置都会立即加载 true | false true
aggressiveLazyLoading 当为true后,一个有延迟加载属性的对象的任何一个延迟属性被加载时,该对象所有属性都会被加载,否则所有属性是按需加载 true | false true
multipleResultSetsEnabled 允许或禁止从单一的语句返回多个结果集(需要驱动的兼容) true | false true
useColumnLabel 使用列的标签而不是列的名称。ps:不同的驱动程序的实现不同。 true | false true
userGenerateKeys 允许JDBC自动生成主键,true则强行自动生成主键 true | false false
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值