JDBC Datenbankanbindung mit MySQL

MySQL-Datenbankabfrage mit der Java Database Connectivity aus der Java Enterprise Edition. Für die Verwendung wird die Bibliothek mysql-connector-java-5.1.5-bin.jar benötigt, damit der MySQL Driver für die JDBC zur Verfügung steht. Das Kürzel „VO“ bezeichnet die Value Objects, welche die Datensätze in der Datenbank sind.

data.CD_VO

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
package data;
 
import java.sql.Date;
import java.util.ArrayList;
 
public class CD_VO
{
    int id;
    String titel;
    String interpret;
    Date veroeffentlichung;
    String coverDatei;
    ArrayList<song_VO> songs;
 
    public CD_VO()
    {
        this.id = 0;
        this.titel = "";
        this.interpret = "";
        this.veroeffentlichung = new java.sql.Date(2010-10-10);
        this.coverDatei = "";
        songs = new ArrayList<song_VO>();
    }
 
    public CD_VO(String titel, String interpret, Date veroeffentlichung, String coverDatei)
    {
        setID();
        this.titel = titel;
        this.interpret = interpret;
        this.veroeffentlichung = veroeffentlichung;
        this.coverDatei = coverDatei;
        songs = new ArrayList<song_VO>();
    }
 
    private void setID()
    {
        this.id++;
    }
 
    public String getCoverDatei()
    {
        return coverDatei;
    }
 
    public void setCoverDatei(String coverDatei)
    {
        this.coverDatei = coverDatei;
    }
 
    public long getId()
    {
        return id;
    }
 
    public void setId(int id)
    {
        this.id = id;
    }
 
    public String getInterpret()
    {
        return interpret;
    }
 
    public void setInterpret(String interpret)
    {
        this.interpret = interpret;
    }
 
    public String getTitel()
    {
        return titel;
    }
 
    public void setTitel(String titel)
    {
        this.titel = titel;
    }
 
    public Date getVeroeffentlichung()
    {
        return veroeffentlichung;
    }
 
    public void setVeroeffentlichung(Date veroeffentlichung)
    {
        this.veroeffentlichung = veroeffentlichung;
    }

repository.JdbcConnection

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
package repository;
 
import data.CD_VO;
 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.LinkedList;
 
public class JdbcConnection
{
    protected Connection getConnection()
    {
        try
        {
            Class.forName("com.mysql.jdbc.Driver");
            return DriverManager.getConnection("jdbc:mysql://localhost/jee", "root", "password");
        }
        catch(SQLException excSQL)
        {
            System.out.println("Fehler beim Aufbau der SQL-Verbindung:");
            excSQL.printStackTrace();
            return null;
        }
        catch(ClassNotFoundException excCNF)
        {
            System.out.println("Treiber-Manager nicht gefunden.");
            excCNF.printStackTrace();
            return null;
        }
    }
 
    public void findAllTest()
    {
        Connection con = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        String sqlStr = "SELECT * FROM cd";
        LinkedList<cd_VO> voList = new LinkedList<cd_VO>();
        CD_VO vo;
 
        try
        {
            con = getConnection();
            ps = con.prepareStatement(sqlStr);
            rs = ps.executeQuery();
 
            while(rs.next())
            {
                vo = new CD_VO();
                vo.setId( rs.getInt("id") );
                vo.setInterpret( rs.getString("interpret") );
                vo.setTitel( rs.getString("titel") );
                vo.setVeroeffentlichung( rs.getDate("veroeffentlichung") );
                vo.setCoverDatei( rs.getString("coverdatei") );
                voList.add(vo);
                // Testausgabe:
                System.out.println( vo.getId() );
                System.out.println( vo.getInterpret() );
                System.out.println( vo.getTitel() );
                System.out.println( vo.getVeroeffentlichung() );
                System.out.println( vo.getCoverDatei() );
            }
        }
        catch(SQLException excSQL)
        {
            System.out.println("Fehler beim Abruf aus der SQL-Verbindung:");
            excSQL.printStackTrace();
        }
        finally
        {
            try
            {
                if( ps != null )    ps.close();
                if( con != null )   con.close();
            }
            catch(SQLException excSQL)
            {
                System.out.println("Fehler beim Abbau der SQL-Verbindung:");
                excSQL.printStackTrace();
            }
        }
    }
}

repository.Main

1
2
3
4
5
6
7
8
9
10
package repository;
 
public class Main
{
    public static void main(String args[])
    {
        JdbcConnection test = new JdbcConnection();
        test.findAllTest();
    }
}

Java Database Connectivity in Aktion mit phpMyAdmin und NetBeans

Automatische Treibersuche

Das Suchen nach Treibern kann Schwierigkeiten bereiten, sofern der Hersteller das gewünschte Betriebssystem nicht unterstützt. Zum Glück gibt es bereits automatisierte Programme, die einem die Suche nach dem richtigen Treiber erleichtern. Für einen Bekannten mit einem Fujitsu Siemens Amilo Notebook Pi 2540 sollte ich nach Treibern für Windows XP (32-bit) suchen. Da dieses OS nicht von FSC unterstützt wird, habe ich DriverMax 5.31 Pro und Driver Genius Professional Edition 9 ausprobiert.

Bei einem direkten Vergleich dieser beiden kostenpflichtigen Produkte, zieht DriverMax deutlich den Kürzeren. Während Driver Genius selbst unbekannte Hardware sofort erkannte, wusste DriverMax nicht einmal was für eine Grafikkarte im Amilo Pi 2540 steckt. Dazu kommt, das man bei DriverMax 5 für das zeitgleiche Herunterladen mehrerer Dateien, ganz schön viele Klicks benötigt, während sich in Driver Genius 9 diesselbe Funktion mit nur einem Button erledigen lässt. Auch der Export von Treibern als Zip-Archiv bleibt der Driver Genius Professional Edition 9 vorbehalten. Somit verdient sich dieser Treiber-Downloader den eindeutigen Sieg.

Für alle Besitzer eines FSC Amilo Pi 2540 Laptops, die noch auf der Suche nach passenden Windows XP-Treibern sind, folgt eine geschmälerte Liste mit der verbauten Hardware und den zu verwendenden Treiber:

Grafikkarte: ATI Mobility Radeon HD 2400
ATI Catalyst Display Driver 8.491

Netzwerkkarte: Realtek RTL8139/810x Family Fast Ethernet NIC
Realtek GbE & FE Ethernet PCI-E NIC Driver

WLAN: Atheros AR5007EG Wireless Network Adapter
Atheros AR5xxx AR9xxx Series Wireless Network Card Driver