sql >> Databasteknik >  >> RDS >> Mysql

OpenShift webapps mysql java-anslutning

Jag har löst problemet själv och var väldigt exalterad. Även om jag inte fick hjälp själv, hoppas jag att någon annan kommer med den här tråden och kan få det att fungera!

Så jag har en Vaadin-applikation, som har sammanställts till en WAR-fil. Jag distribuerade den till OpenShift-servrar genom följande steg:

Distribution av kompilerad webbapp till OpenShift

  1. Öppna OpenShift i din webbläsare. Logga in på Openshift. Navigera till applikationen i fråga.
  2. Hämta ssh-koden för det programmet (den ska vara till höger på skärmen) till höger om patronerna. Kopiera den koden med kommando-C eller Ctrl-C.
  3. Öppna Terminal och skriv git clone ssh:\\xxxxxxxxxxxxxxxx...
  4. Om du är på Mac, som jag, bör den skapa en projektkatalog på Users/Username/Appname . Ta bort källmappen och pom.xml inuti den katalogen . Ta din kompilerade WAR-fil och kopiera den till webapps katalog .
  5. Gå till Terminal. Skriv cd Appname , och sedan git add . , git commit -m "Deployment" , och slutligen git push .
  6. Din applikation bör nu fungera fullt ut på www.openshiftappname-domainname.rhcloud.com/warfilename

MySQL-åtkomst

  1. Installera patronerna för MySQL och phpMyAdmin. Detta bör vara tillgängligt via Add Cartidge på din openshift.com apphubb.
  2. Notera ditt username och password till MySQL-databasen som OpenShift automatiskt genererar åt dig. Gå till www.openshiftappname-domainname.rhcloud.com/phpmyadmin , ange autentiseringsuppgifterna.
  3. Inuti phpMyAdmin bör det finnas serverns IP-adress; det ser ut ungefär som 127.x.y.z:3306 . x, y, and z kan vara ensiffriga till tresiffriga nummer.
  4. Skapa snabbt en ny database heter vad du vill. Jag kommer att döpa det till test och producera sedan en ny tabell där med namnet testtable .
  5. Så kommer du ihåg din distribuerade WAR-applikation? Tja, om du använder MySQL slår jag vad om att du redan har inkluderat det i din ansökan. De grundläggande stegen för att upprätta en anslutning till MySQL är som sådana.

Java-kod

Gå till det öppna IDE-projektet som du kompilerade till din WAR-fil. Gå till pom.xml i ditt projekt om det är ett Maven-projekt och lägg till beroendet:

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.25</version>
 </dependency>
  1. Använd sedan följande kod.

String s = "jdbc:mysql://" + host + ":" + port + "/" + name" , där värd är server IP address , porten är 3306 och namn är database name , i mitt fall, 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) det gick inte. Och om det inte är null , det gjorde.

För att testa, bör du kompilera om din WAR-fil (efter att ha gjort något sätt att visuellt testa den). Om du behöver mer hjälp, vänligen lämna en kommentar. Det borde fungera när du kompilerar WAR-fil och gör om stegen 4-6 i det första avsnittet:Deployment of compiled webapp to OpenShift . Tack!




  1. Hur frågar man flera liknande databaser med Peewee?

  2. Är ett globalt partitionerat index bättre (snabbare) än ett icke-partitionerat index?

  3. Vad innehåller en PDOStatement och vad är användningen av fetch/fetchAll?

  4. Hur man upptäcker de underliggande primära (eller unika) nyckelkolumnerna från en Oracle-vy