JDBC 你应该知道的事

JDBC你应该知道的事?

/*
 * 文 件 名:  DbUtils.java
 * 版    权:  Co., Ltd. Copyright YYYY-YYYY,  All rights reserved
 * 描    述:  <描述>
 * 修 改 人:   * 修改时间:  Apr 19, 2013
 * 跟踪单号:  <跟踪单号>
 * 修改单号:  <修改单号>
 * 修改内容:  <修改内容>
 */
package com.huawei.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * <一句话功能简述>
 * <功能详细描述>
 * 
 * @author   * @version  [版本号, Apr 19, 2013]
 * @see  [相关类/方法]
 * @since  [产品/模块版本]
 */
public class DbUtils
{
    private static DbUtils dbUtils = new DbUtils();
    
    private DbUtils()
    {
        
    }
    
    public static DbUtils getInstance()
    {
        return dbUtils;
    }
    
    public void queryExcute()
    {
        
        Connection conn = null;
        Statement stm = null;
        ResultSet result = null;
        try
        {
            Class.forName("oracle.jdbc.driver.OracleDriver");
        }
        catch (ClassNotFoundException e)
        {
            e.printStackTrace();
        }
        try
        {
            conn = DriverManager.getConnection("jdbc:oracle:thin:@10.137.107.160:1521:iptvmem",
                    "userdb30",
                    "I_Vcbs33");
            
            stm = conn.createStatement();
            
            String sql = "select * from ocs_tasktodo2 o where o.subscriberno ='"
                    + "826670842" + "'";
            
            result = stm.executeQuery(sql);
            
            if (null != result)
            {
                while (result.next())
                {
                    System.out.println(result.getString("subscriberno"));
                }
            }
            
        }
        catch (SQLException e)
        {
            e.printStackTrace();
        }
        finally
        {
            try
            {
                result.close();
                stm.close();
                conn.close();
            }
            catch (SQLException e)
            {
                e.printStackTrace();
            }
        }
        
    }
}


哈哈,我知道的就这么多,懂一点补充一点

        try
        {
            Class.forName("oracle.jdbc.driver.OracleDriver");
        }
        catch (ClassNotFoundException e)
        {
            e.printStackTrace();
        }

这一行没有任何的设值,孤独的立在代码中,有点奇怪,于是我删掉了这一行。再跑一边,哈哈报错了

java.sql.SQLException: No suitable driver
	at java.sql.DriverManager.getConnection(DriverManager.java:545)
	at java.sql.DriverManager.getConnection(DriverManager.java:171)
	at com.huawei.jdbc.DbUtils.queryExcute(DbUtils.java:59)
	at com.huawei.jdbc.DbUtils.main(DbUtils.java:40)
Exception in thread "main" java.lang.NullPointerException
	at com.huawei.jdbc.DbUtils.queryExcute(DbUtils.java:87)
	at com.huawei.jdbc.DbUtils.main(DbUtils.java:40)

猜测这个是给jvm申明一个Oracle驱动的实例。

 

再接着

conn = DriverManager.getConnection("jdbc:oracle:thin:@10.137.107.160:1521:iptvmem",
                    "userdb30",
                    "I_Vcbs33");

使用DriverManager建立了一个连接,可以看下其中的方法

    public static synchronized Connection getConnection(String url, 
	String user, String password) throws SQLException {
        java.util.Properties info = new java.util.Properties();

        // Gets the classloader of the code that called this method, may 
	// be null.
	ClassLoader callerCL = DriverManager.getCallerClassLoader();

	if (user != null) {
	    info.put("user", user);
	}
	if (password != null) {
	    info.put("password", password);
	}

        return (getConnection(url, info, callerCL));
    }



再接下来就是:

            stm = conn.createStatement();
            
            String sql = "select * from ocs_tasktodo2 o where o.subscriberno ='"
                    + "826670842" + "'";
            
            result = stm.executeQuery(sql);
            
            if (null != result)
            {
                while (result.next())
                {
                    System.out.println(result.getString("subscriberno"));
                }
            }

 

请大神解释一下,从上至下的流程!

 

 

posted @ 2013-04-19 21:32  xinyuyuanm  阅读(176)  评论(0编辑  收藏  举报