首页 > 编程知识 正文

数据库配置文件在哪里(oracle数据库配置参数)

时间:2023-05-06 13:45:50 阅读:80244 作者:2074

mybatis持久层框架中的xml配置文件的所有标记元素如下:

# XML配置

MyBatis配置文件包含严重影响MyBatis行为的设置和属性信息。 配置文档的顶层结构如下:

配置文件

属性(属性)

设置设置设置

类型别名) )

类型处理器(类型处理器) ) ) ) ) ) ) ) ) ) ) )。

对象工厂) )。

插件) ) )。

环境(环境构成)

环境变量) )。

事务管理器(事务管理器)

数据源(数据源)

数据库供应商id

映射器

以下说明各个标签的作用。

1.

##属性(属性) ) ) ) )。

1 .外部结构和动态切换- -新sqlsessionfactorybuilder ().build (读取器,属性);

2 .在典型的Java属性文件中通过配置属性标签的resource属性进行部署

通过属性元素的子元素传递

使用方法:

1 .在配置文件中用“${属性名称}”进行参照

优先级:

3----2----1

使用占位符

2.

##设定(设定) ) ) ) )。

这是MyBatis非常重要的调整设置,可以更改MyBatis的运行时行为。 下表列出了设置的意图、默认值等。

设置

setting name=' cache enabled ' value=' true '/- -全局打开或关闭配置文件中所有映射器配置的缓存。

setting name=' lazyloadingenabled ' value=' false '//--延迟加载的全局开关。 启用后,所有相关对象的加载将延迟。 的关联允许通过设置fetchType属性来复盖该项目的开关状态。

如果启用,则任何方法的调用都会加载该对象的所有属性。 否则,将根据需要加载每个属性(请参见lazyLoadTriggerMethods )。

setting name=' multipleresultsetsenabled ' value=' false '/- -是否允许在一个语句中返回多个结果集。 需要驱动型支持。

setting name=' usecolumnlabel ' value=' true '/- -使用列标签而不是列名称。 不同的司机在这方面有不同的表现。 具体来说,我们将在两种不同的模式下观察驱动程序的结果:参考相关驱动程序的文档还是进行测试。

setting name=' usegeneratedkeys ' value=' false '//--需要驱动程序支持才能支持主键的自动生成。 如果设置为true,此设置将强制使用自动生成的主键。 某些驱动程序不受支持,但可以正常工作,如Derby

setting name=' automappingbehavior ' value=' partial '//--指定my batis如何将列自动映射到字段或属性。 NONE表示取消自动映射; PARTIAL仅自动映射未定义嵌套结果集映射的结果集。 FULL自动映射任何复杂的结果集,无论是否存在嵌套。

setting name=' automappingunknowncolumnbehavior ' value=' warning '/- -指定检测自动映射目标未知列或未知属性类型的行为。

NONE:没有任何反应

WARNING:输出警报日志(“org.Apache.ibatis.session.automappingunknowncolumnbehavior”的日志级别必须设置为WARN )

FAILING:映射失败(SqlSessionException的慢速) ) ) ) ) ) ) ) )。

setting name=' defaultexecutortype ' value=' simple '//--配置默认的驱动器。 SIMPLE是普通的驱动器; REUSE驱动器重复使用预处理语句(prepared statements ); BATCH执行机构重复使用语句并执行批量更新。

setting name=' defaultstatementtimeout ' value=' 25 '/- -设置超时时间以确定等待数据库响应的秒数。

setting name=' defaultfetchsize ' value=' 100 '/- -设置驱动结果集获取数(fetchsize )的提示值。 此参数只能通过查询设置复盖。

setting name=' saferowboundsenabled ' value=' false '/- -允许在嵌套语句中使用分页符。 如果允许使用,则设定为false。

setting name=' mapunderscoretocamelcase ' value=' false '/- -是否打开自动驼峰命名约定(camel case )映射,

即从经典数据库列名 A_COLUMN 到经典 Java 属性名 aColumn 的类似映射。 <setting name="localCacheScope" value="SESSION"/> -- MyBatis 利用本地缓存机制(Local Cache)防止循环引用(circular references)和加速重复嵌套查询。 默认值为 SESSION,这种情况下会缓存一个会话中执行的所有查询。 若设置值为 STATEMENT,本地会话仅用在语句执行上,对相同 SqlSession 的不同调用将不会共享数据。 <setting name="jdbcTypeForNull" value="OTHER"/> -- 当没有为参数提供特定的 JDBC 类型时,为空值指定 JDBC 类型。 某些驱动需要指定列的 JDBC 类型,多数情况直接用一般类型即可,比如 NULL、VARCHAR 或 OTHER。 <setting name="lazyLoadTriggerMethods" value="equals,clone,hashCode,toString"/> -- 指定哪个对象的方法触发一次延迟加载。 </settings>

3.

## 类型别名(typeAliases) 类型别名是为 Java 类型设置一个短的名字。 它只和 XML 配置有关,存在的意义仅在于用来减少类完全限定名的冗余。例如: <typeAliases> <typeAlias alias="Author" type="domain.blog.Author"/> <typeAlias alias="Blog" type="domain.blog.Blog"/> <typeAlias alias="Comment" type="domain.blog.Comment"/> <typeAlias alias="Post" type="domain.blog.Post"/> <typeAlias alias="Section" type="domain.blog.Section"/> <typeAlias alias="Tag" type="domain.blog.Tag"/> </typeAliases> 也可以指定一个包名,MyBatis 会在包名下面搜索需要的 Java Bean,比如: <typeAliases> <package name="domain.blog"/> </typeAliases> 每一个在包 domain.blog 中的 Java Bean,在没有注解的情况下,会使用 Bean 的首字母小写的非限定类名来作为它的别名。 比如 domain.blog.Author 的别名为 author;若有注解,则别名为其注解值。见下面的例子: @Alias("author") public class Author { ... } 这是一些为常见的 Java 类型内建的相应的类型别名。它们都是不区分大小写的,注意对基本类型名称重复采取的特殊命名风格。

4.

## 类型处理器(typeHandlers) 无论是 MyBatis 在预处理语句(PreparedStatement)中设置一个参数时,还是从结果集中取出一个值时, 都会用类型处理器将获取的值以合适的方式转换成 Java 类型。下表描述了一些默认的类型处理器。 类型处理器 Java 类型 JDBC 类型 BooleanTypeHandler java.lang.Boolean, boolean 数据库兼容的 BOOLEAN ByteTypeHandler java.lang.Byte, byte 数据库兼容的 NUMERIC 或 BYTE ShortTypeHandler java.lang.Short, short 数据库兼容的 NUMERIC 或 SMALLINT IntegerTypeHandler java.lang.Integer, int 数据库兼容的 NUMERIC 或 INTEGER LongTypeHandler java.lang.Long, long 数据库兼容的 NUMERIC 或 BIGINT FloatTypeHandler java.lang.Float, float 数据库兼容的 NUMERIC 或 FLOAT DoubleTypeHandler java.lang.Double, double 数据库兼容的 NUMERIC 或 DOUBLE BigDecimalTypeHandler java.math.BigDecimal 数据库兼容的 NUMERIC 或 DECIMAL .... 你可以重写类型处理器或创建你自己的类型处理器来处理不支持的或非标准的类型。 具体做法为:实现 org.apache.ibatis.type.TypeHandler 接口, 或继承一个很便利的类 org.apache.ibatis.type.BaseTypeHandler, 然后可以选择性地将它映射到一个 JDBC 类型。比如: @MappedJdbcTypes(JdbcType.VARCHAR) public class ExampleTypeHandler extends BaseTypeHandler<String> { @Override public void setNonNullParameter(PreparedStatement ps, int i, String parameter, JdbcType jdbcType) throws SQLException { ps.setString(i, parameter); } @Override public String getNullableResult(ResultSet rs, String columnName) throws SQLException { return rs.getString(columnName); } @Override public String getNullableResult(ResultSet rs, int columnIndex) throws SQLException { return rs.getString(columnIndex); } @Override public String getNullableResult(CallableStatement cs, int columnIndex) throws SQLException { return cs.getString(columnIndex); } } <!-- mybatis-config.xml --> <typeHandlers> <typeHandler handler="org.mybatis.example.ExampleTypeHandler"/> </typeHandlers> ### 处理枚举类型 若想映射枚举类型 Enum,则需要从 EnumTypeHandler (转换成对应的名字)或者 EnumOrdinalTypeHandler(转换成对应的数字) 中选一个来使用。 <!-- mybatis-config.xml --> <typeHandlers> <typeHandler handler="org.apache.ibatis.type.EnumOrdinalTypeHandler" javaType="java.math.RoundingMode"/> </typeHandlers> 但是怎样能将同样的 Enum 既映射成字符串又映射成整形呢? 自动映射器(auto-mapper)会自动地选用 EnumOrdinalTypeHandler 来处理, 所以如果我们想用普通的 EnumTypeHandler,就必须要显式地为那些 SQL 语句设置要使用的类型处理器。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。