mybatis----配置

Mybatis是Java持久层框架,与Hibernate不同,它更注重SQL映射。Mybatis通过配置SQL和POJO对象来操作数据库,相对Hibernate的全自动ORM,Mybatis更像是定制化的SQL和命名查询。了解两者详细对比,可参考'alicejiyayun'的博客。
摘要由CSDN通过智能技术生成

mybatis和hibernate一样,是java持久层的框架,只是它的封装程度从某些意义上说,没有hibernate高,侧重的方向也和hibernate不一样。

hibernate是ORM对象关系映射的实现,它是通过操作持久化对象来操作数据库数据的,程序员只需要定义好POJO(Plain Ordinary Java Object,简单的Java对象,实际就是普通的JavaBeans)到数据库的关系映射就可以了,而不需要熟练操作sql语句;相对而言,mybatis是一种“Sql Mapping”的ORM实现,它着重与POJO与sql之间的关系,将sql需要的参数,以及返回的结果,与实体类的字段对应,个人理解,它有点像是hibernate中的定制sql和命名查询。

这是从大体上来说的,至于hibernate和mybatis的详细对比,在这里就不叙述了,如果有兴趣,可以到“alicejiyayun”的博客看,这是链接点击打开链接

下面是配置文件configuration.xml:

<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
	<properties resource="eas.properties" /><!-- 属性 -->
	<settings>
		<setting name="lazyLoadingEnabled" value="true" />
		<setting name="aggressiveLazyLoading" value="false"/>
	</settings>
        
        <!-- <settings>设置
        全局映射器启用或禁用缓存
        <setting name="cacheEnabled" value="true" />
        全局启用或禁用延迟加载,禁用时,所有关联对象都会即时加载
        <setting name="lazyLoadingEnabled" value="true" />
        当启用时,有延迟加载属性的对象在被调用时会完全加载任意属性,否则,每种属性都会按需要加载
        <setting name="aggressiveLazyLoading" value="true"/>
        允许或不允许多个结果集从一个单独的语句中返回(需要合适的驱动)
        <setting name="multipleResultSetsEnabled" value="true" />
        使用列表标签代替列名,不同的的驱动表现不同,需测试
        <setting name="useColumnLabel" value="true" />
        允许JDBC支持生成的键,需要合适的驱动,如果设置为true则这个设置强制生成的键被使用,尽管一些驱动拒绝兼容但仍然有效
        <setting name="useGeneratedKeys" value="false" />
        是否增强?
        <setting name="enhancementEnabled" value="false" />
        配置和设定执行器,SIMPLE执行器执行其它语句 REUSE 执行器可能重复使用prepared statements 语句,BATCH执行器可以重复执行语句和批量更新。
        <setting name="defaultExecutorType" value="SIMPLE" />
        设置一个时限,以决定让驱动器等待数据库回应的多长时间为超时
        <setting name="defaultStatementTimeout" value="25000" />
           </settings> -->


	<typeAliases><!-- ***类型命名,方便书写,在映射xml中,可以用别名代替全限定名,但是注意不要与内建的一些别名冲突,比如八大基本类型的别名,以及java自身提供的一些类名 -->
		<typeAlias alias="Users" type="com.entity.Users" />
	</typeAliases>


	<!-- ***MyBatis 可以配置多个环境。这可以帮助你SQL 映射对应多种数据库等。 -->
	<environments default="development">
		<environment id="development">
			<transactionManager type="JDBC" />
			
			<dataSource type="POOLED">
				<property name="driver" value="${driver}" />
				<property name="url" value="${url}" />
				<property name="username" value="${username}" />
				<property name="password" value="${password}" />
				<!-- 可以引用properties配置文件中的数据,也可以直接写,如下面 -->
				<!-- <property name="driver" value="oracle.jdbc.driver.OracleDriver" 
					/> <property name="url" value="jdbc:oracle:thin:@10.10.xx.xx:1521:orcl" /> 
					<property name="username" value="xxxx" /> <property name="password" value="xxxx" 
					/> -->
			</dataSource>
		</environment>
	</environments>
	
	
	<!-- ***这里是告诉MyBatis 去哪寻找映射SQL 的语句。可以使用类路径中的资源引用,或者使用字符,输入确切的URL 引用。-->
	<mappers>
		<mapper resource="com/entity/UserOperation.xml" />
		<mapper resource="com/entity/Users.xml" />
		<mapper resource="com/entity/District.xml" />
		<mapper resource="com/entity/Street.xml" />
		<mapper resource="com/entity/Student.xml" />
		<mapper resource="com/entity/Paper.xml" />
		<mapper resource="com/dao/ProDao.xml" />
		<mapper resource="com/dao/EmpDao.xml" />
	</mappers>
</configuration>

eas.properties:

driver:oracle.jdbc.driver.OracleDriver
url:jdbc:oracle:thin:@10.10.xx.xx:1521:orcl
username=xxxx
password=xxxx

mybatis默认并没有对日志进行管理,不会像hibernate那样将执行的sql全部打印出来,这样在写程序和调试的时候有些不方便,如果sql语句上出了错误,很难寻找,特别是刚接触mybatis的时候,会出现各种各样的错误,如果想要看到mybatis执行sql语句,可以自己写一个log4j配置文件:

log4j.properties:

log4j.rootLogger=DEBUG, Console
#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
log4j.logger.java.sql.ResultSet=INFO
log4j.logger.org.apache=INFO
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG

将文件放在src下就可以了,如果需要调整log4j的级别,DEBUG、INFO、WARN、ERROR,可以自己搜log4j的相关配置,



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值