source: main/trunk/greenstone3/src/java/org/greenstone/gsdl3/sql/derby/DerbySQLServer.java@ 29977

Last change on this file since 29977 was 29977, checked in by ak19, 9 years ago

Related to commits 29903 and 29923. Adding a property for the derbyserver, which will be localhost by default.

File size: 2.3 KB
Line 
1package org.greenstone.gsdl3.sql.derby;
2
3
4import org.apache.log4j.*;
5import org.greenstone.gsdl3.sql.*;
6import java.sql.Connection;
7import java.sql.DriverManager;
8import java.sql.SQLException;
9
10import org.greenstone.util.GlobalProperties;
11
12public class DerbySQLServer implements SQLServer{
13
14 static final String PORT = GlobalProperties.getProperty("derby.server.port");//, "1527");
15 static final String DERBYSERVER = GlobalProperties.getProperty("derby.server");//, "localhost");
16 static final String PROTOCOL = "jdbc:derby://"+DERBYSERVER+":"+PORT+"/"; // "jdbc:derby://localhost:1527";
17 static final String DRIVER = "org.apache.derby.jdbc.ClientDriver"; //"org.apache.derby.jdbc.EmbeddedDriver";
18 static Logger logger = Logger.getLogger(org.greenstone.gsdl3.sql.derby.DerbySQLServer.class.getName());
19
20 public DerbySQLServer(){
21 try{
22 Class.forName(DRIVER).newInstance();
23 }
24 catch(Exception e){
25 logger.error("Couldn't find derby driver: "+DRIVER,e);
26 }
27 }
28
29 public Connection connect(String databasePath){
30 try{
31 String protocol_str = PROTOCOL + databasePath;
32 Connection connection = DriverManager.getConnection(protocol_str);
33 return connection;
34 }
35 catch(Exception e){
36 logger.info("Connect to database "+databasePath + " failed!");
37 }
38
39 return null;
40
41 }
42
43 public Connection connectAndCreate(String databasePath){
44 try{
45 String protocol_str = PROTOCOL + databasePath + ";create=true";
46 Connection connection = DriverManager.getConnection(protocol_str);
47 return connection;
48 }
49 catch(Exception e){
50 logger.error("Connect to database "+databasePath + " failed!",e);
51
52 }
53 return null;
54 }
55
56 public boolean disconnect(String databasePath){
57 try{
58 // Only shutdown if using embedded derby,
59 // not if it's a networked derby server, which is what we now use
60
61 if(DRIVER.equals("org.apache.derby.jdbc.EmbeddedDriver")) {
62 String protocol_str = PROTOCOL + databasePath + ";shutdown=true";
63 DriverManager.getConnection(protocol_str);
64 }
65 }catch (SQLException se){
66 String theError = (se).getSQLState();
67 if (!theError.equals("08006")){
68// logger.error("Database "+databasePath + " couldn't be shut down properly!",se);
69 }
70 else{
71 return true;
72 }
73 }
74
75 return false;
76 }
77
78
79
80}
Note: See TracBrowser for help on using the repository browser.