各路英雄好汉,江湖救急:刚接触iBatis(工程导入了mybatis-2.3.5.jar,mySQL 驱动包)SqlMapConfig.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>
<properties resource="SqlMap.properties"/>
<transactionManager type="JDBC">
<dataSource type="SIMPLE">
<property value="${driver}" name="JDBC.Driver"/>
<property value="${url}" name="JDBC.ConnectionURL"/>
<property value="${username}" name="JDBC.Username"/>
<property value="${password}" name="JDBC.Password"/>
</dataSource>
</transactionManager>
<SqlMap resource="Student.xml"/>
</SqlMapConfig>student.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> <typeAlias alias="Student" type="myIbatis.Student"/> <resultMap id="StudentResult" class="Student">
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="sex" column="sex"/>
<result property="major" column="major"/>
<result property="birthday" column="birthday"/>
</resultMap> <select id="selectAllStudent" resultClass="Student">
select * from student_table
</select></sqlMap>SqlMap.properties 文件内容如下 :driver = "com.mysql.jdbc.Driver"
url = "jdbc:mysql://localhost:3306/myIbatisDB"
username="root"
password="fhlu18"
写了一个方法 studentDaoImpl.jvaimport java.io.IOException;
import java.io.Reader;
import java.sql.SQLException;
import java.util.List;import myIbatis.Student;
import com.ibatis.sqlmap.client.SqlMapClient;public class StudentDaoImpl implements StudentDao { private static SqlMapClient sqlMapClient = null;
static {
try {
Reader reader = com.ibatis.common.resources.Resources.getResourceAsReader("myIbatis/SqlMapConfig.xml");
sqlMapClient = com.ibatis.sqlmap.client.SqlMapClientBuilder.buildSqlMapClient(reader);
reader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public List<Student> queryAllStudent() {
List<Student> studentList = null;
try {
studentList = sqlMapClient.queryForList("selectAllStudent");
} catch (SQLException e) {
e.printStackTrace();
}
return studentList ;
}
public List<Student> queryselectStudentByName(String name) {
// TODO Auto-generated method stub
return null;
}
public static void main(String[] args) {
StudentDao studentDao = new StudentDaoImpl();
studentDao.queryAllStudent(); }}
运行这个 main 方法时报错:Caused by: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: org.xml.sax.SAXParseException: Element type "SqlMapConfig" must be declared.
请各位高手帮忙指教一下,感激万分!感激万分!感激万分
<!DOCTYPE SqlMapConfig
PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd"> <SqlMapConfig>
<properties resource="SqlMap.properties"/>
<transactionManager type="JDBC">
<dataSource type="SIMPLE">
<property value="${driver}" name="JDBC.Driver"/>
<property value="${url}" name="JDBC.ConnectionURL"/>
<property value="${username}" name="JDBC.Username"/>
<property value="${password}" name="JDBC.Password"/>
</dataSource>
</transactionManager>
<SqlMap resource="Student.xml"/>
</SqlMapConfig>student.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> <typeAlias alias="Student" type="myIbatis.Student"/> <resultMap id="StudentResult" class="Student">
<result property="id" column="id"/>
<result property="name" column="name"/>
<result property="sex" column="sex"/>
<result property="major" column="major"/>
<result property="birthday" column="birthday"/>
</resultMap> <select id="selectAllStudent" resultClass="Student">
select * from student_table
</select></sqlMap>SqlMap.properties 文件内容如下 :driver = "com.mysql.jdbc.Driver"
url = "jdbc:mysql://localhost:3306/myIbatisDB"
username="root"
password="fhlu18"
写了一个方法 studentDaoImpl.jvaimport java.io.IOException;
import java.io.Reader;
import java.sql.SQLException;
import java.util.List;import myIbatis.Student;
import com.ibatis.sqlmap.client.SqlMapClient;public class StudentDaoImpl implements StudentDao { private static SqlMapClient sqlMapClient = null;
static {
try {
Reader reader = com.ibatis.common.resources.Resources.getResourceAsReader("myIbatis/SqlMapConfig.xml");
sqlMapClient = com.ibatis.sqlmap.client.SqlMapClientBuilder.buildSqlMapClient(reader);
reader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public List<Student> queryAllStudent() {
List<Student> studentList = null;
try {
studentList = sqlMapClient.queryForList("selectAllStudent");
} catch (SQLException e) {
e.printStackTrace();
}
return studentList ;
}
public List<Student> queryselectStudentByName(String name) {
// TODO Auto-generated method stub
return null;
}
public static void main(String[] args) {
StudentDao studentDao = new StudentDaoImpl();
studentDao.queryAllStudent(); }}
运行这个 main 方法时报错:Caused by: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: org.xml.sax.SAXParseException: Element type "SqlMapConfig" must be declared.
请各位高手帮忙指教一下,感激万分!感激万分!感激万分
解决方案 »
- Spring配置文件
- java
- spring 连接池 ,ibatis连接关闭问题
- 项目经验体现在哪里?
- 求解:session取值问题 jstl和EL
- 请会AJAX的朋友帮忙
- 1433端口不能正常使用,sql已经打了sp4补丁,为什么!!
- Spring管理Hibernate的事务和session的疑问!
- Intellij IDEA 4.5.1 JTable使用
- 超级难题:用Jbuilder写的c/s系统,因为和b/s系统集成,要用Weblogic的连接池的问题
- 用hibernate3.6.0连接Oracle 11g时出现了buildSessionFactory空指针错误,怎么破?
- IT技术大牛们经验分享15篇
上述三个配置文件放在src/myIbatis 目录 下运行报错:
java.lang.ExceptionInInitializerError
Caused by: java.lang.RuntimeException: Error occurred. Cause: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: org.xml.sax.SAXParseException: Element type "SqlMapConfig" must be declared.
at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser.parse(SqlMapConfigParser.java:49)
at com.ibatis.sqlmap.client.SqlMapClientBuilder.buildSqlMapClient(SqlMapClientBuilder.java:63)
at myIbatis.StudentDaoImpl.<clinit>(StudentDaoImpl.java:18)
Caused by: com.ibatis.common.xml.NodeletException: Error parsing XML. Cause: org.xml.sax.SAXParseException: Element type "SqlMapConfig" must be declared.
at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:53)
at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser.parse(SqlMapConfigParser.java:46)
... 2 more
Caused by: org.xml.sax.SAXParseException: Element type "SqlMapConfig" must be declared.
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:131)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:384)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:318)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleStartElement(XMLDTDValidator.java:1929)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.startElement(XMLDTDValidator.java:764)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1357)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$ContentDriver.scanRootElementHook(XMLDocumentScannerImpl.java:1289)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3084)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:912)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:645)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:508)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:807)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:107)
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:225)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:283)
at com.ibatis.common.xml.NodeletParser.createDocument(NodeletParser.java:157)
at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:50)
... 3 more
Exception in thread "main"
<!DOCTYPE sqlMapConfig
PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<!DOCTYPE sqlMapConfig
PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
改为view plaincopy to clipboardprint?
<!DOCTYPE sqlMapConfig
PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd"> 两者有什么不同吗??
<!DOCTYPE sqlMapConfig
PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<!DOCTYPE sqlMapConfig
PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
改为view plaincopy to clipboardprint?
<!DOCTYPE sqlMapConfig
PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
------------------------------------------------------------------------------我没用过iBatis,不知道该过之后行不行