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);
}
}