Avatar billede 49152 Nybegynder
24. oktober 2001 - 19:28 Der er 5 kommentarer og
1 løsning

jsp sammen med mysql

Hvordan forbinder jeg til mysql fra jsp.

Jeg bruger resin, på en w2k.

Jeg har installeret resin og mysql.

Venlig Hilsen
Avatar billede disky Nybegynder
24. oktober 2001 - 21:35 #1
Du initialiserer en JDBC driver og sender en SQL af til serveren.

Her er min database connection klasse,

package disky.database;

import java.sql.*;

import disky.database.*;

/**
*
* @author  Søren Reinke
* @version
*/

/*
* Funder lidt over om database forbindelsen kun skal åbnes ved brug, eller x antal altid skal være åben
* og man så bruge den/de som connection pool
*/


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 den bliver brugt sådanne her:




package disky.aquariumseek.database;

import disky.*;

/**
*
* @author  administrator
* @version
*/
public class Database extends disky.database.DbHandler
{
    /** Creates new Aquariumseek */
    public Database()
    {
    }

    public boolean open()
    {
        return super.open(\"org.gjt.mm.mysql.Driver\", \"jdbc:mysql://SERVERNAME/DATABASENAVN\",USERNAME,PASSWORD\");
    }
}


Ret det med UPPER CASE


For så at kalde noget bruger jeg f.eks.:
Det er metoden der henter fra min gæstebog:

    public void retrieveText()
    {
        Database db=new Database();
        ResultSet res;
        StringBuffer sql=new StringBuffer();
        sql.append(\"SELECT * FROM fieldtext WHERE bookid=\"+bookID);
        if(!db.open())
        {
            return;
        }
        res=db.doQuery(sql.toString());
        db.close();
        try
        {
            if( (res!=null) && (res.next()) )
            {
                setTextDate(res.getString(\"date\"));
                setTextName(res.getString(\"name\"));
                setTextEmail(res.getString(\"email\"));
                setTextWebpage(res.getString(\"webpage\"));
                setTextFromWhere(res.getString(\"fromwhere\"));
                setTextMessage(res.getString(\"message\"));
            }
        }
        catch (SQLException e)
        {
            e.printStackTrace(System.out);
        }
    }

Avatar billede disky Nybegynder
24. oktober 2001 - 23:00 #2
Driveren kan du hente her:
http://mmmysql.sourceforge.net/
Avatar billede 49152 Nybegynder
25. oktober 2001 - 12:58 #3
Tak for det, jeg kigger på det senere i dag.

Er der nogen som ved, hvorfra, man kan hente en god connectionpool klasse.

Venlig Hilsen


Avatar billede disky Nybegynder
25. oktober 2001 - 13:01 #4
Resin serveren har en med helt selv.

den kan hentes fra www.caucho.com
Avatar billede 49152 Nybegynder
25. oktober 2001 - 15:45 #5
Avatar billede disky Nybegynder
25. oktober 2001 - 15:46 #6
det er deres jdbc driver ikke deres connection pool. Deres driver virker også fint, jeg bruger normalt bare den anden
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