首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

ibatis入门有关问题

2012-11-10 
ibatis入门问题刚学ibatis,按照ibatis开发指南,写的一个简单测试代码,可是碰到很多问题;包com.hengji.sql

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" parameterparameterparameterparametername="code">   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 blocke.printStackTrace();}} catch (IOException e) {// TODO Auto-generated catch blocke.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.SocketExceptionMESSAGE: java.net.ConnectException: Connection refused: connect
<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里面。 <?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>  <?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有什么问题!select 1 from ACCOUNT" /> 


这个SQL在你的数据库能跑通么?????????<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应该也没有问题;不知道,问题出在哪?<property name="JDBC.ConnectionURL" value="jdbc:mysql://localhost:8080/sample" />
你的MySQL监听端口是8080?<property name="JDBC.ConnectionURL" value="jdbc:mysql://localhost:8080/sample" />
你的MySQL监听端口是8080?
。。。。。3306 18 楼 ryan1982 2007-04-18   8080 TOMCAT XMLDB 19 楼 spiritfrog 2007-04-19   你的代码我在hsqldb上可以运行的,所以应该不是程序或者配置的问题。
应该就是你的端口号填错了。 20 楼 qingchen007 2007-07-24   谢谢,收藏

热点排行