mybatis逆向工程随笔

mybatis框架简介和简单原理:

  mybatis本来是apache的一个开源的项目,后来迁移到了google,并且改名为mybatis。

mybatis框架优点:

  1、mybatis是最简单的持久化框架,和hibanate相比容易学习。

  2、mybatis框架比较灵活,SQL语句直接写在XML文档里面,也就是从程序代码中分离出来了,降低了程序的耦合性。

  3、提供映射标签,支持对象与数据库的ORM字段关系映射。(要理解

  4、提供XML标签,支持编写动态SQL语句。(要理解

mybatis框架缺点:

  1、SQL语句编写工作量比较大,尤其是多表关联的时候,这个对开发人员的SQL功底也算是一种考验吧。

  2、二级缓存机制不算是很完善。(要理解

  3、本人认为,mybatis框架的优点,也算是mybatis框架的缺点,为什么要这么说呢,mybatis框架的优点就是灵活、方便修改SQL语句,而反过来更多的是依赖于程序员对SQL语句的使用水平上了。这也是仁者见仁智者见智,至少我是这么认为的。

mybatis框架适用场合:

  1、适用于那种需求变化相对较多的项目。

mybatis框架简单的原理:

 

原理详解:

        MyBatis应用程序根据XML配置文件创建SqlSessionFactory,SqlSessionFactory在根据配置,配置来源于两个地方,一处是配置文件,一处是Java代码的注解,获取一个SqlSession。SqlSession包含了执行sql所需要的所有方法,可以通过SqlSession实例直接运行映射的sql语句,完成对数据的增删改查和事务提交等,用完之后关闭SqlSession。

 

Config.xml配置文件:

 未完待续。。。。

主要概述:

  主要就是GeneratorSqlmap.java和generatorConfig.xml这两个文件。

  GeneratorSqlmap.java文件是负责启动逆向工程的,里面的代码不需要记,直接去官网粘贴复制就好。

  generatorConfig.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>
    <context id="testTables" targetRuntime="MyBatis3">
        <commentGenerator>
            <!-- 是否去除自动生成的注释 true:是 : false:否 -->
            <property name="suppressAllComments" value="true" />
        </commentGenerator>
        <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
            connectionURL="jdbc:mysql://localhost:3306/mybaits" userId="root"
            password="root">
        </jdbcConnection>
        <!-- <jdbcConnection driverClass="oracle.jdbc.OracleDriver"
            connectionURL="jdbc:oracle:thin:@127.0.0.1:1521:yycg" 
            userId="yycg"
            password="yycg">
        </jdbcConnection> -->

        <!-- 默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer,为 true时把JDBC DECIMAL 和 
            NUMERIC 类型解析为java.math.BigDecimal -->
        <javaTypeResolver>
            <property name="forceBigDecimals" value="false" />
        </javaTypeResolver>

        <!-- targetProject:生成PO类的位置 -->
        <javaModelGenerator targetPackage="cn.itcast.ssm.po"
            targetProject=".src">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
            <!-- 从数据库返回的值被清理前后的空格 -->
            <property name="trimStrings" value="true" />
        </javaModelGenerator>
        <!-- targetProject:mapper映射文件生成的位置 -->
        <sqlMapGenerator targetPackage="cn.itcast.ssm.mapper" 
            targetProject=".src">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
        </sqlMapGenerator>
        <!-- targetPackage:mapper接口生成的位置 -->
        <javaClientGenerator type="XMLMAPPER"
            targetPackage="cn.itcast.ssm.mapper" 
            targetProject=".src">
            <!-- enableSubPackages:是否让schema作为包的后缀 -->
            <property name="enableSubPackages" value="false" />
        </javaClientGenerator>
        <!-- 指定数据库表 -->
        <table tableName="items"></table>
        <table tableName="orders"></table>
        <table tableName="orderdetail"></table>
        <table tableName="user"></table>
        <!-- <table schema="" tableName="sys_user"></table>
        <table schema="" tableName="sys_role"></table>
        <table schema="" tableName="sys_permission"></table>
        <table schema="" tableName="sys_user_role"></table>
        <table schema="" tableName="sys_role_permission"></table> -->
        
        <!-- 有些表的字段需要指定java类型
         <table schema="" tableName="">
            <columnOverride column="" javaType="" />
        </table> -->
    </context>
</generatorConfiguration>
原文地址:https://www.cnblogs.com/tidhy/p/6870385.html