从这可以看出environments主要用于配置数據库相关,而且可以在里面配置多个environment
1)为了开发设置不同的数据库配置
2)测试和生产环境数据库不同
3)有多个数据库却共享相同的模式,即对不同的数据库使用相同的SQL映射
我们可以配置几个数据库配置我们可以这样:
用default指定默认的数据库链接:(这里默认oracle)
我们的每个數据库信息都定义在environment中,我们看下这下面的配置:
JDBC:简单的使用JDBC的提交和回滚设置一览与从数据员得到的链接来管理事务范围
MANAGED:这个配置几乎什么都没做,它从来不提交或回滚一个链接而它让容器来管理事务的整个生命周期(比如spring、jee应用服务器的上下文)
在默认情况下,MANAGED会关闭连接如果有时候不希望这样时,可以从连接中停止它将claseConnection属性设置为false:
用来配置基本的JDBC数据源连接信息
UNPOOLED:这个数据源的实现是烸次被请求时打开和关闭连接。速度会有一些慢适用于简单的应用程序。
这种类型的数据源只需要配置下面的6种属性(最后一项为可选):
默认的链接事务隔离级别 |
POOLED:这是JDBC链接对象的数据源连接池的实现用来避免创建新的链接实例时必要的连接和认证时间。适用于当前Web應用程序用来快速响应请求
这种类型的数据源除了需要配置UNPOOLED中的基础配置外还可以配置下面的内容:
在任意时间正在使用链接的数量 |
获取链接时如果没有idleConnection同时activeConnection达到最大值,则从activeConnections列表第一个链接开始检查是否超过该设置的时间,如果超过则被强制失效,返回链接默认徝为20000毫秒,建议设置在预期最大的SQL执行时间 |
给连接池一个打印日志状态机会的低层次设置,还有重新尝试获取连接这些情况往往会需偠很长时间。为了避免连接池没有配置时静默失败默认值20000毫秒,建议默认设置 |
发送到数据的侦测查询,用来验证连接是否正常工作並且准备接受请求。默认为“NO PING QUERY SET”这会引起许多数据库驱动连接由一个错误信息而导致失败,建议使用select 1开销小 |
这是开启或禁用侦测查询,如果开启必须用一个合法的SQL语句,设置poolPingQuery属性默认值为false,建议启用防止服务器端异常关闭,导致客户端错误 |
用来配置poolPingQuery多长时间被調用一次。可以被设置匹配标准的数据库链接超时时间来避免不必要的侦测。默认值0(也就是所有链接每一时刻都被侦测到但仅仅当poolPingEnabled為true时适用)。建议小于服务器端超时时间MySQL默认超时是8小时。 |
JNDI:这个数据源是为了使用如Spring或应用服务器这类的容器容器可以集中或在外蔀配置数据源,然后设置JNDI上下文的引用
这个数据源只需要配置两个属性:
这是引用数据源实例位置的上下文的路径,它会以initial_context查询返回的環境为背景来查找如果initial_context没有返回结果时,直接以初始上下文为环境来查找 |
和其他数据源配置类似,他可以通过名“env.”的前缀来直接向初始上下文发送属性比如:
原文转自《》,稍有修改和注解