Vubec nevim jak pracovat s databazi a potreboval bych ji pouzit.... To co je muj aktualni problem - jak tu databazi propojit s kodem v netbeans?
Fórum › Java
Databaze
Ok, nejdriv se zeptam jestli je vubec vhodny pouzit DB.
Chci naprogramovat jednoduchy task manager. Kde si zadam ukol, priotu (3 stupne) Boolean jestli je hotovej a datum.
Chtel bych aby to pak fungovalo tak, ze kdyz ho otevru (bude i s GUI) tak se mi tam hned nactou ukoly co uz sem tam nekdy vytvoril. Cili ukladani dat, cteni dat.
Napada me, ze by to slo udelat i normalnim ukladanim a ctenim ze souboru. Co myslite? Ma vubec smysl se ucit ty databaze...uz par dnu googlim a vubec to nejak nechapu. Nejde mi to nastavit. Tu praci s databazi uz bych zvladl, ale to pocatecni nastaveni a pripojeni vubec nechapu.
#3 Kornin
Dalo by se to udělat i pomocí xml souboru, ale myslím že pro tebe bude lepší ta databáze... Dále je otázka, zda to chceš dělat přes klasickou databázi (MySQL,...) kde budeš potřebovat databázový server, nebo přes tzv. embedded databázi (nepotřebuješ databázový server, databáze se v podstatě ukládá do souboru)... V obou případech je práce s databází v podstatě stéjná... postup připojení k apache.derby (tato DB je součástí Netbeans):
public abstract class GeneralDAO {
private final String DRIVER_CLASS = "org.apache.derby.jdbc.ClientDriver";
private final String DB = "jdbc:derby://";
private final String HOST = "localhost:1527";
private final String DB_NAME = "nazev_databaze";
private final String USER = "uzivatel";
private final String PASSWORD = "heslo";
protected Connection getConnection() {
try {
Class.forName(DRIVER_CLASS);
try {
return DriverManager.getConnection(DB + "" + HOST + "/" + DB_NAME, USER, PASSWORD);
} catch (SQLException ex) {
Logger.getLogger(GeneralDAO.class.getName()).log(Level.SEVERE, null, ex);
}
} catch (ClassNotFoundException ex) {
Logger.getLogger(GeneralDAO.class.getName()).log(Level.SEVERE, null, ex);
}
return null;
}
}
public class DAO extends GeneralDAO {
public DAO() {
}
public void insert(Object data) {
String sqlInsertPerson = "SQL DOTAZ";
try (Connection con = getConnection(); Statement statement = con.createStatement();) {
statement.execute(sqlInsertPerson);
} catch (SQLException ex) {
Logger.getLogger(PersonDAO.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
Samozřejmě toto je jen jednoduchá ukázka, mohl bys to mít v jedné třídě atd... Ten příklad co jsem tady dal funguje asi tak, že v abstraktní třídě (nelze z ní vytvořit instance) si definuješ metodu, ve které se připojíš k databázi a připojení vrátíš aby jsi s ním mohl dále pracovat... Pak jen třída DAO dědí od té GeneralDAO kde máš definovanou metodu pro připojení, a v té třídě DAO máš metody pro práci s DB... práce s DB se provádí v bloku try-catch, v tomto příkladu je použita JAVA 7, v 6 bys musel to Connection con = .... mít normálně uvnitř toho bloku try :) Psal jsem to na rychlo tak snad to je aspoň trochu pochopitelné a za případné chyby se omlouvám :)
P.S: Databázi v Netbeansech doufám vytvořit umiš :) (když tak v záložce services :) )
#5 Kornin
Zkus se podívat tady, je to tam pěkně ukázané jak se pracuje s embedded databází :)
http://www.oracle.com/technetwork/articles/javase/javadb-141163.html
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Tabulky databáze, relační databáze a relace — založil mger789
Databáze ? — založil Láďa
Moderátoři diskuze