Ошибки конфигурации Java Mybatis Xml

Я пытался подключиться к базе данных mysql с помощью инфраструктуры Mybatis, следуя нескольким руководствам. Главный из них - http://webappdevelopmentlab.com/mybatis-tutorial-quick-start-guide/

Я пытался исправить эту проблему в течение двух дней и не могу понять, проблема ли это в моей конфигурации или синтаксисе в моем картографическом xml. База данных, которую я создал в mysql, имеет те же имена столбцов, что и атрибуты в классе java.

Ошибка говорит, что это могло быть в mapper xml, но я не вижу в этом ничего плохого.

Используется только стандартный Java-проект, а не maven.

Вот мои файлы в Структура файла проекта

mybatis-config.xml

<?xml version = "1.0" encoding = "UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">

<configuration>

    <environments default = "development">
      <environment id = "development">
        <transactionManager type = "JDBC"/>

            <dataSource type = "UNPOOLED">
                <property name = "driver" value = "com.mysql.jdbc.Driver"/>
                <property name = "url" value = "jdbc:mysql://localhost:3306/pmsdb"/>
                <property name = "username" value = "root"/>
                <property name = "password" value = "!Theold5075"/>
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <mapper resource = "resource/DeliverableMapper.xml"/>
    </mappers>

</configuration>

DeliverableMapper.xml

<?xml version = "1.0" encoding = "UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">

<mapper namespace = "resource.DeliverableMapper.xml">


    <resultMap id = "deliverableMap" type = "domains.Deliverable">

        <id property = "ID" column = "ID" javaType = "int" jdbcType = "NUMERIC"/>
        <result property = "name"  column = "name" javaType = "String" jdbcType = "VARCHAR"/>
        <result property = "description"  column = "description" javaType = "String" jdbcType = "VARCHAR"/>
        <result property = "dueDate"  column = "dueDate" javaType = "java.util.Date" jdbcType = "DATE"/>

    </resultMap>


    <select id = "selectAllDeliverables" resultMap = "deliverableMap">
        select * from deliverables
    <select/>


</mapper>

Deliverable.java

public class Deliverable {

private int ID;
private String name;
private String description;
private Date dueDate;

//private TreeSet<Requirement> listOfRequirements;
//private TreeSet<Task> listOfTasks;

@SuppressWarnings("deprecation")
public Deliverable(){
    ID = 0;
    name = "PLACEHOLDER";
    description = "PLACEHOLDER";
    dueDate = new Date(2019,8,5);
}

public int getID() {
    return ID;
}
public void setID(int iD) {
    ID = iD;
}
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public String getDescription() {
    return description;
}
public void setDescription(String description) {
    this.description = description;
}
@SuppressWarnings("deprecation")
public String getDueDate() {
    return dueDate.getYear() + "-" + dueDate.getMonth() + "-" + dueDate.getDate();
}

@SuppressWarnings("deprecation")
public void setDueDate(int year, int month, int day){
    dueDate.setYear(year);
    dueDate.setDate(day);
    dueDate.setMonth(month);
    }
}

Это ошибка, которую я получаю

Exception in thread "main"   org.apache.ibatis.exceptions.PersistenceException: 
### Error building SqlSession.
### The error may exist in resource/DeliverableMapper.xml
### Cause: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: org.apache.ibatis.builder.BuilderException: Error creating document instance.  Cause: org.xml.sax.SAXParseException; lineNumber: 5; columnNumber: 52; Document root element "mapper", must match DOCTYPE root "configuration".
at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:30)
at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:80)
at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:64)
at drivers.DBController.main(DBController.java:23)
Caused by: org.apache.ibatis.builder.BuilderException: Error parsing SQL Mapper Configuration. Cause: org.apache.ibatis.builder.BuilderException: Error creating document instance.  Cause: org.xml.sax.SAXParseException; lineNumber: 5; columnNumber: 52; Document root element "mapper", must match DOCTYPE root "configuration".
at org.apache.ibatis.builder.xml.XMLConfigBuilder.parseConfiguration(XMLConfigBuilder.java:121)
at org.apache.ibatis.builder.xml.XMLConfigBuilder.parse(XMLConfigBuilder.java:99)
at org.apache.ibatis.session.SqlSessionFactoryBuilder.build(SqlSessionFactoryBuilder.java:78)
... 2 more
Caused by: org.apache.ibatis.builder.BuilderException: Error creating document instance.  Cause: org.xml.sax.SAXParseException; lineNumber: 5; columnNumber: 52; Document root element "mapper", must match DOCTYPE root "configuration".
at org.apache.ibatis.parsing.XPathParser.createDocument(XPathParser.java:259)
at org.apache.ibatis.parsing.XPathParser.<init>(XPathParser.java:125)
at org.apache.ibatis.builder.xml.XMLMapperBuilder.<init>(XMLMapperBuilder.java:78)
at org.apache.ibatis.builder.xml.XMLConfigBuilder.mapperElement(XMLConfigBuilder.java:372)
at org.apache.ibatis.builder.xml.XMLConfigBuilder.parseConfiguration(XMLConfigBuilder.java:119)
... 4 more
Caused by: org.xml.sax.SAXParseException; lineNumber: 5; columnNumber: 52; Document root element "mapper", must match DOCTYPE root "configuration".
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.rootElementSpecified(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleStartElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.startElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$ContentDriver.scanRootElementHook(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)
at org.apache.ibatis.parsing.XPathParser.createDocument(XPathParser.java:257)
... 8 more
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
1 914
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Атрибут namespace в теге mapper должен быть интерфейсом маппера, здесь он должен быть data.DeliverableMapper.

<mapper namespace = "data.DeliverableMapper">

Спасибо за быстрый ответ! Я буквально заметил ошибку прямо перед тем, как увидел ответ.

vartan93 04.12.2018 08:14

Другие вопросы по теме