`
flyeagle
  • 浏览: 213948 次
  • 来自: ...
社区版块
存档分类
最新评论

ibatis入门问题

阅读更多
刚学ibatis,按照ibatis开发指南,写的一个简单测试代码,可是碰到很多问题;
   包com.hengji.sql下有
    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>
	<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="com.mysql.jdbc.Driver" />
			<property name="JDBC.ConnectionURL" value="jdbc:mysql://localhost:8080/sample" />
			<property name="JDBC.Username" value="root" />
			<property name="JDBC.Password" value="123456" />
			<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 ACCOUNT" />
			<property name="Pool.PingEnabled" value="false" />
			<property name="Pool.PingConnectionsOlderThan" value="1" />
			<property name="Pool.PingConnectionsNotUsedFor" value="1" />
		</dataSource>
	</transactionManager>
	<sqlMap resource="com/hengji/sql/User.xml" />
</sqlMapConfig>


     User.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 namespace="User">
	<typeAlias alias="user" type="com.hengji.pojo.User" />
	<select id="getUser" parameterClass="java.lang.String"
		resultClass="user">
		<![CDATA[ 
                select 
                  name, 
                 sex 
                from t_user
             where name = #name# 
                 ]]>
	</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>


   测试类:就执行一个简单的插入操作:
   package com.hengji.test;

import java.io.IOException;
import java.io.Reader;
import java.sql.SQLException;

//import com.ibatis.common.resources.Resources;
import com.hengji.pojo.User;
import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;


public class Test {
	

	public static void main(String[] args) {
		String resource ="com/hengji/sql/SqlMapConfig.xml";
		Reader reader;
		try {
			reader = Resources.getResourceAsReader(resource);
//			XmlSqlMapClientBuilder xmlBuilder = new XmlSqlMapClientBuilder();        
			SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
			try {
				sqlMap.startTransaction();
				User user=new User();
				user.setName("test");
				user.setSex(new Integer(1));
				sqlMap.insert("insertUser", user);
				sqlMap.commitTransaction();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}       
		 
		

	}

}


  错误如下:
  com.ibatis.common.jdbc.exception.NestedSQLException:   
--- The error occurred in com/hengji/sql/User.xml.  
--- The error occurred while executing mapped statement.  
--- Check the insertUser.  
--- Check the statement or the result map.  
--- Cause: com.mysql.jdbc.CommunicationsException: Communications link failure due to underlying exception: 

** BEGIN NESTED EXCEPTION ** 

java.net.SocketException
MESSAGE: java.net.ConnectException: Connection refused: connect
分享到:
评论
20 楼 qingchen007 2007-07-24  
谢谢,收藏
19 楼 spiritfrog 2007-04-19  
你的代码我在hsqldb上可以运行的,所以应该不是程序或者配置的问题。
应该就是你的端口号填错了。
18 楼 ryan1982 2007-04-18  
8080 TOMCAT XMLDB
17 楼 hermitte 2007-02-05  
MagicYang 写道
<property name="JDBC.ConnectionURL" value="jdbc:mysql://localhost:8080/sample" />

你的MySQL监听端口是8080?

。。。。。3306
16 楼 flyeagle 2007-02-03  
暂时,就看一下他的基本实现方式:增,删,改,查,好像没发现什么问题,而且他不一定就用那个DTD
,我用的是ibatis2.x的包,所以他用的可能会是包里面的DTD
15 楼 tangyuanjian2007 2007-02-03  
顺便说一下 最上面DTD的路径已经变掉了,如果没改有什么影响了 ?
14 楼 flyeagle 2007-02-02  
  不好意思!就是端口问题,由于刚学ibatis,而连接字符串,这种最基本的东西,想来不会出错,所以没有仔细检查,因为是ibatis的问题;实在不好意思! 非常感谢大家的指点;
13 楼 MagicYang 2007-02-02  
<property name="JDBC.ConnectionURL" value="jdbc:mysql://localhost:8080/sample" />

你的MySQL监听端口是8080?
12 楼 ddandyy 2007-02-02  
顺便说一下 最上面DTD的路径已经变掉了  你可以去http://ibatis.apache.org/看看  

当然  你现在的问题应该不是这个原因
11 楼 ddandyy 2007-02-02  
jdbc:mysql://localhost:8080/sample

数据库端口8080?

你确认你的8080端口没有被别的东西占用么

这不是一个好习惯
10 楼 flyeagle 2007-02-02  
<property name="Pool.PingQuery" value="select 1 from ACCOUNT" /> 

  不行,不过我换成下面的那种实现了,他还是报一样的错误,所以问题应该不止这个;应该还有其他的;
 <?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="com.mysql.jdbc.Driver" />
			<property name="JDBC.ConnectionURL" value="jdbc:mysql://localhost:8080/sample" />
			<property name="JDBC.Username" value="root" />
			<property name="JDBC.Password" value="123456" />
	</dataSource>
	</transactionManager>
	<sqlMap resource="com/hengji/sql/User.xml" />
</sqlMapConfig>

   
我的mysql是5.0.3应该也没有问题;不知道,问题出在哪?
9 楼 ddandyy 2007-02-02  
引用
<property name="Pool.PingQuery" value="select 1 from ACCOUNT" /> 



这个SQL在你的数据库能跑通么?????????
8 楼 flyeagle 2007-02-02  
谢谢! 我已经侧过了,直接用jdbc连事没有问题的,可以把数据插到数据库里面的,所以,这个问题,应该还是ibatis配置文件的问题,或者就是我写的测试方法有问题;
7 楼 jamesby 2007-02-02  
flyeagle 写道
有sample数据库,有表t_user,改成如下,还是一样的问题:
   <?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="com.mysql.jdbc.Driver" />
			<property name="JDBC.ConnectionURL" value="jdbc:mysql://localhost:8080/sample" />
			<property name="JDBC.Username" value="root" />
			<property name="JDBC.Password" value="123456" />

		</dataSource>
	</transactionManager>
	<sqlMap resource="com/hengji/sql/User.xml" />
</sqlMapConfig>
 
我的意思是用DriverManager.getConnection方式连接试验下看有无问题,目的是先确认数据库联接是否有问题,如无问题则可确认与iBatis有关,不一定用iBatis出现问题就怀疑iBatis有什么问题!
6 楼 flyeagle 2007-02-02  
有sample数据库,有表t_user,改成如下,还是一样的问题:
   <?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="com.mysql.jdbc.Driver" />
			<property name="JDBC.ConnectionURL" value="jdbc:mysql://localhost:8080/sample" />
			<property name="JDBC.Username" value="root" />
			<property name="JDBC.Password" value="123456" />

		</dataSource>
	</transactionManager>
	<sqlMap resource="com/hengji/sql/User.xml" />
</sqlMapConfig>
 
5 楼 jamesby 2007-02-02  
            <property name="JDBC.Driver" value="com.mysql.jdbc.Driver" />  
            <property name="JDBC.ConnectionURL" value="jdbc:mysql://localhost:8080/sample" />  
            <property name="JDBC.Username" value="root" />  
            <property name="JDBC.Password" value="123456" />  


用以上信息测试数据库联接是否正常,确认你的mysql有没有sample数据库,确认建立的表是否在sample里面。
4 楼 flyeagle 2007-02-02  
  没问题,数据库驱动有,连接字符串也没有问题,用户名,密码都没有问题,应该还是ibatis配置文件或者是User.xml文件有问题;
3 楼 deafwolf 2007-02-02  
直接写JDBC连数据库试试
2 楼 flyeagle 2007-02-02  
  mysql是启动的,你说的手动连是指什么?不太明白,请指点一下,谢谢!
1 楼 deafwolf 2007-02-02  
如果mysql启动了,那么楼主试试手工连数据库

相关推荐

    Ibatis 入门经典 实例

    《Ibatis 入门经典 实例》 Ibatis 是一款著名的轻量级 Java 持久层框架,它提供了一种映射 SQL 和 Java 对象的简单方式,从而减轻了开发人员在数据库操作中的工作负担。这篇实例教程将带你深入理解 Ibatis 的核心...

    Ibatis入门例子,Ibatis教程

    在本教程中,我们将通过一个简单的Ibatis入门例子,带你逐步了解并掌握这个强大的框架。 首先,我们需要在项目中引入Ibatis的依赖。通常,我们会在Maven的pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;org....

    ibatis入门

    **Ibatis 入门教程** Ibatis 是一个优秀的 Java ORM(对象关系映射)框架,它允许程序员将数据库操作与业务逻辑分离,提供灵活的 SQL 配置和映射机制,使得开发人员能够自由地编写 SQL 而不被 ORM 的复杂性所束缚。...

    iBatis入门(三)

    **iBatis入门(三)** 在本篇中,我们将深入探讨iBatis,这是一个流行的开源持久层框架,它允许开发者将SQL语句与Java代码分离,提供更灵活的数据库操作方式。iBatis的核心是SQL Maps,这些映射文件包含了SQL语句以及...

    最简单的iBatis入门例子

    iBatis(现在称为MyBatis)是由Apache软件基金会维护的一个开源项目,它解决了Java应用程序直接操作数据库时面临的许多问题,如SQL的动态生成、事务管理等。iBatis的核心理念是将SQL语句写在XML配置文件中,通过Java...

    ibatis 入门

    标题 "ibatis 入门" 暗示我们要探讨的是关于使用和理解开源持久层框架 iBATIS 的基础知识。iBATIS 是一个优秀的 Java 应用框架,它将 SQL 查询与 Java 代码分离,提供了更灵活的数据访问方式。这篇博客(博文链接已...

    ibatis 自己学的一个ibatis项目(只是打通了Oracle) 非常适合入门

    自己写了一个Ibatis入门文件 JDK用的1.4 ibatis用的2.3.0 一定要注意版本问题,不然出现本本不兼容很费劲,我调了一上午,注意一定要用JDK1.4 ibatis2.3.0! 数据库自己建一张简单的表就行了,特别说明 只适合新手...

    ibatis入门到精通详细讲解

    **Ibatis 入门到精通详细讲解** Ibatis 是一个优秀的持久层框架,它允许开发者将 SQL 语句与 Java 代码分离,提供了一个灵活的映射框架,从而减轻了开发人员在数据库操作上的工作负担。这篇详细讲解将带你从入门到...

    ibatis入门与ibatis迭代的用法

    **ibatis入门** iBatis,一款轻量级的Java持久层框架,是MyBatis的前身,由美国华人开发团队开发。它提供了一个SQL、Java和XML的映射框架,将SQL语句与Java代码分离,使得开发者可以更加灵活地处理数据库操作,避免...

    ibatis入门教程_ibatis入门教程_源码

    Ibatis,全称为MyBatis,是一个优秀的Java持久层框架,它主要负责SQL映射,使得...通过学习这个Ibatis入门教程,你可以了解并掌握如何在Java应用中使用Ibatis进行数据操作,为后续的进阶学习和项目开发打下坚实的基础。

    ibatis ibatis入门教程

    【标题】:Ibatis Ibatis入门教程 【描述】:Ibatis是一款优秀的持久层框架,它简化了Java应用与数据库之间的交互,通过提供一个映射SQL的XML或注解方式,使得开发人员能够将精力集中在业务逻辑上,而不是繁琐的...

    iBATIS入门实例测试

    **iBATIS入门实例测试** iBATIS是一个优秀的开源持久层框架,它简化了Java应用程序与数据库之间的交互,使得开发者可以专注于SQL语句本身,而无需处理大量的JDBC代码。本教程将通过一个简单的实例来介绍如何使用...

    iBatis入门Helloworld

    iBatis,现已被更名为MyBatis,是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。...通过这个简单的"iBatis入门Helloworld"项目,你可以快速掌握iBatis的基础操作,并为进一步学习和应用打下坚实基础。

    ibatis入门实例(全代码)

    在这个"ibatis入门实例(全代码)"中,我们将探讨如何通过 Ibatis 实现对数据库的操作,包括数据库的初始化、SQL 映射文件的编写以及 Java 代码的集成。 首先,让我们了解数据库的准备工作。在实例中,提供了数据库...

    ibatis入门实例,很方便,导入即用

    **Ibatis 入门实例详解** Ibatis 是一个优秀的、开源的 Java 数据访问框架,它简化了数据库操作,使得开发者可以更加专注于 SQL 而不需处理底层的 JDBC 编码。Ibatis 提供了一个映射框架,允许将 SQL 查询与 Java ...

    ibatis入门级示例

    ibatis入门级完整示例,包含ibatis-2.3.4.726.jar、commons-logging-1.0.4.jar、mysql-connector-java-3.1.10-bin.jar和建表语句。

    ibatis 入门的例子

    这个压缩包中的"ibatisJavaTest"项目应该是一个简单的Ibatis入门示例,可能包含了配置文件、映射文件、测试类等。通过分析和运行这个项目,你可以直观地了解Ibatis如何与数据库交互,以及如何编写和使用Mapper接口。...

Global site tag (gtag.js) - Google Analytics