ibaties框架入门、配置及小测试

对比学习Hibernate,ibaties框架的学习思路:

1、与Hibernate的区别:Hibernate中的实体类与一个表相对应,而ibatis映射的是SQL查询结果集进行映射,就是说不是把一个表建立为一个实体类,而是把sql中的参数作为一个实体类。Hibernate会自动生成SQL语句,而ibatis需要我们自己编写SQL语句写好后,根据我们的映射调用相应语句执行。

2、主要操作的类与接口

3、ORM关系映射或者配置的XML

4、进行小测试

测试ibaties过程:

1、ibaties环境的搭建:创建一个java工程,导入ibaties相关的jar包,ibaties版本号.jar,以及数据库的驱动包

2、在src目录下创建一个.xml的映射文件,保存数据库中的一些信息,例如创建一个MySqlMapConfig.xml

<sqlMapConfig>

//如果你将数据库的一些配置信息放在sqlMapConfig.properties

//中,则需要写上properties表示加载配置信息,在下面引用即可

<properties resource="sqlMapConfig.properties"/>

//数据库中的优化一些配置信息,缓存、懒加载等

<settings

cacheModelsEnabled="true"

enhancementEnabled="true"

lazyLoadingEnabled="true"

errorTracingEnabled="true"

maxRequests="32"

maxSessions="10"

maxTransactions="5"

useStatementNamespaces="false"

/>

//用一个类型别名代替

<typeAlias alias="book" type="cn.com.ibatis.pojo.Book"/>

<transactionManager type="JDBC">

<dataSource type="SIMPLE">

<property name="JDBC.Driver" value="com.mysql.jdbc.Driver" />

//引用sqlMapConfig.properties中的值信息

<property name="JDBC.ConnectionURL" value="${url}" />

<property name="JDBC.Username" value="${username}" />

<property name="JDBC.Password" value="${password}" />

</dataSource>

</transactionManager>

//引用实体类的映射文件

<sqlMap resource="cn/com/ibatis/pojo/ebook.xml" />

</sqlMapConfig>

3、写上相对应的实体和实体的映射文件,只是这个映射文件不再是Hibernate中的实体类相对应的映射文件,而是实体中相对应的SQL语句中的参数的映射,只是SQL语句中的相对应的字段要和实体类中的属性相对应

实体类:

public class Book{

private int b_id;

private String b_name;

private float b_price;

生成相对应的set和get方法。

}

<!-- SlqMap映射文件 映射文件包括 SQL 语句和参数对象和结果对象的映射 -->

<sqlMap>

//一个查询的结果集对应一个类,将要关联的表的字段作为属性放在

//这个类中,当涉及多张表的字段的时候,将涉及的字段全写在一个

//类中,而不要每张表建立一个实体类,因为ibaties关联的是SQL的结果集

<select id="getBook" resultClass="cn.com.ibatis.pojo.Book,">

select

name as b_name(属性名),

id as b_id,

price as b_price

from book

where id = #b_id(属性名)#

</select>

<update id="updateBook" parameterClass="cn.com.ibatis.pojo.Book">

update book set name = #b_name# where id = #b_id#

</update>

<insert id="insertBook" parameterClass="cn.com.ibatis.pojo.Book">

insert into book values(#b_id#,#b_name#,#b_price#)

</insert>

<delete id="deleBook">

delete from book where id = #b_id#

</delete>

</sqlMap>

4、编写测试代码,其中有一个很关键的类:SqlMapClient,相当于Hibernate中的session,执行的各种增删查改的方法都封装到这个类中

public static void testSelect()throws Exception{

SqlMapClient client = null;// session

//读取MySqlMapConfig.xml中的配置信息

Reader reader = Resources.getResourceAsReader("MySqlMapConfig.xml");

client = SqlMapClientBuilder.buildSqlMapClient(reader);

//getBook是实体类映射文件中的查询语句中的id号

Object obj = client.queryForObject("getBook",6);

Book book = (Book)obj;

System.out.println(book.getB_name());

}

public static void main(String[] args)throws Exception{

// TODO Auto-generated method stub

testSelect();

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值