`

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 sziitjiang@163.com
 * @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数据库官方说明文档是英文版的,我自己没有找到中文版的,有空得把它翻译翻译,如果大家有找到中文版的,告诉我一声啊,那我就不用浪费时间了!谢谢...
  • 大小: 8.8 KB
  • 大小: 9.7 KB
  • 大小: 25.5 KB
0
2
分享到:
评论

相关推荐

    H2DataBase+iBatis简易demo

    综上所述,这个项目旨在提供一个基础示例,展示如何在Java应用中集成H2数据库和iBatis,以便于开发和测试数据库操作。通过使用内存和嵌入式模式,H2满足了不同的运行场景需求,而iBatis则简化了数据库访问,提高了...

    spring3学习笔记(2)-集成ibatis3进行单元测试

    1. 配置测试环境:创建一个专门为测试用的配置文件,如`test-context.xml`,在这个配置文件中,我们可以使用内存数据库(如H2)替代真实的数据库,以便快速执行测试且不会影响生产数据。 2. 使用@Test注解:在JUnit...

    OAuth_20:OAuth 2.0提供程序和客户端Java示例

    Oracle 10g Express(可用的H2数据库) Java 1.6 + Spring 3.1 + Eclipse(靛蓝)+ Maven + iBatis 2.0 + Tomcat 6.0(HTTP端口8000) B.项目 oauth2provider:认证服务器和资源服务器 oauth2client:Web服务器流...

    spring-boot-mybatis-plus数据层框架

    - **多数据库支持**:分页插件支持MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、PostgreSQL等多种数据库。 #### 二、环境搭建与配置 为了在Spring Boot项目中集成MyBatis-Plus,需要进行以下步骤: 1. **导入...

Global site tag (gtag.js) - Google Analytics