zoukankan      html  css  js  c++  java
  • mybatis的学习(原理)(一)

    现在开始将我学习到的mybatis的知识保存于此!

    什么叫mybatis?

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

      要使用mybatis首先必须要先导入包,一般导入三个包:mybatis的包、log4j的日志包、数据库连接的包。然后要将log4j的配置文件放在src目录下。log4j.properties的配置文件如下:

    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.Target=System.out
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}  %m%n
    
    
    log4j.appender.file=org.apache.log4j.FileAppender
    log4j.appender.file.File=yc.log
    log4j.appender.file.layout=org.apache.log4j.PatternLayout
    log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}  %l  %m%n
    
    
    log4j.rootLogger=debug, stdout, file

    然后要有mybatis的配置文件---mybatis-config.xml,这个xml文件中主要配置一些数据库连接的信息、是否启用别名(后面几篇博客会讲)和mapper.xml的映射文件路径,具体信息如下:

    例:

    <?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>
    
             <!-- 启动别名 -->
         <typeAliases>
         <!-- 为指定类启动别名,     有局限,如果有很多的类要启用,则要写多条 -->
         <typeAlias type="com.yc.mybatis.Dept" alias="de"/> 
             
             <!-- 为包下面的所有类启用别名,默认为类名-->
             <package name="com.yc.mybatis"/>  
             <!-- 当同时指定两种别名时,会优先使用package创建的别名,可测试证明-->
         </typeAliases>
        <!-- development :说明是开发模式
            work :工作模式
         -->
         <environments default="development">
             <environment id="development">
                 <!-- 事物管理 ,使用jdbc来连接数据库-->
                 <transactionManager type="JDBC"></transactionManager>
                 <!-- 使用连接池 -->
                 <dataSource type="POOLED"><!-- 一些连接属性的配置 -->
                     <property name="driver" value="oracle.jdbc.driver.OracleDriver"/>
                     <property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:orcl"/>
                     <property name="username" value="scott"/>
                     <property name="password" value="a"/>
                 </dataSource>
             </environment>
         </environments>
         
         <mappers>
            <!-- 映射文件路径 -->
            <mapper resource="com/yc/mybatis/DeptMapper.xml"></mapper>
            <mapper resource="com/yc/mybatis/EmpMapper.xml"></mapper>
            <mapper resource="com/yc/mybatis/EmpMapper1.xml"></mapper>
            <mapper resource="com/yc/mybatis/EmpMapper2.xml"></mapper>
            <mapper resource="com/yc/mybatis/DeptMapper3.xml"></mapper>
                <mapper resource="com/yc/mybatis/DeptMapper2.xml"></mapper>
            <!-- 使用注解的方式来  进行语句操作-->
                <mapper class="com.yc.mybatis.Dept5"></mapper>
         </mappers>
    </configuration>

    看到此,有可能有迷糊。

    首先来看看mybaits的操作原理。

    当使用mybatis来和数据库打交道时。会先加载mybatis-config.xml文件,来获取连接的信息和一些其他的信息,如实体类是否启用别名(实体类就是一些用于存储信息的类);

    如mapper.xml文件的信息(里面写一些你自己要操作的信息,如:增删改查)。注:mapper配置中的resource属性是这个mapper.xml的src下面的全路径名。

    示例一个mapper.xml文件:

    <?xml version="1.0" encoding="UTF-8"?>
    
    <!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
        
        
    
    <mapper namespace="DeptMapper"> <!-- 命名空间 -->
        
        
        <!-- id必须唯一,用于java代码的查询调用, resultType:为返回值类型, parameterType:为传入的参数 -->
    
        <select id="find" resultType="Dept" parameterType="int">
            select deptno, dname, loc from dept where deptno = #{deptno}
        </select>
        
        <update id = "update" parameterType="Dept">
            update dept set dname = #{dname}, loc = #{loc} where deptno = #{deptno}
        </update>
        
        
    </mapper>

    好了基本的配置就在这里。

    关于mybatis的基本调用,请看下一篇文章

     
  • 相关阅读:
    Medium | LeetCode 11. 盛最多水的容器 | 双指针
    Hard | LeetCode 41. 缺失的第一个正数 | 原地Hash
    Navicat Premium 15 使用注册机破解,附带Navicat Premium 15安装包、注册机下载
    vue $forceUpdate() 强制重新渲染
    js 原生录制屏幕
    mysql 8.0.17 解压版安装教程
    vue 移动端适配 amfe-flexibl
    mysql重置密码
    2059-Authentication plugin'caching_sha2_password'cannot be loaded
    用js实现时间减去前1小时、7天、1月、1年
  • 原文地址:https://www.cnblogs.com/1998xujinren/p/11207381.html
Copyright © 2011-2022 走看看