编写的Java程序连接不上Oracle数据库

编写的Java程序连接不上Oracle数据库,第1张

Java程序连接不上Oracle数据库的原因会有很多可能性,比如代码编写错误,数据库配置有问题等等,都会屋连接失败的。

工具:

oracle

Java程序连接Oracle代码及注释已在代码中标明

package com.java.dbtest  

  

import java.sql.Connection  

import java.sql.DriverManager  

import java.sql.PreparedStatement  

import java.sql.ResultSet  

import java.sql.SQLException  

  

public class TestConnection implements DBTest{  

  

    public void SelectUser(){  

  

        //设定数据库驱动,数据库连接地址、端口、名称,用户名,密码  

        String driverName="oracle.jdbc.driver.OracleDriver"  

        String url="jdbc:oracle:thin:@localhost:1521:BJPOWERNODE"  //test为数据库名称,1521为连接数据库的默认端口  

        String user="zhidao"   //aa为用户名  

        String password="zhidao"  //123为密码  

          

        PreparedStatement pstmt = null  

        ResultSet rs = null  

          

        //数据库连接对象  

        Connection conn = null  

          

        try {  

            //反射Oracle数据库驱动程序类  

            Class.forName(driverName)  

              

            //获取数据库连接  

            conn = DriverManager.getConnection(url, user, password)  

              

            //输出数据库连接  

            System.out.println(conn)  

              

            //定制sql命令  

            String sql = "select * from t_user where user_id = ?"  

              

            //创建该连接下的PreparedStatement对象  

            pstmt = conn.prepareStatement(sql)  

              

            //传递第一个参数值 root,代替第一个问号  

            pstmt.setString(1, "root")  

              

            //执行查询语句,将数据保存到ResultSet对象中  

            rs = pstmt.executeQuery()  

              

            //将指针移到下一行,判断rs中是否有数据  

            if(rs.next()){  

                //输出查询结果  

                System.out.println("查询到名为【" + rs.getString("user_id") + "】的信息,其密码为:" + rs.getString("password"))  

            }else{  

                //输出查询结果  

                System.out.println("未查询到用户名为【" + rs.getString("user_id") + "】的信息")  

            }  

              

        } catch (ClassNotFoundException e) {  

            e.printStackTrace()  

        } catch (SQLException e) {  

            e.printStackTrace()  

        }finally{  

            try{  

                if(rs != null){  

                    rs.close()  

                }  

                if(pstmt != null){  

                    pstmt.close()  

                }  

                if(conn != null){  

                    conn.close()  

                }  

            } catch (SQLException e) {  

                e.printStackTrace()  

            }     

        }  

      

    }  

      

    public static void main(String[] args){  

        new TestConnection().SelectUser()  

    }  

}

在main函数中,右键,选择“Run as”=>"Java Application",就会运行该程序段,在Console中,可以看到运行结果,如果给出一串类似于“oracle.jdbc.driver.T4CConnection@7c242f04”这样的字符串,就说明连接成功了。

解决办法如下:

首先检查 我的电脑->管理->服务,查看是否启动了MySQL,然后打开 运行->regedit 打开注册表编辑器,检查注册表,路径见下图左下角的路径信息,把ImagePath改成你现在的路径(注意只改双引号内地路径地址)

然后在C:\Windows\System32下找到cmd.exe右键以管理员身份输入mysqld --initialize-insecure自动生成无密码的root用户,同时自动生成一个data文件夹,这时候再进行MySQL的安装,net start mysql,启动服务。

如果服务管理器中没有MySQL,在成功安装MySQL后,使用mysql的时候,在CMD中输入net start mysql,提示服务名无效,查看服务列表也找不到mysql服务。

解决办法:

在C:\Windows\System32下找到cmd.exe以管理员身份运行程序,

切换到MySQL安装目录的bin目录下

运行如下命令(具体试个人安装的MySQL版本及路径)

>cd C:\Program Files\MySQL\MySQL Server 5.6\bin

C:\Program Files\MySQL\MySQL Server 5.6\bin>mysqld.exe -install

提示  Service successfully installed.

此时,刷新服务管理器,就可以看到MySQL的服务了,然后回到前面的步骤修改ImagePath路径,然后进入cmd,输入mysqld --initialize-insecure自动生成无密码的root用户,同时自动生成一个data文件夹,这时候再进行MySQL的安装,net start mysql,启动服务。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9839596.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存