您的当前位置:首页正文

Servlet-mybaits(自检的总结)

2024-11-22 来源:个人技术集锦

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

官方解释:什么是 MyBatis?

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

2. mybatis得入门步骤:

(1)引入mybatis得依赖

(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,列和属性之间的映射】

 

 


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的插件

 


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

显示全文