6

Geliştirme için yapılandırma dosyasında, db=mem bulunduğunda, Play Framework ile birlikte gelen bellek içi veritabanını kullanıyorum.JDBC'yi kullanarak bellekte veritabanında Play Framework'e nasıl bağlanır?

JDBC'yi kullanarak bu veritabanına nasıl bağlanabilirim? ve JPA varsayılan yol değil.

benim denetleyicisi bu yöntemle çalıştık:

public static void addToDB() { 
    try { 
     Connection conn = DriverManager.getConnection("jdbc:h2:mem:play"); 
     Statement stmt = conn.createStatement(); 
     stmt.execute(sql); 
     stmt.close(); 
     conn.close(); 
    } catch (SQLException e) { 
     e.printStackTrace(); 
    } 
} 

Ama bir kullanıcı adı ve parola sağlamanız gerekir bir hata mesajı alıyorum: Ben Web- ziyaret ederseniz

org.h2.jdbc.JdbcSQLException: Wrong user name or password [8004-149] 

/@db numaralı konsolda sa kullanıcı adı kullanılır ve şifre yoktur.


Şimdi /@db arayüzü üzerinden giriş yapmış ve bir tablo users yarattı.

Sonra bir kontrolör yönteminde veritabanına bağlanıp bu jdbc-string kullandı: jdbc:h2:mem:play:sa ve ardından tablonun users için eklemek çalıştı ama bu hata mesajını alıyorum: Ben bağlanmalıdır nasıl

org.h2.jdbc.JdbcSQLException: Table "USERS" not found; SQL statement: 

JDBC kullanarak Play Framework'deki bellek içi H2 veritabanı?

cevap

8

DB.getConnection(), işi yapmalı.

+0

Her aradığımda yeni bir bağlantı mı veriliyor? ya da kapatmamam aynı mı? – Jonas

+2

Bu, Hazırda Bekletme Oturumu'ndan verilen bağlantıdır. Bu yüzden onu kapatmamanın daha iyi olduğunu farz ediyorum. – niels

6

Dene: "kullanıcı adı sa kullanılan ve şifre yok edilir" Sen yazdığı gibi,

Connection conn = DriverManager.getConnection("jdbc:h2:mem:play", "sa", ""); 

çünkü

+0

+1 URL adını kullanıcı adıyla karıştırıyordum; açıkladığın için teşekkürler. – trashgod