连接数据库是采用/相对路劲/还是用绝对路径?

解决方案 »

  1.   

    Connection conn = null;
    //Oracle JDBS驱动
    String driverName = "oracle.jdbc.driver.OracleDriver";
    String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
    String username = "scott";
    String password = "tiger";
    //1.加载驱动
    try {
    Class.forName(driverName);//通过反射,显示加载驱动
    } catch (ClassNotFoundException e) {
    e.printStackTrace();
    }
    //2.创建连接
    try {
    conn = DriverManager.getConnection(url, username, password);
      

  2.   

    package com.dao;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;public class BaseDao {

    public final static String DRIVER = "com.microsoft.sqlserver.jdbc.SQLServerDriver";                        // 数据库驱动
        public final static String URL    = "jdbc:sqlserver://IP地址:端口;DataBaseName=数据库名";           // url
        public final static String DBNAME = "用户名";                                                                  // 数据库用户名
        public final static String DBPASS = "密码";                                                         // 数据库密码
        
        /**
         * 得到数据库连接
         * @throws ClassNotFoundException
         * @throws SQLException
         * @return 数据库连接
         */
        public Connection getConn() throws ClassNotFoundException, SQLException{
            Class.forName(DRIVER);                                                   //注册驱动
            Connection conn = DriverManager.getConnection(URL,DBNAME,DBPASS);        //获得数据库连接
            return conn ;                                                            //返回连接
        }
        
        /**
         * 释放资源
         * @param conn 数据库连接
         * @param pstmt PreparedStatement对象
         * @param rs 结果集
         */
        public void closeAll( Connection conn, PreparedStatement pstmt, ResultSet rs ) {
            /*  如果rs不空,关闭rs  */
            if(rs != null){
                try { rs.close();} catch (SQLException e) {e.printStackTrace();}
            }
            /*  如果pstmt不空,关闭pstmt  */
            if(pstmt != null){
                try { pstmt.close();} catch (SQLException e) {e.printStackTrace();}
            }
            /*  如果conn不空,关闭conn  */
            if(conn != null){
                try { conn.close();} catch (SQLException e) {e.printStackTrace();}
            }
        }
        
        /**
         * 执行SQL语句,可以进行增、删、改的操作,不能执行查询
         * @param sql    预编译的 SQL 语句
         * @param param  预编译的 SQL 语句中的‘?’参数的字符串数组
         * @return       影响的条数
         */
        public int executeSQL(String preparedSql,String[] param) {
            Connection        conn  = null;
            PreparedStatement pstmt = null;
            int               num   = 0;
            
            /*  处理SQL,执行SQL  */
            try {
                conn = getConn();                               // 得到数据库连接
                pstmt = conn.prepareStatement(preparedSql);     // 得到PreparedStatement对象
                if( param != null ) {
                    for( int i = 0; i < param.length; i++ ) {
                        pstmt.setString(i+1, param[i]);         // 为预编译sql设置参数
                    }
                }
                num = pstmt.executeUpdate();                    // 执行SQL语句
            } catch (ClassNotFoundException e) {
                e.printStackTrace();                            // 处理ClassNotFoundException异常
            } catch (SQLException e) {
                e.printStackTrace();                            // 处理SQLException异常
            } finally {
                closeAll(conn,pstmt,null);                      // 释放资源
            }
            return num;
        }}
      

  3.   

    绝对路径和相对路径是针对资源文件来说的,链接数据库不存在路径问题,在链接数据库的url、username以及password中都不涉及到路径,所有这种问法是不对的哦
      

  4.   

    package com.export.zhang.impor.db;import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;/**
     * JDBC连接数据库
     * 
     * @author Administrator
     * 
     */
    public class DBUConnection
    {
        private static final String URL = "jdbc:mysql://localhost:3306/dome";    private static final String USER_SIZE = "com.mysql.jdbc.Driver";    private static final String USER = "root";    private static final String PWD = "mysql";    // 加载Mysql驱动
        static
        {
            try
            {
                Class.forName(USER_SIZE);
            }
            catch (ClassNotFoundException e)
            {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }    // 获得数据库连接
        public static Connection getConnection()
        {
            Connection conn = null;
            try
            {
                conn = DriverManager.getConnection(URL, USER, PWD);
            }
            catch (SQLException e)
            {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return conn;
        }    // 关闭数据库流
        public static void classAll(Connection conn, Statement state, ResultSet rs)
        {
            try
            {
                if (rs != null)
                {
                    rs.close();
                }
                if (state != null)
                {
                    state.close();
                }
                if (conn != null)
                {
                    conn.close();
                }
            }
            catch (SQLException e)
            {
                e.printStackTrace();
            }
        }    // 测试连接
        public static void main(String[] args)
        {
            System.out.println(DBUConnection.getConnection());
        }}
    路径是URL  URL 代表的是获得数据库连接,  连接数据库好像不存在路径问题
      

  5.   

    数据库是写在注册表里的,和配置java时设置环境变量道理一样,不需要写路径,直接声明就能找到。
    如果非要说的话,是算绝对路径的。
    本来就是项目外联的存在,不可能写相对路径
      

  6.   

    帅哥,数据库的URL是不存在什么绝对和相对路径的,每种数据库的URL格式都是一定的。只有什么资源文件、配置文件什么的才有这么一说。
      

  7.   


     private static final String   请教为什么在连接数据库/加载驱动/连接数据库密码和帐户/要设置上述4个关键字?
      

  8.   

       其实也可以不用这样, 你知道这几个关键字的意思吗?  你知道了就不会这样问了啊,
       1.private:表示私有,私有就是除了class自己之外,任何人都不可以直接使用
       2.static: 在静态方法中不能调用非静态的方法和引用非静态的成员变量
       3.String就不要说了吧  呵呵   这样定义的好处现在应该也知道了吧?