最近在学web应用开发,刚装了myeclipse6.5+oracle 11g,用的jdk1.7,前两天练习连接oracle数据库,出现好多问题,在网上搜索了两天头都大了。
    设想一:在myeclipse的db browser中新建oracle驱动,可第一步选模板oracle thin时就显示driver class not   found,度娘姑姑一通,千篇一律说是要在项目中倒入ojdbc驱动。(可是我是在没有项目的前提下,疑惑这个新建数据库驱动是依赖项目吗?)
    设想2,那就先新建项目,导入驱动(oracle安装目录里的ojbdc6.jar)到lib文件夹下,到最后运行的时候始终报java.lang.NullPointerException,应该是Manager.getConnection()为空了,上网找解决方法,大概都是说驱动包没倒入。为了这个数据库连接,找了一天多时间了,效率太低了,遂发贴求助!谢谢前辈了!!!感激涕零啊。myeclipseoraclegetConnection()web应用开发

解决方案 »

  1.   


    没有项目你没安数据库吗?里面那个导入驱动的步骤是让你从硬盘上找jar包,你直接去数据库的jdbc/lib里面找不就完了?你先把db browser连通了再说,还Manager.getConnection(),数据库好不好使都不知道你就去建项目了?Java项目连数据库用的基本就两种(ODBC没什么人用了),一种JNDI,一种JDBC,先把Java怎么连数据库弄明白了再说。不会走路就去飞效率是很高,但是容易摔死。
      

  2.   

    总算有哥哥回了,虽然感觉凶了点不过还是很感激啊。我再补充下情况吧,先装的数据库oracle 11g,而且能正常使用了,然后才想着在myeclipse上面试试看能不能连数据库。刚开始也的确想着不建工程连的,不过在db browser中第一步选择template时就出现driver class not found,网上搜索半天,教的方法前提都是在一个项目上导入驱动包,所以才无奈按教材上步骤新建一个简单的项目,就一个jsp页面,然后导入驱动,也的确是直接从硬盘上oracle的jdbc/lib目录下拿的,导入以后按教材的写了测试代码,发布运行就报java.lang.NullPointerException错误,调试以后(看的不是太懂),像是到断点Manager.getConnection()出问题了。网上又找了半天实在是没辙了大哥,你觉得可能是哪边的问题?
      

  3.   

    连接数据库有这么难?第一导入驱动!第二写入连接字符和用户名还有密码,关键是你要有oracle4.jar架包!
    代码如下!package lukang;import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    import java.util.concurrent.locks.Condition;
    import javax.naming.spi.DirectoryManager;
    import GetHai.GetHai;public class lukang {
    public static void main(String[] args) {
    GetHai get=new GetHai();
    System.out.print(get.GetHais("小花"));

    try {
    //数据库导包
    String sqls="com.microsoft.sqlserver.jdbc.SQLServerDriver";

    //数据库用户名
    String uresname="sa";

    //数据库密码
    String pwd="";

    //将数据存储于内存中
    Class.forName(sqls);

    //数据库连接
    String url="jdbc:sqlserver://localhost:1079;databaseName=student";

    //创建数据库构架
    Connection connection=DriverManager.getConnection(url,uresname,pwd);

    //创建数据库语句
    String sql="insert student values('小明',20)";

    //执行语句
    PreparedStatement ps =connection.prepareStatement(sql);

    //执行
    ps.executeUpdate();

    //关闭
    ps.close();

    //关闭
    connection.close();


    } catch (ClassNotFoundException e) {
    e.printStackTrace();
    } catch (SQLException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }}嗯好好学吧!
      

  4.   

    弄错了!这是连接sql数据库的!对不起啊!看错了!
      

  5.   


    package lukang;
     
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.SQLException;
    import java.util.concurrent.locks.Condition;
    import javax.naming.spi.DirectoryManager;
    import GetHai.GetHai;
     
    public class lukang {
     
     
        public static void main(String[] args) {
            GetHai get=new GetHai();
            System.out.print(get.GetHais("小花"));
             
            try {
                //数据库导包
                String sqls="oracle.jdbc.driver.OracleDriver";
                 
                //数据库用户名
                String uresname="sa";
                 
                //数据库密码
                String pwd="";
                 
                //将数据存储于内存中
                Class.forName(sqls);
                 
                //数据库连接
                String url="jdbc:oracle:thin:@localhost:1521:oral";
                 
                //创建数据库构架
                Connection connection=DriverManager.getConnection(url,uresname,pwd);
                 
                //创建数据库语句
                String sql="insert student values('小明',20)";
                 
                //执行语句
                PreparedStatement ps =connection.prepareStatement(sql);
                 
                //执行
                ps.executeUpdate();
                 
                //关闭
                ps.close();
                 
                //关闭
                connection.close();
                 
                 
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
     
    }我将5楼的代码改成oracle的了。楼主试试。
      

  6.   

    谢谢大家,还是原来oracle自带的驱动,放了三天假过来试试又可以了无语阿。不过在db browser中还是不能新建连接,先把这个帖子结了再说吧