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
|
package org.openslx.imagemaster.db;
import java.io.FileInputStream;
import java.io.BufferedInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.List;
import java.util.Properties;
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
import org.apache.log4j.Logger;
import org.openslx.imagemaster.util.Util;
import fi.evident.dalesbred.Database;
/**
* Class for talking to the DB via the dalesbred jdbc wrapper. Package private,
* so only the Db* classes can actually communicate with the database.
*
*/
class MySQL
{
private static final Logger log = Logger.getLogger( MySQL.class );
private static Database db = null;
static
{
// Load connection info from class (TODO: Make pretty)
Properties properties = new Properties();
try {
final BufferedInputStream stream = new BufferedInputStream( new FileInputStream( "config/mysql.properties" ) );
properties.load( stream );
stream.close();
} catch ( FileNotFoundException e ) {
log.fatal( "config/mysql.properties not found!" );
System.exit( 1 );
} catch ( IOException e ) {
log.fatal( "Error reading from config/mysql.properties: " + e.getMessage() );
System.exit( 1 );
} catch ( Exception e ) {
log.fatal( "Generic error loading mysql properties file." );
e.printStackTrace();
System.exit( 1 );
}
final String host = properties.getProperty( "host" );
final String dbname = properties.getProperty( "db" );
final String user = properties.getProperty( "user" );
final String password = properties.getProperty( "password" );
Util.notNullFatal( host, "host not set in mysql properties" );
Util.notNullFatal( dbname, "db not set in mysql properties" );
Util.notNullFatal( user, "user not set in mysql properties" );
Util.notNullFatal( password, "password not set in mysql properties" );
// Setup db connection
try {
MysqlDataSource ds = new MysqlDataSource();
ds.setServerName( host );
ds.setDatabaseName( dbname );
ds.setUser( user );
ds.setPassword( password );
db = Database.forDataSource( ds );
} catch ( Exception e ) {
log.fatal( "Error initializing mysql data source!" );
e.printStackTrace();
System.exit( 1 );
}
}
protected static <T> List<T> findAll( final Class<T> clazz, final String sql, final Object... args )
{
return db.findAll( clazz, sql, args );
}
protected static <T> T findUniqueOrNull( final Class<T> clazz, final String sql, final Object... args )
{
return db.findUniqueOrNull( clazz, sql, args );
}
}
|