首页天道酬勤mybatis原理详解,springmvc配置

mybatis原理详解,springmvc配置

admin 05-04 07:10 116次浏览

映射器XML配置文件apper XML配置文件包含用于增强MyBatis操作的设置和属性。 文档的深入结果如下:

configuration|--- properties|--- settings|----type aliases|----type handlers|---对象工厂__datasource|__mappers属性(properties )常用于替换可以通过properties节点部署的数据源的位置,并且易于管理。 例如:

数据源类型=' pooled ' property name=' driver ' value=' $ { driver } '/property name=' URL ' value=' $ { URL } ' ' 数据源设置(settings )是MyBatis更改操作执行过程详细信息的重要步骤。 配置示例如下:

设置! 打印SQL语句--setting name=' logimpl ' value=' stdout _ logging ' /! -启用或禁用全局映射器缓存。 - setting name=' cache enabled ' value=' false ' /! -全局启用或禁用延迟加载。 如果禁用,将立即加载所有相关对象。 - setting name=' lazyloadingenabled ' value=' true ' /! -如果启用,具有延迟加载属性的对象将在调用时完全加载任何属性。 否则,将根据需要加载每个属性。 - setting name=' aggressivelazyloading ' value=' true ' /! -是否允许一个SQL返回多个数据集(取决于驱动程序兼容性) default : true-- setting name=' multipleresultsetsenabled ' value=' true ' - default : true-- setting name=' usecolumnlabel ' value=' true ' /! 允许JDBC生成主键。 需要驱动器支持。 如果设置为true,则强制使用生成的主键,有些驱动器不兼容,但仍可执行。 default : false---- setting name=' usegeneratedkeys ' value=' false ' /! MyBatis如何自动映射数据库表中的所有列none:partial :某些完整:-- setting name=' automappingbehavior ' value=' partition -这是默认的执行类型(SIMPLE:简单; REUSE:执行器可能会重用prepared statements语句。 BATCH:执行器可以重复执行语句和批量更新----setting name=' defaultexecutortype ' value=' simple ' /! -使用驼峰命名法转换字段。 - setting name=' mapunderscoretocamelcase ' value=' true ' /! -如果设置本地缓存范围session:则包含共享数据的statement:语句范围。 这样就不会共享数据。 (如果defalut : session-- setting name=' localcachescope ' value=' session JDBC类型为空,则某些驱动程序必须指定值。 default:OTHER,如果插入空值,则无需指定类型。 --setting name=' jdbctypefornull ' value=' null '//settings类型别名(配置示例如下:

类型别名

<typeAlias alias="User" type="com.zys.hello.mybatis.domain.User"/> <typeAlias alias="Order" type="com.zys.hello.mybatis.domain.Order"/></typeAliases> 类型句柄(typeHandlers)

当MyBatis 对 PreparedStatement 设置参数或者是从 ResultSet 获取结果时, 类型句柄被用将值转换为相匹配的 Java类型。MyBatis为基本的数据类型实现了默认的类型句柄。我们自己也可以实现句柄,只需要实现TypeHandler接口,然后加入到配置中。

对象工厂(objectFactory)

每次 MyBatis 为结果对象创建一个新实例, 都会用到 ObjectFactory。 默认的 ObjectFactory 与使用目标类的构造函数创建一个实例毫无区别, 如果有已经映射的参数, 那也可能使用带参数的构造函数。 如果需要重写 ObjectFactory 的默认操作,你可以创建一个类,继承DefaultObjectFactory类并重写相应方法即可。

插件(plugins)

MyBatis 允许你在映射语句执行过程中某点上拦截调用。默认的, MyBatis 允许插件拦截以下调用:

Executor (update, query, flushStatements, commit, rollback, getTransaction, close, isClosed)ParameterHandler (getParameterObject, setParameters)ResultSetHandler (handleResultSets, handleOutputParameters)StatementHandler (prepare, parameterize, batch, update, query) 环境(environments)

MyBatis 可以配置多个环境。这可以帮助你 SQL 映射对应多种数据库等。

但是一个 SqlSessionFactory 实例对应一个数据库。

事务管理器

MyBatis 有两个事务管理类型:

JDBC - 这个类型直接全部使用 JDBC 的提交和回滚功能。它依靠使用连接的数据源来管理事务的作用域。MANAGED - 这个类型什么不做, 它从不提交、 回滚和关闭连接。 而是让窗口来管理事务的全部生命周期。(比如说 Spring 或者 Java EE服务器。 数据源

数据源类型有三种: UNPOOLED, POOLED, JNDI。

UNPOOLED:数据源实现是在每次请求都打开和关闭一个连接。有以下几个属性:

driver - 指定 JDBC 驱动器的 Java类url - 连接数据库实例的 URL 路径username - 登录数据库的用户名password - 登录数据库的密码defaultTransactionsolationLevel - 指定连接的默认事务隔离级别

POOLED:数据源缓存 JDBC 连接对象用于避免每次都要连接和生成连接实例而需要的验证时间。对于并发 WEB 应用,这种方式非常流行,因为它有最快的响应时间。除了UNPOOLED涉及的属性,还有:

poolMaximumActiveConnections - 特定时间里可同时使用的连接数poolMaximumIdleConnections - 特定时间里闲置的连接数poolMaximumCheckoutTime - 在连接池强行返回前,一个连接可以进行‘检出’ 的总计时间poolTimeToWait - 并重新尝试重新连接,免得长时间的等待。poolPingQuery - Ping Query 是发送给数据库的 Ping 信息, 测试数据库连接是否良好和是否准备好了接受请求。 默认值是“NO PING QUERY SET”, 让大部分数据库都不使用 Ping, 返回一个友好的错误信息。poolPingEnabled - 设置 PingQuery 是否可用。 如果可用, 你可以使用一个最简单的 SQL 语句测试一下。默认是: falsepoolPingConnectionsNotUsedFor - 配置 poolPingQuery 多长时间可以用。通常匹配数据库连接的超时, 避免无谓的 ping。 默认: 0, 表示随时允许 ping, 当然, 必须在 poolPingEnabled 设为 true 的前提下。

JNDI:数据源实现是为了准备和 Spring 或应用服务一起使用,可以在外部也可以在内部配置这个数据源,然后在 JNDI 上下文中引用它。这个数据源配置只需要两项属性:

initial_context - 这个属性是被用于上下文从 InitialContext 中(比如:initialContext.lookup(initial_context))查找。这个属性是可选的,如果被省略, InitialContext 将会直接查找 data_source 属性。data_source - 这是数据源实例能搜索到的上下文路径。它会直接查找 initial_context 搜索返回的值,如果 initial_context 没有值的话,直接使用 InitialContext 查找。 映射器(Mappers)

SQL语句映射文件,MyBatis 真正强大的地方,相比直接使用JDBC,不仅减少了大量代码,而且足够灵活。

我的更多文章尽在:我的个人博客

ZendFramework教程之前端控制器Zend_Controller_Front用法详解如果字符串中包含单词
docker运行windows,docker运行win10 设置配置文件,sql数据库默认值怎么设置
相关内容