Как написать веб. xml и постоянство. xml для подключения Java EE к БД-серверу - PullRequest
0 голосов
/ 26 марта 2020

Я стремлюсь к чему-то очень простому - создать пустой maven, скачать в pom - javaee-api, а затем подключить этот простой проект maven EE - к DataBase Server - в настоящее время MySLQ Server моей локальной машины. Я также стремлюсь сохранить простоту - только с помощью сети. xml, в которую я помещаю свои данные источника данных, и постоянство. xml, в котором я упоминаю свой источник данных. Я действительно хочу сохранить это простым - поэтому я не ставлю ни одного jpa-провайдера в постоянство. xml, так как я хочу использовать провайдера на любом из серверов приложений, на которых я развертываю. Теперь я хочу использовать Hibernate явно, я хочу приложение, которое будет использовать поставщик постоянства по умолчанию на сервере приложений. Однако я скачал (также как зависимость maven) mysql -connector- java. Я создал простую сущность и запускаю проект. Я использую IntelliJ, развертываю на Tomcat 8 alles gut, но .. в моей БД таблицы не создаются.

Извините за грязные объяснения, которые я предоставил, но после 5 часов борьбы и головной боли это лучшее, что я Можно. Я также предоставляю вам мой веб. xml, постоянство. xml, pom. xml, даже мой класс Entity ...

Пожалуйста, хороший чувак, помогите, как подключить мое столь простое приложение к MySQL Server.

ТАКЖЕ ПОЖАЛУЙСТА, ПОЖАЛУЙСТА, ПОЖАЛУЙСТА, ПОЖАЛУЙСТА, ПОЕЗДЬ МЕНЯ В ДРУГОЙ РЕЗЬБЕ - пожалуйста, внимательно прочитайте, что мне нужно, я не хочу подключаться через метод et c. Я хочу сделать это именно так, как я пытаюсь. Я хочу - ЭТОТ ПУТЬ!

Это пом

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.example</groupId>
    <artifactId>rado</artifactId>
    <version>1.0-SNAPSHOT</version>

    <packaging>war</packaging>
    <build>
           <plugins>
               <plugin>
                   <groupId>org.apache.maven.plugins</groupId>
                   <artifactId>maven-compiler-plugin</artifactId>
                   <version>3.7.0</version>

                   <configuration>
                       <source>8</source>
                       <target>8</target>
                   </configuration>
               </plugin>
           </plugins>
    </build>

    <dependencies>
        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-api</artifactId>
            <version>8.0</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.14</version>
        </dependency>

    </dependencies>

</project>
enter code here

Это моя паутина. xml

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
         http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">

    <data-source>
        <name>java:app/rocky/myCon</name>
        <class-name>com.mysql.jdbc.Driver</class-name>
        <url>jdbc:mysql://localhost:3306/rocky</url>
        <user>root</user>
        <password>****</password>
    </data-source>

</web-app>

Это настойчивость. xml

<?xml version="1.0" encoding="UTF-8"?>

<persistence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns="http://xmlns.jcp.org/xml/ns/persistence"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence    http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd" version="2.1">

    <persistence-unit name="pu" transaction-type="JTA">
        <jta-data-source>java:app/rocky/myCon</jta-data-source>
    </persistence-unit>

</persistence>

Это единственное существо, которое у меня есть

package entities;

import javax.persistence.*;

@Entity
@Table(name =  "employees")
public class Employee {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private int id;
    private String name;

    public Employee() {
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

1 Ответ

1 голос
/ 03 мая 2020

вам нужно развернуть на сервер приложений JavaEE или JakartaEE, например TomEE, GlassFi sh, Payara, WildFly, ... Tomcat не является полноценным сервером JavaEE, он не поддерживает JPA из коробки, которая является необходимо использовать постоянство. xml и сущности JPA.

Теоретически вы можете добавить спящий режим в Tomcat или в ваше приложение, но я не уверен, что это сработает. Вместо этого, если вы хотите остаться с Tomcat, используйте TomEE, который основан на Tomcat, но добавляет все недостающие компоненты JavaEE и все просто работает.

В противном случае ваш код выглядит хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...