sql >> Database >  >> RDS >> Mysql

OpenShift webapps mysql java-verbinding

Ik heb het probleem zelf opgelost en was erg enthousiast. Hoewel ik zelf geen hulp heb gekregen, hoop ik dat iemand anders langs deze draad komt en het werkend kan krijgen!

Dus ik heb een Vaadin-applicatie, die is gecompileerd tot een WAR-bestand. Ik heb het als volgt op OpenShift-servers geïmplementeerd:

Implementatie van gecompileerde webapp naar OpenShift

  1. Open OpenShift in uw webbrowser. Log in op Openshift. Navigeer naar de betreffende toepassing.
  2. Verkrijg de ssh-code van die applicatie (deze zou rechts van het scherm moeten staan), rechts van de cartridges. Kopieer die code met Command-C of Ctrl-C.
  3. Open Terminal en typ git clone ssh:\\xxxxxxxxxxxxxxxx...
  4. Als je een Mac gebruikt, zoals ik, zou het een projectdirectory moeten maken op Users/Username/Appname . Verwijder in die map de bronmap en pom.xml . Neem je gecompileerde WAR-bestand en kopieer het naar de webapps map .
  5. Ga naar Terminal. Typ cd Appname , en dan git add . , git commit -m "Deployment" , en tot slot git push .
  6. Uw applicatie zou nu volledig moeten werken op www.openshiftappname-domainname.rhcloud.com/warfilename

MySQL-toegang

  1. Installeer de cartridges voor MySQL en phpMyAdmin. Dit zou beschikbaar moeten zijn via Add Cartidge op uw openshift.com app-hub.
  2. Noteer uw username en password naar de MySQL-database die OpenShift automatisch voor u genereert. Ga naar www.openshiftappname-domainname.rhcloud.com/phpmyadmin , voer de authenticatiegegevens in.
  3. In phpMyAdmin moet het IP-adres van de server staan; het ziet er ongeveer uit als 127.x.y.z:3306 . x, y, and z kan een cijfer tot drie cijfers zijn.
  4. Maak snel een nieuwe database genoemd wat je maar wilt. Ik noem het test en produceer daar vervolgens een nieuwe tabel met de naam testtable .
  5. Herinner je je nog je geïmplementeerde WAR-applicatie? Nou, als je MySQL gebruikt, wed ik dat je het al in je applicatie hebt opgenomen. De basisstappen om een ​​verbinding met MySQL tot stand te brengen zijn als zodanig.

Java-code

Ga naar het open IDE-project dat u in uw WAR-bestand hebt gecompileerd. Ga naar de pom.xml in je project als het een Maven-project is en voeg de afhankelijkheid toe:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.25</version>
 </dependency>
  1. Gebruik dan de volgende code.

String s = "jdbc:mysql://" + host + ":" + port + "/" + name" , waarbij host het server IP address is , de poort is 3306 en naam is de database name , in mijn geval, test .

try {
    Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
     e.printStackTrace();
}

try {
    Connection con = DriverManager.getConnection(s, username, password);
}
catch (SQLException e) {
    e.printStackTrace();
}

Nu if (con == null) Het is niet gelukt. En als het niet null is , het deed.

Om te testen, moet u uw WAR-bestand opnieuw compileren (na een of andere manier om het visueel te testen). Als je meer hulp nodig hebt, laat dan een reactie achter. Het zou moeten werken als je het WAR-bestand compileert en de stappen 4-6 opnieuw uitvoert in de eerste sectie:Deployment of compiled webapp to OpenShift . Bedankt!




  1. Sla een met base64 gecodeerde afbeelding op in de server-side database als BLOB

  2. datetime2 vs datetimeoffset in SQL Server:wat is het verschil?

  3. Een sql-query nodig om berichten met de meeste opmerkingen te vinden, volgorde van opmerkingennummer/telling DESC

  4. PHP/MySQLi:SET lc_time_names en DATE_FORMAT() in een mysqli-query?