现在的位置: 首页 > 综合 > 正文

第一个ibatis

2013年11月13日 ⁄ 综合 ⁄ 共 3110字 ⁄ 字号 评论关闭

   这个ibatis其实就和hibernate一样,也用来解决阻抗不匹配的问题。总的来说会用hibernate就会用ibatis,从官网来看ibatis已经加入了谷歌阵营,版本也升到了3.0.6.配置文件也有了一些差异。这里我们就是用2.3版本的就可以了。可惜官网上找不到了。现在就来学习一下吧

1.去迅雷上或其他地方下载ibatis的jar包,这个就不多说了

2.把jar包加载进去

3.编写vo类,代码如下所示

package org.lxh.vo;

public class Account {
	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;
	}

}

2.编写ibatis的配置文件,名称随便什么都可以

<?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>
	<settings cacheModelsEnabled="true" enhancementEnabled="true"
		lazyLoadingEnabled="true" maxRequests="32" maxSessions="10"
		maxTransactions="5" useStatementNamespaces="false" />
	<transactionManager type="JDBC">
		<dataSource type="SIMPLE">
			<property name="JDBC.Driver" value="org.gjt.mm.mysql.Driver" />
			<property name="JDBC.ConnectionURL" value="jdbc:mysql://localhost:3306/mldn" />
			<property name="JDBC.Username" value="root" />
			<property name="JDBC.Password" value="123456" />
		</dataSource>
	</transactionManager>
	<sqlMap resource="Account.xml" />
</sqlMapConfig>

3.编写ibatis的映射文件,名称随便什么都可以

<?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 namespace="Account">
	<select id="getAccount" parameterClass="java.lang.String" 
		resultClass="org.lxh.vo.Account"> select * from Account 
	</select>
	<insert id="createAccount" parameterClass="org.lxh.vo.Account"> 
	insert into Account(username, password) values ( #username#, #password# )  
	</insert>
</sqlMap>

这里的id很重要,后面会用到,parameterClass表示传入的参数类型,resultClass表示查询的结果类型

4.编写Junit来进行测试

package test;


import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.junit.BeforeClass;
import org.lxh.vo.Account;

import com.ibatis.sqlmap.client.SqlMapClientBuilder;

public class Test{
	
	@BeforeClass
	public  static void setUpBeforeClass() throws Exception {
		
	}
    
	
    @org.junit.Test public void insert(){
    
			
			
    	try {   
    		com.ibatis.sqlmap.client.SqlMapClient sqlMap = null;  
			java.io.Reader reader = com.ibatis.common.resources.Resources.getResourceAsReader ("sqlmap.xml");          
			sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);     
    		Account account = new Account();       
    		account.setUsername("micheal");       
    		account.setPassword("1234");       
    		sqlMap.insert("createAccount", account);   
    		}catch(Exception e){
    			e.printStackTrace();
    		}
    }
    @org.junit.Test public void query() {
        
		
		
    	try {   
    		com.ibatis.sqlmap.client.SqlMapClient sqlMap = null;  
			java.io.Reader reader = com.ibatis.common.resources.Resources.getResourceAsReader ("sqlmap.xml");          
			sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);     
			
			ArrayList all=(ArrayList) sqlMap.queryForList("getAccount");
			Iterator it=all.iterator();
			while(it.hasNext()){
			

				Account account=(Account)it.next();
				System.out.println(account.getUsername());
				System.out.println(account.getPassword());
			}
    		}catch(Exception e){
    			e.printStackTrace();
    		}
    }
}

这里我们可以把相同的代码写成一个类,这里为了方便就不写了。

最后来看一下效果截图

和hibernate相比,ibatis比较轻巧,上手也比较快。也有不少的企业使用这个。但我个人还是比较喜欢hibernate,这个例子比较简单,有问题的和我联系啊。如果写错了给位大神可以丢板砖,我也才刚学这个。

【上篇】
【下篇】

抱歉!评论已关闭.