ibatis 配置 连上 h2 数据库

先说说ibatis配置吧
新建一个项目
我的项目名称是ibatis

1,导入ibatis所需要的包,因为我使用了日志log4j,所以也把log4j的依赖包也导进来

ibatis-2.3.4.726.jar
commons-logging-api.jar
commons-logging-1.1.jar
commons-dbcp-1.2.2.jar
commons-pool.jar
h2-1.3.154.jar (h2数据库所需要jar包)

2,在src目录下创建一个xml文件 sqlmap-config.xml(文件名随意改)但是等一下要用到的时候也要相应改上就好了。
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMapConfig      
    PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"      
    "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
	<settings cacheModelsEnabled="true" enhancementEnabled="true"
		lazyLoadingEnabled="true" errorTracingEnabled="true" maxRequests="32"
		maxSessions="10" maxTransactions="5" useStatementNamespaces="false" />
	<transactionManager type="JDBC">
		<dataSource type="SIMPLE">
			<property name="JDBC.Driver" value="org.h2.Driver" />
			<property name="JDBC.ConnectionURL" value="jdbc:h2:database/h2db" />
			<property name="JDBC.Username" value="root" />
			<property name="JDBC.Password" value="" />
			<property name="Pool.MaximumActiveConnections" value="10" />
			<property name="Pool.MaximumIdleConnections" value="5" />
			<property name="Pool.MaximumCheckoutTime" value="120000" />
			<property name="Pool.TimeToWait" value="500" />
			<property name="Pool.PingQuery" value="select 1 from sample" />
			<property name="Pool.PingEnabled" value="false" />
			<property name="Pool.PingConnectionsOlderThan" value="1" />
			<property name="Pool.PingConnectionsNotUsedFor" value="1" />
		</dataSource>
	</transactionManager>
	<!-- 引入user操作文件 -->
	<sqlMap resource="sqlmap/user-sql.xml"/>
</sqlMapConfig>


3,在src目录下创建文件夹 sqlmap,然后在文件夹下创建xml文件user-sql.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
    "http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="User">
	<typeAlias alias="user" type="model.User" />
	<select id="getUser" parameterClass="java.lang.String"
		resultClass="user">
		<![CDATA[    select  name,  sex   from t_user   where name = #name#   ]]>
	</select>
	<select id="getAllUser" resultClass="user">
		<![CDATA[   select   name,  sex  from t_user  ]]>
	</select>
	<update id="updateUser" parameterClass="user">
		<![CDATA[   UPDATE t_user  SET name=#name#, sex=#sex# WHERE id = #id# ]]>
	</update>
	<insert id="insertUser" parameterClass="user">
		INSERT INTO t_user (
		name, sex) VALUES ( #name#, #sex# )
	</insert>
	<delete id="deleteUser" parameterClass="java.lang.String">
		delete from t_user where
		id=#value#
	</delete>
</sqlMap>


4,在src目录下新建文件夹model,然后在文件夹下新建一个类 User.java
package model;

import java.io.Serializable;

public class User implements Serializable {
	private static final long serialVersionUID = 1L;
	private Integer id;
	private String name;
	private Integer sex;

	public User() {
	}
	public Integer getId() {
		return this.id;
	}
	public void setId(Integer id) {
		this.id = id;
	}
	public String getName() {
		return this.name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Integer getSex() {
		return this.sex;
	}
	public void setSex(Integer sex) {
		this.sex = sex;
	}

}


5,在src目录下新建h2demo.java类
import java.io.Reader;
import java.sql.SQLException;
import java.util.List;

import model.User;

import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
/**
 * 
 * @代码功能:测试demo
 * @packageName 
 * @file_name h2demo.java
 * @type_name h2demo
 * @author jiangx
 * @Description 
 *
 * @email [email protected]
 * @date 2011-4-22 下午11:13:07
 */
public class h2demo {

	public static void update() {

		// 首先初始化iBatis获得一个SqlMapClient对象

		String resource = "sqlmap-config.xml";

		SqlMapClient sqlMap = null;

		try {
			Reader reader = Resources.getResourceAsReader(resource);
			sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
		} catch (Exception e) {
			e.printStackTrace();
		}

		// sqlMap系统初始化完毕,开始执行update操作

		try {

			sqlMap.startTransaction();

			User user = new User();

			user.setId(new Integer(1));

			user.setName("江伟雄");

			user.setSex(new Integer(1));

			sqlMap.update("updateUser", user);

			sqlMap.commitTransaction();

		} catch (SQLException e) {

			System.out.println(e.getMessage());

		} finally {

			try {

				sqlMap.endTransaction();

			} catch (SQLException e) {

				e.printStackTrace();

			}

		}

	}

	public static List getUser() {

		// 首先初始化iBatis获得一个SqlMapClient对象

		String resource = "sqlmap-config.xml";

		com.ibatis.sqlmap.client.SqlMapClient sqlMap = null;

		List user = null;

		try {

			java.io.Reader reader = com.ibatis.common.resources.Resources
					.getResourceAsReader(resource);
			sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);

		} catch (Exception e) {

			e.printStackTrace();

		}

		// sqlMap系统初始化完毕,开始执行getAllUser操作

		try {

			sqlMap.startTransaction();

			user = sqlMap.queryForList("getAllUser", null);

			sqlMap.commitTransaction();

		} catch (SQLException e) {

			System.out.println(e.getMessage());

		} finally {

			try {

				sqlMap.endTransaction();

			} catch (SQLException e) {

				e.printStackTrace();

			}

		}

		return user;

	}

	public static void main(String[] args) {
		update();
		List user = getUser();
		for (int i = 0; i < user.size(); i++)
		{
			System.out.println(((User) user.get(i)).getName());
		}
	}
}



6,在项目根目录下新建一个文件夹database,然后干什么呢?这个文件夹里面放的是数据库文件!里面有一个bat的配置启动数据库的文件,双击之后就打开h2数据库网页客户端界面,同时h2 数据库启动,记住,运行项目的时候要先把h2数据库关掉才可以,因为h2数据库是在项目中启动的!

最后,不足的是h2数据库官方说明文档是英文版的,我自己没有找到中文版的,有空得把它翻译翻译,如果大家有找到中文版的,告诉我一声啊,那我就不用浪费时间了!谢谢...

猜你喜欢

转载自sziitjiang.iteye.com/blog/1013134
今日推荐