Java Tutorial/Database/DataSource

Материал из Java эксперт
Перейти к: навигация, поиск

Look up DataSource from InitialContext

   <source lang="java">

import java.sql.Connection; import javax.naming.InitialContext; import javax.sql.DataSource; public class Main {

 public static void main(String[] argv) throws Exception {
   InitialContext init = new InitialContext();
   DataSource source = (DataSource) init.lookup("dsn");
   Connection connection = source.getConnection();
   System.out.println("Connect to " + connection.getCatalog() + " a success!");
 }

}</source>





Use JNDI to get database connection or data source

   <source lang="java">

import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.servlet.Servlet; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.sql.DataSource; public class Main extends HttpServlet implements Servlet {

 protected void doGet(HttpServletRequest request, HttpServletResponse response)
     throws ServletException, IOException {
   DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
   response.setContentType("text/html");
   PrintWriter writer = response.getWriter();
   Connection connection = getConnection();
   if (connection != null) {
     String sql = "SELECT SYSDATE FROM DUAL";
     try{
     PreparedStatement statement = connection.prepareStatement(sql);
     ResultSet rs = statement.executeQuery();
     while (rs.next()) {
       Date date = rs.getDate("SYSDATE");
       writer.println("The current date is " + dateFormat.format(date));
     }
     connection.close();
     }catch(Exception e){
       System.out.println(e);
     }
   }
 }
 protected void doPost(HttpServletRequest request, HttpServletResponse response)
     throws ServletException, IOException {
 }
 private Connection getConnection() {
   Connection connection = null;
   try {
     InitialContext context = new InitialContext();
     DataSource dataSource = (DataSource) context.lookup("jdbc/DataSource");
     connection = dataSource.getConnection();
   } catch (NamingException e) {
     e.printStackTrace();
   } catch (SQLException e) {
     e.printStackTrace();
   }
   return connection;
 }

}</source>