【Mybatis学习笔记(三)】关于properties、typeAliases、package标签以及数据库连接池POOL和UNPOOLED的使用介绍

首先查看我们在resources目录下定义好的jdbcConfig.properties文件,这个文件主要是用于配置我们的数据库连接资源所用的:

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/account
jdbc.username=root
jdbc.password=123456

其次,为了引用我们的这个配置信息jdbcConfig.properties文件,我们需要使用一个<properties></properties>标签,主要是用于外部引用配置文件信息一一properties文件所用的,这里常用的标签是resource进行引用:

 <properties resource="jdbcConfig.properties"></properties>

配置好了之后,我们就需要在我们environment环境中的dataSource中直接引用了,一定要注意property标签中的所有value都要对应properties文件中的key值:

            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"></property>
                <property name="url" value="${jdbc.url}"></property>
                <property name="username" value="${jdbc.username}"></property>
                <property name="password" value="${jdbc.password}"></property>
            </dataSource>

 

        如果说我们想给我们的全限定类名中的对象起别名的话,我们可以直接在我们的sqlMapConfigm.xml文件中直接使用<typeAliases></typeAliases>进行起别名的操作,里面可以配置多个<typeAlias></typeAlias>,用于给多个domain对象起别名。里面有两个属性,一个是type用于指定全限定类名,一个是alias用于指定别名;

       同时我们还可以使用<package></package>标签的方式,用于配置别名的包,直接指定到我们domain下的所有对象,该包下的所有对象都直接注册类名,并且类名就是别名,不区分大小写。里面只有一个name属性用于指定全限定类名;

     <!--
        使用typeAlice配置别名,只能配置domain中的别名
     -->
    <typeAliases>
        <!--这里type是指定我们的domain中的对象(实体类全限定类名),要输入全限定类名,alias是起别名-->
        <!--<typeAlias type="com.ysw.domain.Account" alias="account"></typeAlias>-->
        <!-- 用于指定要配置的别名的包,当指定账户,该包下的实体类都会注册类名,并且类名就是别名,不区分大小写 -->
        <package name="com.ysw.domain"></package>
    </typeAliases>

POOL和UNPOOL的区别,其实就是一个使用了连接池技术,一个没有使用连接池技术;

POOLED,采用传统的javax.sql.DataSource规范中的连接池(从池中获取一个链接来用)
UNPOOLED,采用传统的获取连接方式,虽然也实现了接口,但是没有使用池的思想(每次都创建一个链接来用)
JNDI,采用服务器提供的JNDI技术实现,来获取DataSource对象,不同的服务器拿到的是不同的DataSource
注意:(如果不是Maven的war或者web的话就不能使用而tomcat采用的是dbcp连接池)
       
POOLED是有把连接资源放回连接池中,而UNPOOLED是没有放回连接池直接关闭资源的。
       实现原理:
           如果使用POOLED的话,
               一开始的时候是先从空闲池中提取连接,
               如果有链接的话就提出来使用;

               如果空闲池中没有空闲链接的话,
               就会先到活动池中,判断活动池是否达到了最大数量
               如果是的话就会提取出最老的那个链接并将它获取到

 

package的使用,主要是可以一次性地指定全限定类名的dao层接口,不用再指定到dao层每一个接口的Mapper映射文件去了:

<mappers>
        <!--<mapper resource="com/ysw/dao/IAccountDao.xml"></mapper>-->
        <!--package指定的是dao接口所在的包,当指定了之后就不需要写mapper以及resource或者class了-->
        <package name="com.ysw.dao"></package>
</mappers>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MyBatis是一个持久层框架,它并不直接提供数据库连接的功能,而是依赖于其他的数据库连接实现来管理数据库连接。 在MyBatis中,可以通过配置文件来指定使用数据库连接。常用的数据库连接实现有: 1. Apache Commons DBCP:一个开源的数据库连接实现,具有良好的性能和稳定性。 2. C3P0:另一个常用的开源数据库连接实现,提供了更多的配置选项和监控功能。 3. HikariCP:一个高性能的数据库连接实现,相对于DBCP和C3P0更为轻量级和快速。 你可以根据自己的需求选择适合的数据库连接实现,并在MyBatis的配置文件中进行相关配置。一般情况下,你需要配置连接的最大连接数、最小连接数、连接超时时间等参数。 例如,使用Apache Commons DBCP作为数据库连接的示例配置如下: ```xml <dataSource type="org.apache.commons.dbcp2.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mydatabase"/> <property name="username" value="root"/> <property name="password" value="mypassword"/> <property name="initialSize" value="5"/> <property name="maxTotal" value="20"/> <property name="maxIdle" value="10"/> <property name="maxWaitMillis" value="10000"/> </dataSource> ``` 这是一个简单的配置示例,你可以根据自己的实际情况进行调整。在配置文件中,还可以设置其他属性,如连接的验证语句、连接的空闲对象清理策略等。 需要注意的是,MyBatis只是使用数据库连接来管理数据库连接,并不负责连接的具体实现。因此,你需要在项目中引入相应的数据库连接实现,并将其配置到MyBatis的配置文件中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值