iBATIS框架技术----一个简单的应用

在这里我不多讲理论方面的内容,我以一个实现开发的一个子例子来说明如何使用iBatis进行实际的开发应用

iBatis同hibernate一样,同样作用于数据库,而其操作的核心:SQL语句之前被写入到一个xml配置文件中。然后

我们就可以通过读取该配置文件,进行相应的查询,删除,插入,更新等操作,而且我们还可以重新这个操作功能

这里我不做出iBatis和Hibernate的性能比较,相信大家如果使用到了iBatis框架,你就会体验它的强大和精秒之处的。

 

首先要配置一个properties文件.这个文件中定义了一个连接mysql数据库的驱动,url,user,password.等等

如下:

mysql.driver = com.mysql.jdbc.Driver
mysql.url = jdbc:mysql://localhost:3306/xb
mysql.username = root
mysql.password = harmony

 

然后定义一个SqlMapConfig.xml文件,这个文件负责读取上面的配置文件.

 

<!-- 唯一的Properties文件,加载数据库连接信息 -->
 <properties resource="mysql.properties"/>
 

还可以进行事务管理

<!-- 配置Ibatis事务管理,使用JDBC事务类型,数据源使用Simple类型 -->
 <transactionManager type="JDBC">
  <dataSource type="SIMPLE">
   <property name="JDBC.Driver" value="${mysql.driver}"/>
   <property name="JDBC.ConnectionURL" value="${mysql.url}"/>
   <property name="JDBC.Username" value="${mysql.username}"/>
   <property name="JDBC.Password" value="${mysql.password}"/>
  </dataSource>
 </transactionManager> 

 

最后引入配置信息,也就是一些SQL语句配置文件

<!-- 配置Ibatis要使用的SqlMap文件信息 -->
 <sqlMap resource="com/jack/ibatis/pojo/map/person.xml"/>

 

我们下面讲一下就讲这个person.xml

<sqlMap>
 <!-- 为Person类设置一个别名 -->
 <typeAlias alias="person" type="com.jack.ibatis.pojo.Person"/>
 
 <!-- 配置表和类之间的映射关系 -->
 <resultMap class="com.jack.ibatis.pojo.Person" id="personMap">
  <result property="id" column="ID"/>
  <result property="username" column="U_NAME"/>
  <result property="password" column="U_PASSWORD"/>
 </resultMap>
 
 <!-- 添加用户 -->
 <insert id="insertPerson" parameterClass="person">
  <!-- 配置Mysql主键自动生成 -->
  <selectKey keyProperty="id" resultClass="int">
   SELECT LAST_INSERT_ID() as value
  </selectKey>
  <![CDATA[
   INSERT PERSON(U_NAME,U_PASSWORD) VALUES(#username#,#password#)
  ]]>
 </insert>
 
 <!-- 查看特定用户 -->
 <select id="queryPersonById" parameterClass="int" resultMap="personMap">
  <![CDATA[
   SELECT * FROM PERSON WHERE ID=#id#
  ]]>
 </select>
 
 <!-- 查看所有的用户 -->
 <select id="queryAllPerson" resultMap="personMap">
  <![CDATA[
   SELECT * FROM PERSON
  ]]>
 </select>

 

下面定义javaBean类也叫JOPO类

package com.jack.ibatis.pojo;

public class Person {
 private int id;
 private String username;
 private String password;

 public int getId() {
  return id;
 }

 public void setId(int id) {
  this.id = id;
 }

 public String getUsername() {
  return username;
 }

 public void setUsername(String username) {
  this.username = username;
 }

 public String getPassword() {
  return password;
 }

 public void setPassword(String password) {
  this.password = password;
 }
}
也就是一些属性,gettter/setter方法

 

下面使用一个测试类测试一下

 

String resource = "sqlMapConfig.xml";

Reader reader = Resources.getResourceAsReader(resource);
   //定义SqlMapClient
   SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
   
   Person person = new Person();
   person.setUsername("jack");
   person.setPassword("jack");
   //开始一个事务
   sqlMap.startTransaction();
   sqlMap.insert("insertPerson", person);
 
   sqlMap.commitTransaction();

//提交一个事务

如果查看一下就数据如果多了一行记录,说明操作成功了。

(待续)..............................

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值