jdbc连接数据库出现的问题,Statement一直为null

   首先描述问题的情况,本来服务端程序在服务器上可以正常运行,但是经过重装服务器上的数据库之后,修改服务端连接数据库的代码,user  password url 之后一直还是报null的错误。简单说就是在本地电脑服务器程序没错,在服务器上就有错。

  经过一系列的分析,基本可以确定就是连接数据库的User, pass和url出现了问题。

 MySQL数据库的URL写法如下: 

jdbc:mysql://hostname:port/databasename  就是主机名:端口号/数据库名。我本来是用服务器的IP地址,但是一直连不上数据库出现上文描述的错误。但是在没有重装数据库之前,一切都是正常的,到底是什么原因我也不知道,如果有路人知道,请在下面评论中说明,大家相互学习,谢谢了。我把ip地址改成127.0.0.1之后就解决了问题。

127.0.0.1是回送地址,指本地机,一般用来测试使用。回送地址(127.x.x.x)是本机回送地址(Loopback Address),即主机IP堆栈内部的IP地址,主要用于网络软件测试以及本地机进程间通信,无论什么程序,一旦使用回送地址发送数据,协议软件立即返回,不进行任何网络传输。




  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SqlHelper.java连接数据库通用类... package org.jdbc.com.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class SqlHelper { /** * 设置单例 */ public static SqlHelper instance = new SqlHelper(); /** * 设置单例的一个实例方法 * * @return */ public static SqlHelper getInstance() { if (instance == null) { synchronized (SqlHelper.class) { instance = new SqlHelper(); } } return instance; } /** * 得到MySql连接 * * @return */ public static Connection getMySqlConnection() { Connection conn = null; String url = "jdbc:mysql://127.0.0.1:3306/jdbc?useUnicode=true&characterEncoding=utf-8"; String user = "root"; String password = "root"; String driver="com.mysql.jdbc.Driver"; try { Class.forName(driver); conn = DriverManager.getConnection(url, user, password); } catch (Exception e) { System.out.println("连接数据库出现异常" + e.getMessage()); } return conn; } /** * 得到MMSQL连接 * @return */ public static Connection getMMSQLConnection() { String url = "jdbc:sqlserver://localhost:1433;DatabaseName=jdbc"; String user = "sa"; String password = "sa"; String Driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"; Connection conn = null; try { Class.forName(Driver); conn = DriverManager.getConnection(url, user, password); } catch (Exception e) { System.out.println("连接数据库出现异常" + e.getMessage()); } return conn; } /** * 得到Oracle连接 * @return */ public static Connection getOracleConnection() { String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl"; String user = "scott"; String password = "scott"; String Driver="oracle.jdbc.driver.OracleDriver"; Connection conn = null; try { Class.forName(Driver); conn = DriverManager.getConnection(url, user, password); } catch (Exception e) { System.out.println("连接数据库出现异常" + e.getMessage()); } return conn; } /*** * 释放资源... * * @param rs * @param st * @param conn */ public static void Relesae(ResultSet rs, Statement st, Connection conn) { try { if (rs != null) rs.
是一个最简单,也是学习jsp必须会的一个入门实验----通过jdbc连接数据库。 采用jsp+access数据库实现,同时使用javabean通过jdbc连接数据库。运行结果将显示从数据库查询出的图书。里面包含了javabean的源代码及解释。 提示:如果是要下jsp图书管理系统的朋友,请下载我上传的另一个资源----jsp+access图书管理系统。就不要再下本资源了,本资源只是做了一个图书的表,用以连接数据库查询图书,并没有对图书的增、删、改功能。 javabean源代码: package sjob; import java.sql.*; public class connBook { private Statement state=null; private Connection conn = null; ResultSet results=null; public connBook() { } public void openConn()throws Exception //连接数据库 { try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String url="jdbc:odbc:book"; conn=DriverManager.getConnection(url,"",""); //数据库、用户名、密码 ,创建连接对象 } catch(SQLException e) //异常处理 { System.err.println("Data.executeQuery: " +e.getMessage()); } } public ResultSet queryResult(String query) { results = null; try { state=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); //创建访问数据库的对象 results=state.executeQuery(query); //查询并返回结果 } catch(SQLException e) { System.err.println("Data.executeQuery: " + e.getMessage()); } return results; } public void closeState() { try { state.close(); //关闭访问数据库的对象 } catch(SQLException e) { System.err.println("Date.executeQuery: " + e.getMessage()); } } public void closeConn() { try { conn.close(); //断开连接 } catch(SQLException e) { System.err.println("Data.executeQuery: " + e.getMessage()); } } }
JDBC连接数据库的步骤如下: 1. 加载JDBC驱动程序 JDBC驱动程序是用来连接数据库的组件,需要先加载到JVM中。使用Class.forName()方法加载驱动程序。 2. 创建数据库连接 通过DriverManager.getConnection()方法创建数据库连接,需要提供数据库的URL、用户名和密码等信息。 3. 创建Statement对象 用于向数据库发送SQL语句的Statement对象,可以通过Connection.createStatement()方法创建。 4. 执行SQL语句并处理结果 执行SQL语句有两种方法,一种是使用Statement对象的executeQuery()方法,用于查询数据库并返回结果集;另一种是使用Statement对象的executeUpdate()方法,用于执行INSERT、UPDATE、DELETE等操作。 5. 关闭连接 使用Connection.close()方法关闭数据库连接,释放资源。 完整的示例代码如下所示: ```java import java.sql.*; public class JDBCDemo { public static void main(String[] args) { Connection conn = null; Statement stmt = null; ResultSet rs = null; try { // 加载JDBC驱动程序 Class.forName("com.mysql.jdbc.Driver"); // 创建数据库连接 conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "123456"); // 创建Statement对象 stmt = conn.createStatement(); // 执行SQL语句并处理结果 rs = stmt.executeQuery("SELECT * FROM users"); while (rs.next()) { String name = rs.getString("name"); int age = rs.getInt("age"); System.out.println("Name: " + name + ", Age: " + age); } } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { // 关闭连接 try { if (rs != null) rs.close(); if (stmt != null) stmt.close(); if (conn != null) conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值