Ibatis2.x实例

Ibatis2.x实例

说明:此实例和即将要写的Ibatis3.x实例都是Ibatis的简单应用,其中他们的差别还是比较大的,如果参考示例,请注意他们之间的区别。

 

 一、SqlMapConfig.xml配置文件:

 

    

	   
		   
			
			
			
			
		
	
	

二、实体类:

2.1、User.java

package com.beans ;

import java.io.Serializable;

public class User implements Serializable{
	private static final long serialVersionUID = 1L;
	private long id ;
	private String username ;
	private String password ;
	public long getId() {
		return id;
	}
	public void setId(long 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;
	}
	public String toString(){
		return "id: "+id+"    username: "+username + "    password: "+password ;
	}
}

 

2.2映射文件:





	

	
	
	
	
	
	
		insert into User(id,username , password) values(#id#,#username#, #password#)
	
	

三、接口

UserDao.java

package com.dao;

import java.util.List;
import java.util.Map;

import com.beans.User;

public interface UserDao {
	public void addUser(User user);
	public User deleteUserById(long id);
	public List findAllUsers();
	public User findUserById(long id);
	public User update(User user);
	public List findUserByName(String username);
	public List findUsers(int start , int maxMount);
	public Map findByMap(String key);
}

四、实现类:

UserDaoImpl.java

package com.dao.impl;

import java.io.IOException;
import java.io.Reader;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.beans.User;
import com.dao.UserDao;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;

public class UserDaoImpl implements UserDao {
	private static SqlMapClient sqlMapClient;
	static {
		try {
			Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
			sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);
			reader.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	@Override
	public void addUser(User user) {
		try {
			sqlMapClient.startTransaction() ;
			sqlMapClient.insert("addUser", user);
			sqlMapClient.commitTransaction() ;
		} catch (SQLException e) {
			e.printStackTrace();
		}finally{
			try {
				sqlMapClient.endTransaction() ;
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}

	@Override
	public User deleteUserById(long id) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public List findAllUsers(){
		List users = new ArrayList();
		try {
			users = sqlMapClient.queryForList("findAllUsers");
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return users; 
	}

	@Override
	public User findUserById(long id) {
		User user = new User(); 
		try {
			user = (User) sqlMapClient.queryForObject("findUserById", id);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return user ;
	}

	@Override
	public User update(User user) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public List findUserByName(String username) {
		List users = new ArrayList();
		try {
			users =  (List) sqlMapClient.queryForList("findUserByName", username);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return users;
	}

	@Override
	public List findUsers(int start , int maxMount) {
		List users = new ArrayList() ;
		try{
			sqlMapClient.startTransaction(); 
			users = sqlMapClient.queryForList ("findUsers", null, start, maxMount); 
			sqlMapClient.commitTransaction(); 
		}catch (Exception e) {
			e.printStackTrace() ;
		}
		return users;
	}

	@Override
	public Map findByMap(String key) {
		Map map = new HashMap();
		try{
			map = sqlMapClient.queryForMap("findUsers", null, key); 
		}catch (Exception e) {
			e.printStackTrace() ;
		}
		return map;
	}

	public static SqlMapClient getSqlMapClient() {
		return sqlMapClient;
	}

	public static void setSqlMapClient(SqlMapClient sqlMapClient) {
		UserDaoImpl.sqlMapClient = sqlMapClient;
	}

}

五、测试类:

UserDaoImplTester.java

package com.dao.impl;

import static org.junit.Assert.fail;

import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.junit.Before;
import org.junit.Test;

import com.beans.User;
import com.dao.UserDao;
import com.dao.impl.UserDaoImpl;


public class UserDaoImplTester {
	private UserDao userDao ;

	@Before
	public void setUp() throws Exception {
		userDao = new UserDaoImpl();
	}

	@Test
	public void testAddUser() {
		User user = new User();
		user.setId(20);
		user.setPassword("XXXX");
		user.setUsername("XXXX");
		userDao.addUser(user);
	}

	@Test
	public void testFindUsers() {
		List users = userDao.findUsers(3,10) ;
		for(User user : users){
			System.out.println(user.toString());
		}
	}
	
	@Test
	public void testFindByMap() {
		Map map = userDao.findByMap("id") ;
		Iterator it = map.keySet().iterator() ;
		while(it.hasNext()){
			User user = (User) map.get(it.next()) ;
			System.out.println(user);
		}
	}
	
	@Test
	public void testDeleteUserById() {
		fail("Not yet implemented");
	}

	@Test
	public void testFindAllUsers() {
		fail("Not yet implemented");
	}

	@Test
	public void testFindUserById() {
		fail("Not yet implemented");
	}

	@Test
	public void testUpdate() {
		fail("Not yet implemented");
	}

	@Test
	public void testFindUserByName() {
		fail("Not yet implemented");
	}

}

 

此时实例是一个简单的Ibatis2.x运用,深入学习请参考相关文档。附件中是我找到的一些Ibatis2.x的资料,大家分享。   

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(iBATIS,Java,JDBC,DAO,SQL)