ibatis学习

ibatis作为半自动的ORM实现,上手简单,易于学习。现将一个简单的demo展示如下:

ibatis主要有两种配置文件:配置文件和映射文件。

配置文件主要有以下内容:sqlMapConfig.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN" 
 "http://www.ibatis.com/dtd/sql-map-config-2.dtd">

<sqlMapConfig>
 <transactionManager type="JDBC">
  <dataSource type="SIMPLE">
   <property name="JDBC.Driver"
    value="oracle.jdbc.driver.OracleDriver" />
   <property name="JDBC.ConnectionURL"
    value="jdbc:oracle:thin:@localhost:1521:orcl" />
   <property name="JDBC.Username" value="madeyu" />
   <property name="JDBC.Password" value="madeyu" />
  </dataSource>
 </transactionManager>

 <sqlMap resource="com/yzj/sqlmap/bookInfo-Mapping.xml" />
</sqlMapConfig>

 

映射文件主要有以下几种情况:增删改查 bookInfo-Mapping.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-2.dtd">

<sqlMap>
 <select id="FIND_BY_BOOK_ID" resultClass="java.util.HashMap"
  parameterClass="java.util.HashMap">
  SELECT BOOK_NAME FROM BOOK_INFO WHERE BOOK_ID=#BOOK_ID#
 </select>
 <insert id="SAVE_BOOK_INFO" parameterClass="java.util.HashMap">
  INSERT INTO BOOK_INFO
  (ID,BOOK_ID,BOOK_NAME,BOOK_TEXT,BOOK_PRESS,BOOK_DATE,PRICE,STATE,OPERATE_DATE)
  VALUES
  (#ID#,#BOOK_ID#,#BOOK_NAME#,#BOOK_TEXT#,#BOOK_PRESS#,

   #BOOK_DATE#,#PRICE#,#STATE#,#OPERATE_DATE#)
 </insert>
 <update id="UPDATE_BY_BOOK_ID" parameterClass="java.util.HashMap">
  UPDATE BOOK_INFO SET STATE=#STATE# WHERE BOOK_ID=#BOOK_ID#
 </update>
 <delete id="DELETE_BY_BOOK_ID" parameterClass="java.util.HashMap">
  DELETE FROM BOOK_INFO WHERE BOOK_ID=#BOOK_ID#
 </delete>
</sqlMap>

 

配置完ibatis的这两种文件之后,加入ibatis的开发包,例如:ibatis-2.3.0.677.jar。

继续编写ibatis的公共访问文件,代码如下:BaseDao.java

package com.yzj.dao;

import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;

public class BaseDao {

 protected static SqlMapClient sqlMapClient;

 static {
  try {
   if (sqlMapClient == null) {
    sqlMapClient = SqlMapClientBuilder
      .buildSqlMapClient(Resources
        .getResourceAsReader("com/yzj/sqlmap/sqlMapConfig.xml"));
   }
  } catch (Exception e) {
   e.printStackTrace();
  }
 }
}
通过sqlMapClient对象就可以访问数据资源了。例子如下:BookInfoDao.java

package com.yzj.dao;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;

public class BookInfoDao extends BaseDao {

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

  Map<String, Object> map = new HashMap<String, Object>();

  map.put("ID", createUuidKey());
  map.put("BOOK_ID", "10002");
  map.put("BOOK_NAME", "西游记");
  map.put("BOOK_TEXT", "西天取经的故事");
  map.put("BOOK_PRESS", "50");
  map.put("BOOK_DATE", "20130808");
  map.put("PRICE", "30");
  map.put("STATE", "1");
  map.put("OPERATE_DATE", "20130909");

  sqlMapClient.insert("SAVE_BOOK_INFO", map);

  Map<String, Object> mapBookId = new HashMap<String, Object>();

  mapBookId.put("BOOK_ID", "10002");

  List<Map<String, Object>> list = sqlMapClient.queryForList(
    "FIND_BY_BOOK_ID", mapBookId);

  System.out.println(list.get(0).get("BOOK_NAME"));

 }

 public static String createUuidKey() {

  UUID uuid = UUID.randomUUID();

  return uuid.toString().replace("-", "");

 }
}

到此,一个简单的demo就完成了,运行程序时不要忘了要导入数据库的jar包,并且在数据库中要先完成数据表的创建。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值