技术小站

一步一个脚印,学好每一门技术.....

一,MyBatis基础概述

1,MyBatis概述

MyBatis是一个简化和实现Java数据持久化的开源框架,它抽象了大量的JDBC冗余代码,并且提供了一个简单易用的APO和数据库交互。

1.1,MyBatis优点

  • 减少大量JDBC冗余代码
  • 学习曲线低
  • 与传统数据库协同工作
  • 接受SQL语句
  • 与Spring和Guice框架集成支持
  • 提供第三方缓存类库的集成支持
  • 拥有更好的性能

2,MyBatis引导

以下为mybatis-config.xml文件详细内容

<configuration>

      <properties resource="application.properties"/>

     <typeAliases>
        <package name="com.mybatis.entities"/>
     </typeAliases>

      <environments default="development">
        <environment id="development">
          <transactionManager type="JDBC"/>
          <dataSource type="POOLED">
            <property name="driver" value="${jdbc.driverClassName}"/>
            <property name="url" value="${jdbc.url}"/>
            <property name="username" value="${jdbc.username}"/>
            <property name="password" value="${jdbc.password}"/>
          </dataSource>
        </environment>
      </environments>

      <mappers>
        <mapper resource="mappers/StudentMapper.xml"/>
      </mappers>


</configuration>

以下为application.properties文件内容

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis
jdbc.username=root
jdbc.password=root

配置文件解读:

  • <properties resource=”application.properties”/>:引入外部配置文件,将数据库连接的具体信息引入到该文件中。
  • <enviroments/>:可以配置多个dataSource环境,可以将应用部署到不同的环境上。
  • <dataSource/>:用来配置数据库的连接属性。dataSource的类型可以配置成UNPOOLED,POOLED,JNDI
    • unpooled:mybatis会为每个数据库的操作创建一个新的连接,并关闭它,该方式适合用于小规模数量并发的应用程序。
    • pooled:mybatis会创建一个数据库连接池,连接池中的一个连接会被用作数据库操作。操作完成,将此连接放回连接池中。
    • jndi:mybatis从在应用服务器向配置好的jndi数据源dataSource获取数据库连接,在生产环境中优先考虑。
  • <transactionManager/>:支持两种类型的事务管理器JDBC和MANAGED。
    • JDBC 事务管理器被用作当应用程序负责管理数据库连接的生命周期(提交、回退等等)的时候。当你将TransactionManager 属性设置成 JDBC,MyBatis 内部将使用 JdbcTransactionFactory 类创建TransactionManager。
    • MANAGED 事务管理器是当由应用服务器负责管理数据库连接生命周期的时候使用。当你将TransactionManager 属性设置成 MANAGED 时, MyBatis 内部使用 ManagedTransactionFactory 类创建事务管理器 TransactionManager。

2.1,properties

    <properties resource="application.properties">
    <property name="jdbc.username" value="db_user" />
    <property name="jdbc.password" value="verysecurepwd" />
    </properties>

该元素可以配置在mybatis的配置文件中,如果外部文件拥有和内部配置数据相同的key值,则外部的key值属性会覆盖内部的配置属性。

2.2,typeAliases

在 SQLMapper 配置文件中,对于 resultType 和 parameterType 属性值,我们需要使用 JavaBean 的完全限定名。我们可以为完全限定名取一个别名(alias),然后其需要使用完全限定名的地方使用别名,而不是到处使用完全限定
名。

    <typeAliases>
        <!--Student的类被使用别名Student-->
        <typeAlias alias="Student" type="com.mybatis.entities.Student" />
        <typeAlias alias="Tutor" type="com.mybatis.entities.Tutor" />
        <!--该包下的所有实体类别名为类名开头小写的字符串-->
        <package name="com.mybatis.entities" />
    </typeAliases>

或者在定义实体类的代码中,使用注解@Alias

    @Alias("Student")
    public class Student
    { 
        ...
    }
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010871004/article/details/52353247
个人分类: MyBatis
上一篇三,Node.js基础知识(1)
下一篇二,MyBatis BaseTypehandler使用
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭