Re: connecting to a database
I am designing a medical application, since I am a programming novice,
its a startup company with no capital, and I want to keep it easy to
install at Beta sites, I would like to use an Access Database to store
Please don't do this. Since you are a novice, you will inevitably make
mistakes. That is OK unless you are working on highly critical
projects like medical applications. So please do your learning on
another type of project.
So I really dont know how this stuff is done, but I was thinking about
having a class devoted to exchanging information between the Java
application and the Access DB. I envision a class calling a method
inside the databaseClass and passing some parameters like table names
and a DefualtListModel or an ArrayList to deposit information, or a
table name and a query field entry to retrieve information.
However, I have no idea how to set up a connection. I have spent about
2 hours tonight googling, all I can find are either super small
snippets of code that do me no good, or code that when I cut and paste
into netBeans, lights my screen up red.
So I was wondering if anyone out there had some working code for a
connection to an Access Database that they would be willing to post.
As I've said before, I learn best buy doing, so if I could just get a
start, I could most likely figure everything else on my own.
I have created a toy Access Database application. It does not do
anything great and it does not follow the best programming practices,
but it does include working code for a connection to an Access
database. To make it work, you must use the ODBC manager to register
the youraccessdb database.
(1) Since your client must also register the database with the ODBC
manager, I do not consider it easy to install.
(2) If you use a properties.txt file like I did, then it would be
trivial for you to upgrade to a real database when you realize that
Access is only appropriate for toy applications (like mine) and
definitely not highly critical applications (like yours).
public class SimpleDBApplication
public static final void main ( final java . lang . String [ ] args
) throws java . lang . Exception
final java . sql . Connection connection = getConnection ( ) ;
application ( connection ) ;
connection . close ( ) ;
* Create a file called properties.txt with driverClassName
(sun.jdbc.odbc.JdbcOdbcDriver) and url (jdbc:odbc:youraccessdb).
private static final java . sql . Connection getConnection ( )
throws java . io . IOException , java . lang . ClassNotFoundException ,
java . sql . SQLException , java . lang . InstantiationException , java
.. lang . IllegalAccessException
final java . util . Properties properties = new java . util .
Properties ( ) ;
final java . lang . Class thisClass = SimpleDBApplication .
final java . io . InputStream propertiesStream = thisClass .
getResourceAsStream ( "properties.txt" ) ;
properties . load ( propertiesStream ) ;
propertiesStream . close ( ) ;
final java . lang . String driverClassName = properties .
"driverClassName" ) ;
final java . lang . Class driverClass = java . lang . Class .
driverClassName ) ;
final java . lang . Object driverObject = driverClass .
newInstance ( )
final java . sql . Driver driver = ( java . sql . Driver ) (
driverObject ) ;
java . sql . DriverManager . registerDriver ( driver ) ;
final java . lang . String url = properties . getProperty (
"url" ) ;
final java . sql . Connection connection = java . sql .
getConnection ( url , properties ) ;
java . sql . DriverManager . deregisterDriver ( driver ) ;
return ( connection ) ;
private static final void application ( final java . sql .
Connection connection ) throws java . sql . SQLException
final java . sql . DatabaseMetaData metadata = connection .
( ) ;
final boolean supportsTransactions = metadata .
supportsTransactions ( ) ;
java . lang . System . out . println (
"supportsTransactions:\t" + supportsTransactions ) ;
final java . lang . String sqlKeywords = metadata .
getSQLKeywords ( ) ;
java . lang . System . out . println ( "sqlKeywords:\t" +
sqlKeywords ) ;
printTypeInfo ( metadata ) ;
private static final void printTypeInfo ( final java . sql .
DatabaseMetaData metadata ) throws java . sql . SQLException
final java . sql . ResultSet typeInfo = metadata . getTypeInfo
( ) ;
printTable ( typeInfo ) ;
typeInfo . close ( ) ;
* See http://java.sun.com/j2se/1.4.2/docs/api/index.html
private static final void printTable ( final java . sql . ResultSet
resultSet ) throws java . sql . SQLException
final java . sql . ResultSetMetaData metadata = resultSet .
( ) ;
final int columnCount = metadata . getColumnCount ( ) ;
while ( resultSet . next ( ) )
for ( int i = 1 ; i <= columnCount ; i ++ )
final java . lang . Object object = resultSet .
getObject ( i ) ;
java . lang . System . out . print ( object +
"\t" ) ;
java . lang . System . out . println ( ) ;