Lightweight Directory Access Protocol (LDAP)
Common Object Request Broker Architecture (CORBA) Common Object Services (COS) name service
Java Remote Method Invocation (RMI) Registry
Domain Name Service (DNS)
packageme.zeph.jdbc.example.dao;importme.zeph.jdbc.example.model.Book;importjavax.naming.Context;importjavax.naming.InitialContext;importjavax.naming.NamingException;importjavax.sql.DataSource;importjava.sql.Connection;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;publicclassBookDaoWithDS{publicBookfindBookByISBN(intisbn){Bookbook=null;Statementstatement=null;Connectionconnection=null;try{connection=getConnection();statement=connection.createStatement();book=getBook(statement.executeQuery(getQuerySqlFor(isbn)));}catch(SQLExceptione){e.printStackTrace();}finally{try{if(statement!=null){statement.close();}if(connection!=null){connection.close();}}catch(SQLExceptione){e.printStackTrace();}}returnbook;}privateConnectiongetConnection()throwsSQLException{DataSourcedataSource=null;try{InitialContextinitialContext=newInitialContext();ContextenvContext=(Context)initialContext.lookup("java:/comp/env");dataSource=(DataSource)envContext.lookup("jdbc/mysql/bookshelf");}catch(NamingExceptione){e.printStackTrace();}returndataSource.getConnection();}privateStringgetQuerySqlFor(intisbn){return"select * from book where isbn = "+isbn+";";}privateBookgetBook(ResultSetresultSet)throwsSQLException{Bookbook=null;while(resultSet.next()){book=newBook();book.setIsbn(resultSet.getInt(1));book.setName(resultSet.getString(2));book.setPrice(resultSet.getDouble(3));book.setAuthor(resultSet.getString(4));}returnbook;}}