大家好,我是个不折不扣的新手 现在在恶补开发知识
工具使用的是 myeclipse 8.0 oracle 10g tomecat 6 jdk 1.6 这些
手头一本工具书讲的是web开发 对于数据库部分讲的比较少 而且说的是MySQL oracle只是顺带一提  
而且书中完全用的代码而没介绍 eclipse myeclipse的操作
我仿照书中代码慢慢练习 前面一些简单的还行 到了数据库连接这里折腾了两天也没结果以下是一些疑问 请不吝赐教1 关于Myeclipse Tomcat 和 Tomcat 是什么关系呢?  
是因为我在Myeclipse里配置了tomcat所以才有了MyeclipseTomcat,从而在workspace文件夹生成项目的相关文件,还是不依赖安装的Tomcat,软件自带了这些功能?2 关于工具书或者教程 有没有讲用eclipse或者myeclipse如何开发的基础教程 尤其连接数据库这里讲的详细一点的 给个连接或者提示就可以3 关于JDBC 按书上的例子不成功后,我在CSDN下载了一个演示Myeclipse连接Oracle数据库的项目 代码如下JScript codeimport java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;public class TestPro1 {    /**
     * @param args
     * @带有输入输出参数的存储过程在java中调用!
     */
    public static void main(String[] args) {
        try {
            Class.forName("oracle.jdbc.driver.OracleDriver");
            Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:ORCL","SCOTT","12345");
            CallableStatement cs = con.prepareCall("{call dim_inout(?,?,?)}");
            cs.setInt(1, 7788);
            //给第二个?赋值
            cs.registerOutParameter(2, oracle.jdbc.OracleTypes.VARCHAR);
            cs.registerOutParameter(3, oracle.jdbc.OracleTypes.NUMBER);
            cs.execute();
            
            String name = cs.getString(2);
            double sal = cs.getDouble(3);
            System.out.println("7788的用户名是:"+name+"工资是:"+sal);
        } catch (Exception e) {
            e.printStackTrace();
        }
        
        
        
    }}
  错误信息是
java.sql.SQLException: ORA-06550: 第 1 行, 第 7 列:  
PLS-00201: 必须声明标识符 'DIM_INOUT'
ORA-06550: 第 1 行, 第 7 列:  
PL/SQL: Statement ignoredat oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
at oracle.jdbc.driver.T4CCallableStatement.doOall8(T4CCallableStatement.java:212)
at oracle.jdbc.driver.T4CCallableStatement.executeForRows(T4CCallableStatement.java:951)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1160)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3285)
at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3390)
at oracle.jdbc.driver.OracleCallableStatement.execute(OracleCallableStatement.java:4223)
at TestPro1.main(TestPro1.java:20)
开始那部分我搜索了一下都说是权限问题 可这SCOTT应该是缺省用户啊 后来换成了SYSTEM 也是同样的错误 请教下应该怎么解决
以上问题各位如果觉得回答起来太繁琐 给出个可用的连接我慢慢看也可以 多谢指教

解决方案 »

  1.   

    [code=Java]
    java各种数据库连接
    Java codeMySQL:    
        String Driver="com.mysql.jdbc.Driver";    //驱动程序
        String URL="jdbc:mysql://localhost:3306/db_name";    //连接的URL,db_name为数据库名    
        String Username="username";    //用户名
        String Password="password";    //密码
        Class.forName(Driver).new Instance();
        Connection con=DriverManager.getConnection(URL,Username,Password);
    Microsoft SQL Server 2.0驱动(3个jar的那个):
        String Driver="com.microsoft.jdbc.sqlserver.SQLServerDriver";    //连接SQL数据库的方法
        String URL="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_name";    //db_name为数据库名
        String Username="username";    //用户名
        String Password="password";    //密码
        Class.forName(Driver).new Instance();    //加载数据可驱动
        Connection con=DriverManager.getConnection(URL,UserName,Password);    //
    Microsoft SQL Server 3.0驱动(1个jar的那个): // 老紫竹完善
        String Driver="com.microsoft.sqlserver.jdbc.SQLServerDriver";    //连接SQL数据库的方法
        String URL="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_name";    //db_name为数据库名
        String Username="username";    //用户名
        String Password="password";    //密码
        Class.forName(Driver).new Instance();    //加载数据可驱动
        Connection con=DriverManager.getConnection(URL,UserName,Password);    //
    Sysbase:
        String Driver="com.sybase.jdbc.SybDriver";    //驱动程序
        String URL="jdbc:Sysbase://localhost:5007/db_name";    //db_name为数据可名
        String Username="username";    //用户名
        String Password="password";    //密码
        Class.forName(Driver).newInstance();    
        Connection con=DriverManager.getConnection(URL,Username,Password);
    Oracle(用thin模式):
        String Driver="oracle.jdbc.driver.OracleDriver";    //连接数据库的方法
        String URL="jdbc:oracle:thin:@loaclhost:1521:orcl";    //orcl为数据库的SID
        String Username="username";    //用户名
        String Password="password";    //密码
        Class.forName(Driver).newInstance();    //加载数据库驱动
        Connection con=DriverManager.getConnection(URL,Username,Password);    
    PostgreSQL:
        String Driver="org.postgresql.Driver";    //连接数据库的方法
        String URL="jdbc:postgresql://localhost/db_name";    //db_name为数据可名
        String Username="username";    //用户名
        String Password="password";    //密码
        Class.forName(Driver).newInstance();    
        Connection con=DriverManager.getConnection(URL,Username,Password);
    DB2:
        String Driver="com.ibm.db2.jdbc.app.DB2.Driver";    //连接具有DB2客户端的Provider实例
        //String Driver="com.ibm.db2.jdbc.net.DB2.Driver";    //连接不具有DB2客户端的Provider实例
        String URL="jdbc:db2://localhost:5000/db_name";    //db_name为数据可名
        String Username="username";    //用户名
        String Password="password";    //密码
        Class.forName(Driver).newInstance();    
        Connection con=DriverManager.getConnection(URL,Username,Password);
    Informix:
        String Driver="com.informix.jdbc.IfxDriver";    
        String URL="jdbc:Informix-sqli://localhost:1533/db_name:INFORMIXSER=myserver";    //db_name为数据可名
        String Username="username";    //用户名
        String Password="password";    //密码
        Class.forName(Driver).newInstance();    
        Connection con=DriverManager.getConnection(URL,Username,Password);
    JDBC-ODBC:
        String Driver="sun.jdbc.odbc.JdbcOdbcDriver";
        String URL="jdbc:odbc:dbsource";    //dbsource为数据源名
        String Username="username";    //用户名
        String Password="password";    //密码
        Class.forName(Driver).newInstance();    
        Connection con=DriverManager.getConnection(URL,Username,Password);/code]
      

  2.   

    囧,Tomcat是个服务器,dim_inout应该是个存储过程吧,具体内容LZ写在哪
      

  3.   

    如果初学sql还是别用到存储过程好。至少要把sqlserver、oracle数据库的增删查改弄明白。一般用eclipse或者myeclipse链接数据库很少使用jdbc的,使用jdbc仅仅是学习的时候才用。而现在的开发大多数使用ssh框架(hibernate+struts2+spring),像连接数据库执行数据库的操作,一般由hibernate框架完成。在学习的时候使用jdbc链接数据库步骤很简单,一般而言大致是为以下3步:
           1.定义driver、url、username、password
          2.加载驱动
           3.打开连接
    代码一楼演示的很清楚,可以参考。但是在做这些步骤之前必须先在项目中导入对应数据库的driver,不然可能报:jdbc:not found exception。。