Ciao a tutti,
come da titolo ho un'applicazione sviluppata in Java e sto cercando di fare una sorta di "porting" per cercare di renderla un'aplicazione JavaWeb JSP/JavaBean; questo perchè ho molta più familiarità con la grafica Web CSS/JavaScript rispetto a quella Java Swing e devo finire velocemente un progetto per l'Università le condizioni sono che sia svilupata in Java quindi a me la scelta se dev'essere un'applicazione Java tradizionale o Web.
Il porting sembra abbastanza veloce con NetBeans ho creato un nuovo progetto JavaWeb, ho usato come server (per l'esecuzione in locale sul mio PC) GlassFish, invece di TomCat, semplicemente perchè già presente in NetBeans; ho importato le mie classi Java come JavaBeans e sto iniziando a scrivere le pagine jsp ma non ho idea di come fare per creare e coleggare il DataBase.
Dato che il progetto riguarda principalmente l'applicazione di design pattern, la view ed il model hanno poca importanza; quindi ho realizzato un DBController molto elementare utilizzando Derby e JDBC.
Il database è molto scarno e non avrei problemi a ricrearlo dall'inizio.
Mi servirebbe invece una mano per creare e connettere il DB da NetBeans con GlassFish e adattare la classe DBController.
Riporto il codice dell'attuale classe DBController:
codice:
import com.sun.rowset.CachedRowSetImpl;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.sql.rowset.CachedRowSet;
import org.apache.derby.client.am.ResultSet;
public class DBController {
private static DBController instance;
private final String dbURL = "jdbc:derby://localhost:1527/cryptohelper";
//jdbc Connection
private Connection conn = null;
private Statement stmt = null;
private DBController() {
}
public static DBController getInstance(){
if (instance==null){
instance = new DBController();
}
return instance;
}
void createConnection() {
try {
DriverManager.registerDriver(new org.apache.derby.jdbc.ClientDriver());
conn = DriverManager.getConnection(dbURL,"root","root");
} catch (SQLException except) {
except.printStackTrace();
}
}
public Object execute(String query) {
Object obj=null;
boolean isSelect = query.contains("SELECT");
this.createConnection();
try {
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
if(isSelect){
ResultSet rs = (ResultSet)stmt.executeQuery(query);
CachedRowSet crset = new CachedRowSetImpl();
crset.populate(rs);
obj = crset;
}
else{
obj = !stmt.execute(query);
}
stmt.close();
} catch (SQLException sqlExcept) {
sqlExcept.printStackTrace();
}
return obj;
}
/*public static void main(String[] args) {
DBController db = DBController.getInstance();
db.createConnection();
//System.out.println(db.execute("insert into root.proposta values (1,2,3,'attesa',false)"));
System.out.println(db.execute("select * from proposta"));
CachedRowSet dataCache = (CachedRowSet)db.execute("select * from proposta");
try {
while(dataCache.next()){
System.out.println(dataCache.getString("idSdc"));
}
} catch (SQLException ex) {
Logger.getLogger(DBController.class.getName()).log(Level.SEVERE, null, ex);
}
}
*/
}
Vi ringrazio in anticipo.