If you are used to MySQL then you probably know the MySQL function NOW() which inserts the current date and time in a MySQL query. But if you use JDBC and prepared statements, then you can reconstruct this function with a GregorianCalendar (which is the successor of Date):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | public void insertArticle(Article article) throws SQLException { //query = "INSERT INTO articles(title,content,date) VALUES (?,?,NOW())"; query = "INSERT INTO articles(title,content,date) VALUES (?,?,?)"; statement = connection.prepareStatement(query); statement.setString(1, article.getTitle()); statement.setString(2, article.getContent()); statement.setTimestamp(3, new Timestamp(new GregorianCalendar().getTimeInMillis())); logger.info(statement); statement.executeUpdate(); } |
In the beginning of my study time I’ve programmed a MySQL connection in Java for a music collection. After 2 years now I have made a remake of this code to show how to use the Java Database Connectivity (JDBC). All you need is mysql-connector-java-5.0.8-bin.jar.
I’ve written a small sample for the connection with a WordPress database. …weiterlesen
Ich war überrascht, wie einfach es ist, mit Java auf einer SQLite-Datenbank zu arbeiten. Man muss lediglich einen SQLite JDBC Treiber (z.B. sqlitejdbc-v056.jar oder Xerial SQLite JDBC Driver) in seinem Java-Projekt hinzufügen und dann diesen Beispiel-Code ausführen:
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 | import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Statement; public class Main { public static void main(String[] args) throws Exception { Class.forName("org.sqlite.JDBC"); Connection conn = DriverManager.getConnection("jdbc:sqlite:test.db"); Statement stat = conn.createStatement(); stat.executeUpdate("drop table if exists people;"); stat.executeUpdate("create table people (name, occupation);"); PreparedStatement prep = conn.prepareStatement("insert into people values (?, ?);"); prep.setString(1, "Gandhi"); prep.setString(2, "politics"); prep.addBatch(); prep.setString(1, "Turing"); prep.setString(2, "computers"); prep.addBatch(); prep.setString(1, "Wittgenstein"); prep.setString(2, "smartypants"); prep.addBatch(); conn.setAutoCommit(false); prep.executeBatch(); conn.setAutoCommit(true); ResultSet rs = stat.executeQuery("select * from people;"); while (rs.next()) { System.out.println("name = " + rs.getString("name")); System.out.println("job = " + rs.getString("occupation")); } rs.close(); conn.close(); } } |
Daraufhin wird beim erstmaligen Aufruf eine Datenbank namens “test.db” im Projekt-Ordner angelegt und eine Tabelle “people” mit den Spalten “RecNo”, “name” und “occupation”. In diese Tabelle werden weiterhin drei Datensätze geschrieben. Doch Vorsicht! Beim erneuten Ausführen des Codes wird die Tabelle wieder gelöscht und neu angelegt (siehe Code-Zeile 14). Wer die SQLite-Datenbank genauer betrachten möchte, dem empfehle ich das Werkzeug SQLite Expert, welches in der “Personal Edition” sogar kostenlos ist!
Ich habe ein paar kurze Videos zur Erstellung einer Java Enterprise Applikation mit NetBeans gedreht. In diesen Videos wird gezeigt, wie man die Verbindung zu einer MySQL-Datenbank herstellt und Persistent Entites generiert. Außerdem wird gezeigt, wie auf diese Persistent Entities über eine Session Bean innerhalb eines Web-Servlets zugegriffen werden kann. …weiterlesen
Hier eine Kurzbeschreibung, um in der Entwicklungsumgebung NetBeans 6.9.1 eine JDBC-Datasource für eine Java Enterprise-Applikation hinzuzufügen. Inklusive Database Mapping, Persistent Entities und Session Beans, die über Annotationen in einem Servlet verwendet werden können:
- “mysql-connector-java-5.1.13-bin.jar” in den lib-Ordner von GlassFish 3.0.1 kopieren
- GlassFish neustarten
- MySQL Connection-Pool in der GlassFish-Administrationsoberfläche anlegen
- JDBC Ressource (jdbc/name) in der GlassFish- Administrationsoberfläche anlegen
- Entity Classes from Database (mit List-Collection) in NetBeans-Projekt generieren
- New Persistence Unit in NetBeans-Projekt generieren
- New Session Bean (ohne Interface) in NetBeans-Projekt erzeugen
- New Servlet in NetBeans-Projekt erzeugen
- SessionBean mit @EJB-Annotation verwenden
Die JDBC Ressource muss diese Eigenschaften gesetzt haben:
portNumber
databaseName
serverName
password
user
URL
Url
Die URL wird folgendermaßen aufgebaut: jdbc:mysql://hostname:port/databaseName.
Beim Versuch eine Datenquelle (engl. datasource) in /WEB-INF/applicationContext.xml meiner Java Enterprise-Anwendung hinzuzufügen, lieferte mir die Ausgabe meines GlassFish Server 3 in NetBeans 6.9.1 diesen Fehler:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘dataSource’ defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Error setting property values; nested exception is org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are: PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property ‘driverClassName’ threw exception; nested exception is java.lang.IllegalStateException: Could not load JDBC driver class [com.mysql.jdbc.Driver]

0