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的基本调用,请看下一篇文章

 
原文地址:https://www.cnblogs.com/1998xujinren/p/11207381.html