Avatar billede r9 Nybegynder
11. oktober 2001 - 15:38 Der er 12 kommentarer og
1 løsning

eksempel på javaforbindelse til MySQL database.

Er der nogen der kan smide et lille java program der der connecter til en mysql database, og blot henter noget data.

Hvis I i samme stund, lige forklarer mig hvordan jeg sætter min driver til mySQL op i win2000, så er jeg en glad gut.
Avatar billede disky Nybegynder
11. oktober 2001 - 15:39 #1
Her er hele min klasse:
public class DbHandler extends Object
{
   
    private Connection con=null;

    /** Creates new DataBase */
    public DbHandler()
    {
    }

    public boolean open(String dbDriverName, String dbClassName, String user, String pass)
    {           
        try
        {
            if(con==null)
            {
                Class.forName(dbDriverName).newInstance();
                con = DriverManager.getConnection(dbClassName, user, pass);
            }
        }
        catch (SQLException e)
        {
            e.printStackTrace(System.out);
            return false;
        }
        catch (ClassNotFoundException e)
        {
            e.printStackTrace(System.out);
            return false;
        }
        catch (InstantiationException e)
        {
            e.printStackTrace(System.out);
            return false;
        }
        catch (IllegalAccessException e)
        {
            e.printStackTrace(System.out);
            return false;
        }
        return true;
    }
   
    public void close()
    {
        if(con!=null)
        {
            try
            {
                con.close();
                con=null;
            }
            catch (SQLException e)
            {
                e.printStackTrace(System.out);
            }
        }
    }
   
    public int doUpdate(String sql)
    {
        if(con!=null)
        {
            try
            {
                long time=System.currentTimeMillis();
                Statement stat=con.createStatement();
                System.out.println(\"SQL Update = \"+(System.currentTimeMillis()-time)+\" ms  \"+sql);
                return stat.executeUpdate(sql);       
            }
            catch (SQLException e)
            {
                e.printStackTrace(System.out);
            }
        }
        return 0;
    }

    public ResultSet doQuery(String sql)
    {
        if(con!=null)
        {
            try
            {
                long time=System.currentTimeMillis();
                Statement stat=con.createStatement();
                System.out.println(\"SQL Update = \"+(System.currentTimeMillis()-time)+\" ms  \"+sql);
                return stat.executeQuery(sql);       
            }
            catch (SQLException e)
            {
                e.printStackTrace(System.out);
            }
        }
        return null;
    }
}   

Og jeg kalder Open på følgende måde:

open(\"org.gjt.mm.mysql.Driver\",\"jdbc:mysql://localhost/DatabaseNavn\",\"username\",\"password\");

DatabaseNavn, Username, Password skal du sætte op


Du smider din mysql.jar fil et eller andet sted, og indsætter pathen i din CLASSPATH så spiller det.
Avatar billede stine_grith Nybegynder
11. oktober 2001 - 15:54 #2
er der ikke noget med at den server hvor databasen ligger skal understøtte java? - det problem har jeg selv haft tidligere.
Avatar billede r9 Nybegynder
11. oktober 2001 - 16:06 #3
min driver hedder: \"mm.mysql-2.0.2-bin\"

hvordan kommer open() til at se ud for mit vedkommende??
Avatar billede webster Nybegynder
11. oktober 2001 - 16:36 #4
hehe disky tror du ikke snart du skal lave en side med den class? Syntes der har været mega mange mysql spørgsmål på det seneste...
Avatar billede r9 Nybegynder
11. oktober 2001 - 16:38 #5
aha den skal jo bare hedde:
db.open(\"org.gjt.mm.mysql.Driver\",\"jdbc:mysql://localhost/test\",\"root\",\"\");
Avatar billede r9 Nybegynder
11. oktober 2001 - 16:43 #6
hvordan skal følgende sætning se ud hvis den skal eksekveres via metoden doUpdate fra java:

INSERT INTO kunde (navn)VALUES(\"mikkel\")??
det er syntaksen jeg tænker på??

Avatar billede r9 Nybegynder
11. oktober 2001 - 18:35 #7
sådan:

(\"INSERT INTO kunde(navn)VALUES(\'\"+test+\"\')\");
Avatar billede r9 Nybegynder
11. oktober 2001 - 18:37 #8
>>>>disky

inden jeg giver dig pointene, skal jeg lige høre om du ved hvordan man bruger mySQL i forbindelse med J2EE?
Avatar billede disky Nybegynder
12. oktober 2001 - 08:48 #9
stine_grith:

Ikke helt, men det kræver der findes en JDBC driver til databasen. Men det gør der ca. til alle de baser man har brug for.



r9:
Der er ingen forskel på om det er j2ee eller j2se.

Databasen er bare en jdbc forbindelse.
Din open() er rigtig. Men tag og ret dit rootpassword.
Avatar billede r9 Nybegynder
12. oktober 2001 - 11:58 #10
ok disky.
har du et kode eksempel hvor en entity bean henter data fra en mySQL database?
Avatar billede disky Nybegynder
12. oktober 2001 - 12:21 #11
ikke hvor det er en entity bean. men kun en almindelig bean, men jeg kan ikke se det skulle gøre nogen forskel.
Avatar billede r9 Nybegynder
12. oktober 2001 - 12:40 #12
>>>disky

forskellen ligge vel i at mySQL driveren skal sættes rigtig op i J2EE miljøet. det er noget med at der skal laves nogen ændringer i default.properties filen og i userconfig.bat, men jeg har endnu ikke fået det til at virke.

Så jo, jeg tror at det er forskel mellem alm. beans og enterprise bean\'s mht. at connecte til en mySQL database.

Hvis der er nogen der har fået det til at virke, vil jeg meget gerne hør fra dem?
Avatar billede disky Nybegynder
12. oktober 2001 - 12:44 #13
hvad er det helt specifikt du ikke kan få til at virke ?

Og har du fået det til at virke med andre baser ?

Jeg har aldrig hørt at en base skal være j2ee duelig.

Database forbindelsen er jo bare en for for sted man hentet og ligger data.

Jeg tror nærmere det er et opsætnings problem.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester