Servlet-mybaits(自检的总结)

1. mybatis---->半自动的持久化框架。 持久化:把java中对象和数据库中的表映射起来。---ORM框架。

官方解释:什么是 MyBatis?

MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain Old Java Objects,普通老式 Java 对象)为数据库中的记录。

2. mybatis得入门步骤:

(1)引入mybatis得依赖

<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>x.x.x</version>
</dependency>

(2)在resources包下 创建mybatis的配置文件,如下:

其中有相关优化

<?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="db.properties"/>
    <!--别名设置-->
    <typeAliases>
        <package name="com.ghs.entity"/>
    </typeAliases>
    <plugins>
<!--pageHelper 插件-->
        <plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
    </plugins>

    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC" />
            <!--数据源name对应的值是固定的。 -->
            <dataSource type="POOLED">
                <property name="driver" value="${driverName}" />
                <property name="url" value="${url}" />
                <property name="username" value="${username}" />
                <property name="password" value="${password}" />
            </dataSource>
        </environment>
    </environments>

    <!--引入映射文件-->
    <mappers>
        <mapper resource="mapper/AccountMapper.xml"/>
        <mapper resource="mapper/TblMapper.xml"/>
        <mapper resource="mapper/DeprMapp.xml"/>
    </mappers>
</configuration>

(3)mybatis得映射文件【sql,列和属性之间的映射】


   (4)dao接口

 

 


3. mybatis得crud.

4. mybatis优化---->日志 数据库属性文件  实体类起别名

 

5. mybatis得列名和属性名不一致!(1)查询时为查询得列起别名  (2)使用resultMap

 

6. 联表查询 【1】多对一 <association property="" javaType=""/> 
           【2】一对多 <collection property="" ofType=""/>----->ResultMap 
           
7. 动态sql语句:
      <if test="条件">
      
      <choose>
         <when test=""></when>
         <when test=""></when>
         ...
         <otherwise></otherwise>
      </choose>
      
      <where>
          条件where关键字 并删除第一个and | or
      </where>
      
      <set>
          添加set关键字 并删除最后一个逗号
      </set>
      
      <foreach collection="list array map" item="变量" open="" close="">
      
      <foreach>
      
      <trim>  和where  set
         
      </trim>

8. sql片段
     <sql id="标志">
        查询得列
     </sql>
     
     <select>
        select <include refid="标志"/> from 
     </select>

9. 代码生成器---->生产简单的单表增删改查
   (1)引入jar(依赖)

<dependency>
    <groupId>org.mybatis.generator</groupId>
    <artifactId>mybatis-generator-core</artifactId>
    <version>1.4.0</version>
</dependency>


   (2)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>
    <!--数据库驱动包所在的路径 我建议写成绝对路径-->
    <classPathEntry location="D:\Program Files\MAVEN\repMaven\mysql\mysql-connector-java\8.0.26/mysql-connector-java-8.0.26.jar" />


    <context id="DB2Tables" targetRuntime="MyBatis3">
        <!--注释的生成-->
        <commentGenerator>
            <property name="suppressAllComments" value="true" />
        </commentGenerator>
        <!--数据库连接信息-->
        <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/restrant?serverTimezone=Asia/Shanghai"
                        userId="root"
                        password="123456">
        </jdbcConnection>

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

        <!--生成的实体类所在的包-->
        <javaModelGenerator targetPackage="com.ghs.entity" targetProject="./src/main/java">
            <property name="enableSubPackages" value="true" />
            <property name="trimStrings" value="true" />
        </javaModelGenerator>

        <!--映射文件存在目录-->
        <sqlMapGenerator targetPackage="mapper"  targetProject="./src/main/resources">
            <property name="enableSubPackages" value="true" />
        </sqlMapGenerator>

        <!--dao接口所在的包-->
        <javaClientGenerator type="XMLMAPPER" targetPackage="com.ghs.dao"  targetProject="./src/main/java">
            <property name="enableSubPackages" value="true" />
        </javaClientGenerator>
        <!--表
              schema:表所在的数据库
              tableName:表名
              domainObjectName:实体类得名称
        -->
        <table schema="mybatis02" tableName="tbl_emp" domainObjectName="Emp"
               enableDeleteByExample="false"
               enableSelectByExample="false"
               enableUpdateByExample="false"
               enableCountByExample="false"/>

        <table schema="mybatis02" tableName="tbl_dept" domainObjectName="Dept"
               enableDeleteByExample="false"
               enableSelectByExample="false"
               enableUpdateByExample="false"
               enableCountByExample="false"/>



    </context>
</generatorConfiguration>


    (3) 测试生成

 public static void main(String[] args)throws Exception {
        List<String> warnings = new ArrayList<String>();
        boolean overwrite = true;
        File configFile = new File("generator-mybatis.xml");
        ConfigurationParser cp = new ConfigurationParser(warnings);
        Configuration config = cp.parseConfiguration(configFile);
        DefaultShellCallback callback = new DefaultShellCallback(overwrite);
        MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
        myBatisGenerator.generate(null);

    }


    
10. 分页插件---PageHelper
     (1)引入jar包(依赖)

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>5.1.11</version>
</dependency>


     (2)配置文件引入PageHelper的插件


     (3)使用 PageHelper.startPage(page,pageSize);
            查询
            封装到 PageInfo

 

 


11. mybatis一级【开启基于session】和二级缓存[关闭 基于mapper] 序列化

MyBatis一级缓存和二级缓存 - 知乎 (zhihu.com)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值