精华内容
下载资源
问答
  • java连接数据库失败

    千次阅读 2018-05-20 12:30:28
    运行下面代码段,一直提示驱动加载失败!import java.sql.*;import java.io.*;public class Login { public static void main(String[] args)throws Exception,SQLException { String url="jdbc:mysql://...
    运行下面代码段,一直提示驱动加载失败!
    
    imp ort java.sql.*;
    imp ort java.io.*;
    public class Login {

      
        public static void main(String[] args)throws Exception,SQLException {        
        String url="jdbc:mysql://localhost:3306/phpwind_87_gbk";
        String username="root";
        String password="";
        Connection con=null;
        String  driver="com.mysql.jdbc.Driver";
        try{
              Class.forName(driver) ; 
              System.out.println("数据库加载成功!");
        }catch(ClassNotFoundException e1){
            e1.printStackTrace();
            System.out.println("驱动加载失败"+driver);
        }
        try{
            con=DriverManager.getConnection(url,username,password);
        }catch(SQLException e){
            e.printStackTrace();
            System.out.println("数据库连接失败!");
        }
        }

    }


    原因是:这个jar包没有加载,mysql-connector-java-5.1.7-bin.jar  
    (1)首先下载mysql-connector-java-5.1.7-bin.jar  将其放在:C:\Program Files\Java\jdk1.6.0_07\jre\lib\ext 这个路径下
    (2)进入Eclipse的该工程目录下,点击Properties后弹出如下界面--再点击右侧的“Add External JARs” 将C:\Program Files\Java\jdk1.6.0_07\jre\lib\ext 下的mysql-connector-java-5.1.7-bin.jar  引入进来,再次运行就OK了
    展开全文
  • 然后启动Tomcat,等待Tomcat将上传的war包解压(此时Tomcat没有启动成功,因为用户名和密码不正确),之后我手动修改了解压之后的数据库连接配置文件,然后再重启Tomcat,发现Tomcat启动失败,报错信息就是题目中的...

    说一下我的情况:

      在测试环境中运行没有任何问题,但是导出war包之后,就将war包上传到线上服务器的webapps目录下,然后启动Tomcat,等待Tomcat将上传的war包解压(此时Tomcat没有启动成功,因为用户名和密码不正确),之后我手动修改了解压之后的数据库连接配置文件,然后再重启Tomcat,发现Tomcat启动失败,报错信息就是题目中的数据库用户名密码不正确。

      1、通过命令行的mysql -uroot -p输入密码可以登录(证明线上环境的账号和密码正确)

      2、使用最基本的JDBC,设置url、username、password,测试没有问题,但是项目就是报错。

     

     

    尝试过

      1、清缓存(包括整个项目的缓存,重新打包发布),电脑和服务器重启了n遍

      2、连接mysql的url中增加编码格式:

    jdbc_url=jdbc:mysql://127.0.0.1:3306/myDB?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull
    jdbc_username=root
    jdbc_password=123456
    

      3、检查jdbc_username和jdbc_password的值前后是否有空格(删除多余的空格)

      4、检查是否开启远程连接(已经开启)

     

      上面这几种方式,在我这里并没有产生效果。

     

     

    自己尝试了一下

      重新修改了一下登录用户的权限,看是否有用:

    grant all on myDB.* to 'root'@'%' identified by '123456'
    # 用户名为root,密码为123456的用户,允许其从任意ip登录
    # 并且授予该用户对myDB这个数据库下所有表的所有权限(增删改查)
    

      发现没有用。

     

     

    揭晓答案

      如果你仔细看一下我文章开头的描述就应该知道问题出在哪里了,有两个关注点:

      1、我在打包之前,数据库配置依旧是测试环境的连接信息。

      2、上传到服务器后,居然等解压完成后再手动修改密码,然后再重启Tomcat。

      其实问题就出在这两步,而解决方案很简单,就是在打包之前修改数据库连接信息,保证导出的包是线上配置(而不是测试环境的配置)。

      因为一旦打包之后,在修改配置文件,是没有效果的。

      咱们配置文件中一般会包含线上和线下的配置环境,请在打包之前,将线下环境的配置注释掉,然后删除线上环境的配置:

    #offline_jdbc_url=xxxx
    #offline_jdbc_url=xxxx
    #offline_jdbc_url=xxxx
    
    online_jdbc_url=xxxx
    online_jdbc_url=xxxx
    online_jdbc_url=xxxx
    

      当然,如果你不是这个问题,那么你依旧可以尝试一下我上面写的那些方法,看能否解决问题。

     

    转载于:https://www.cnblogs.com/-beyond/p/10859781.html

    展开全文
  • java连接数据库,测试发现连接了sqlserver,但是不能执行sql语句,ping不了主机,
  • Java连接数据库

    千次阅读 多人点赞 2019-08-13 10:53:23
    Java连接数据库--- 主推预编译Statement 准备工作 1.创建数据库 2.导入jar包 我使用的是mysql-connector-java-5.1.8-bin.jar 简单的插入数据 方法一:预编译Statement try { /** * 通过Class.forName ...

    Java连接数据库 --- 主推预编译Statement

    准备工作   1.创建数据库

                     2.导入jar包    我使用的是  mysql-connector-java-5.1.8-bin.jar

    简单的插入数据

    方法一:预编译Statement

    try {
    	/**
    	 * 通过Class.forName 初始化驱动类com.mysql.jdbc.Driver
    	*/
        Class.forName("com.mysql.jdbc.Driver");
    	/*
    	 * 连接数据库  信息,用户,密码 
    	*/
    	Connection c = DriverManager.getConnection("jdbc:mysql://localhost:3306/login?characterEncoding=UTF-8","root","123456");
    	System.out.println("数据库连接成功"+c);
    	/**
    	* 方法1:预编译Statement
    	* PreparedStatement 执行10次,只需要1次把SQL语句传输到数据库端
        * 数据库对带?的SQL进行预编译
        * 每次执行,只需要传输参数到数据库端
        * 1. 网络传输量比Statement更小
        * 2. 数据库不需要再进行编译,响应更快
        * 3. 杜绝注入式攻击
    	*/
    	String sql = "insert into user values(null,?,?)";
    	PreparedStatement pStatement = c.prepareStatement(sql);
        //设置数据
        //传入多组数据用for循环
    	pStatement.setString(1, "zhansan");
    	pStatement.setString(2, "zhansan123456");
        //执行
    	pStatement.execute();
    }catch (SQLException e) {
        // TODO Auto-generated catch block
    	e.printStackTrace();
    }catch (ClassNotFoundException e) {
    	e.printStackTrace();
    } 
    

    方法二:statement

    try {
    	/**
    	* 通过Class.forName 初始化驱动类com.mysql.jdbc.Driver
    	*/
    	Class.forName("com.mysql.jdbc.Driver");
    	/*
    	* 连接数据库  信息  ,用户,密码 
    	*/
    	Connection c = DriverManager.getConnection("jdbc:mysql://localhost:3306/login?characterEncoding=UTF-8","root","123456");
    	System.out.println("数据库连接成功"+c);
    	/*创建Statement 用于执行sql语句*/
    	Statement s = c.createStatement();
    	System.out.println("获取 Statement对象: " + s);
    	/**
    	* 插入语句数据  注意这里插入到表名user哦,别再是数据库名
    	*/ 
        //拼接sql语句
    	String sqlString = "insert into user values(null,"+"'rendonglin'"+","+"'123456789'"+")"; 
    	//String deleteString = "删除语句";
    	//String updateString = "修改语句";
    	s.execute(sqlString);
    }catch (SQLException e) {
    	// TODO Auto-generated catch block
    	System.out.println("数据库异常");
    }catch (ClassNotFoundException e) {
    	System.out.println("连接失败");
    }

    查询数据库所有数据并打印

    
    //接在 Statement s = c.createStatement(); 后面即可
    /**
    * 查询语句,查询所有信息并打印	
    */
    String selectString = "select * from user";
    ResultSet rs = s.executeQuery(selectString);
    while(rs.next()){
    	int id = rs.getInt("id"); //可以使用字段名
    	String accountString = rs.getString(2); //可以使用字段顺序
    	String passwordString = rs.getString(3);
    	System.out.printf("%d\t%s\t%s\n",id,accountString,passwordString);
    }

    验证账号密码

    /**
    * 校验账号密码正确,避免将数据库里的数据全部传到内存中,直接在数据库里面校验
    */
    String account = "zhangyi";
    //正确的密码是:123456789
    String password = "0123456789";
    String sql = "select * from user where account = '" + account +"' and password = '" + password+"'";
    ResultSet rs = s.executeQuery(sql);
    if(rs.next())
        System.out.println("账号密码正确");
    else 
        System.out.println("账号密码错误");

    关闭数据库

    //但是得提前定义s,c;即
    //Connection c = null;
    //Statement s = null;
    finally {
          // 数据库的连接时有限资源,相关操作结束后,养成关闭数据库的好习惯
          // 先关闭Statement
          if (s != null)
              try {
                   s.close();
              } catch (SQLException e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
              }
          // 后关闭Connection
          if (c != null)
              try {
                   c.close();
              } catch (SQLException e) {
                   // TODO Auto-generated catch block
                   e.printStackTrace();
              }
     
            }

    使用事务

    /*
    在Mysql中,只有当表的类型是INNODB的时候,才支持事务,所以需要把表的类型设置为INNODB,否则无法观察到事务.
    修改表的类型为INNODB的SQL: 
    alter table hero ENGINE  = innodb;
    查看表的类型的SQL 
    show table status from how2java;
    */ 
    
    // 有事务的前提下
    // 在事务中的多个操作,要么都成功,要么都失败 
    //操作介绍  hp 先 +1,再 -1
    c.setAutoCommit(false);
      
    String sql1 = "update hero set hp = hp +1 where id = 22";
    s.execute(sql1);
      
    // 不小心写错写成了 updata(而非update)
      
    String sql2 = "updata hero set hp = hp -1 where id = 22";
    s.execute(sql2);
      
    // 手动提交
    c.commit();

     

    展开全文
  • import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; public class T2 { public static void main(String[] args) ...System.out.println("成功加载SQL驱动程序")...数据库连接失败
  • java连接Mysql数据库失败

    千次阅读 2018-12-04 10:02:12
    1.无法连接数据库:可能是因为导入的mysql-connector-java-x.x.xx.jar版本过低,无数据库版本不匹配。解决办法:下载最新的包导入,同时更改jdbc.driverClass = com.mysql.dbc.Driver为jdbc.driverClass = ...

    问题

    1.无法连接到数据库:可能是因为导入的mysql-connector-java-x.x.xx.jar版本过低,无数据库版本不匹配。解决办法:下载最新的包导入,同时更改jdbc.driverClass = com.mysql.dbc.Driver为jdbc.driverClass = com.mysql.cj.jdbc.Driver

    2.mysql的时区错误问题: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represents more than one。解决办法:从错误即可知道是时区的错误,因此只要将时区设置为你当前系统时区即可,因此使用root用户登录mysql,按照如下图所示操作即可.我电脑的系统为北京时区,因此在系统中设置后,再连接数据库运行,一切OK!

    show variables like '%time_zone%';

    set global time_zone='+8:00';

                                                   

    3.或者:private static final String URL = "jdbc:mysql://localhost:3306/db_lottery?useSSL=false&serverTimezone=UTC";

    4.db_lottery为数据库文件,useSSL=false表示不使用SSL证书,serverTimezone=UTC

    5.对实体 "serverTimezone" 的引用必须以 ';' 分隔符结尾。

    • c3p0-config.xml配置
    • <property name="jdbcUrl">jdbc:mysql:///time?useSSL=false&serverTimezone=UTC</property>
    • 报错:org.xml.sax.SAXParseException; lineNumber: 6; columnNumber: 73; 对实体 "serverTimezone" 的引用必须以 ';' 分隔符结尾。
    • 然后改为以下即可:
    • <property name="jdbcUrl">jdbc:mysql:///time?useSSL=false&amp;serverTimezone=UTC</property>
       

     

                                                          

    展开全文
  • public class ConnectionPool { private String jdbcDriver = "sun.jdbc.odbc.JdbcOdbcDriver"; private String dbPath = ""; private String dbUrl ="jdbc:odbc:driver={Microsoft Access Driver (*.mdb, *....
  • 在本机运行程序可以连接数据库,数据库用的是mySQL。把程序放到没有安装mySQL的机子上就不行了。经过我的测试发现ip地址没有问题,因为我在本机运行程序的时候把ip设置成此网络的ip是可以连接的,用localhost也是...
  • Java连接数据库代码

    千次阅读 2019-04-27 17:33:48
    Java连接数据库代码 package com.hyw.util; import java.sql.Connection; import java.sql.DriverManager; /** * 数据库工具类 * @author f21745 * */ public class DbUtil { private String dbUrl="jdbc:...
  • (8.0版本的Mysql最好也用8.0.X版本jar包,我之前用的5.1.39jar包加载MySQL驱动成功但是连接数据库失败!!!) 连接的驱动地址为"com.mysql.cj.jdbc.Driver" Mysql和mysql-connector都为8.0以上的版本时...
  • java连接数据库代码

    2012-12-03 19:16:46
    简单易懂,好用.如果你有数据库连接失败的困难,那就下下来看看把,我相信会对你有一点的帮助。
  • java 连接数据库实现用户登录功能 能运行成功,适合初学者借鉴学习。
  • Java连接数据库(增删改查)

    千次阅读 多人点赞 2019-09-01 16:09:23
    Java连接数据库首先需要jdbc数据库驱动,可去官网下载,这里就不再说了 数据库设计如下 往数据库中添加几个数据 直接上代码: 数据库查看 package com.zhmsky.cn; import java.sql.*; public class con_test { ...
  • Java连接数据库的几种方式

    千次阅读 多人点赞 2018-08-29 12:50:36
    Java连接数据库的几种方式
  • Java连接MySQL数据库失败的一种可能原因 今天写了个java访问MySQL数据库的程序,发现总是连接失败,报以下异常: Communication link failure: java.io.IOException, underlying cause: Unexpected end of input ...
  • java初学者——java连接数据库,JDK1.8+MySql8.0

    万次阅读 多人点赞 2019-03-31 11:49:09
    本人java菜鸟一名 ,通过写博客记录一下自己的学习过程,本次和大家分享一下自己在连接数据库时的出现的问题。 一、安装MySql 安装社区服务器版: 官网下载地址:https://dev.mysql.com/downloads/ 参考网上的...
  • Java程序数据库连接失败问题

    千次阅读 2015-12-20 16:42:25
    我用的是数据库配置,出现过一次plsql客户端连接正常,jdbc确链接失败的问题。 解决方法,首先确定的是plsql客户端连接成功,那么你的监听配置文件完全是可以使用的,无须再去修改,肯定是你的,连接参数有问题...
  • JAVA访问数据库之连接数据库

    千次阅读 2016-01-06 09:57:35
    开发一个访问数据库的应用程序,首先要加载数据库的驱动程序,只需要在第一次访问数据库时加载一次,然后每次运行时创建一个...在连接数据库之前,首先要把JDBC驱动类加载到java虚拟机,可以使用java.lang.Class类
  • 转载▼ 使用 JDBC 连接数据库时候,前些天还好好的,突然就不能用了,报了下边的错误at com.microsoft.sqlserver.jdbc.SQLServerException: 用户 'sa' 登录失败。 错误原因是登录失败第一步:考虑是数据库没有配置...
  • 在ecliise部署web项目时,启动本地Tomcat,数据库连接成功。但是将导出的war文件放到阿里云的Tomcat中时,发现数据库连接失败。 try{ //连接数据库的代码 ... out.println("连接数据库失败"); } 发现...
  • Java连接数据库工具类
  • java连接数据库的步骤

    千次阅读 2015-11-14 20:11:53
    JDBC连接数据库 ... 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),  这通过java.lang.Class类的静态方法forName(String className)实现。  例如:  try{  
  • java数据库的连接简单的介绍JDBCJDBC连接数据库简单步骤(以遍历数据库信息为例):代码优化与改进JDBC Dao模式4.statement安全问题statement的执行,其实是拼接sql语句,然后再一起执行。PrepareStatement5.数据库...
  • java 连接数据库以及常见错误

    千次阅读 2018-10-24 16:12:49
    最近在写一个Java小项目,用到了数据库连接的知识,一个多星期的使用也碰到了不少问题。这里把这一块总结一下。  本人使用的是eclipse编译器和MySQL数据库还有连接两个的数据库驱动。配置的话可以看我的另一篇连接...
  • java连接数据库工具类—JDBC

    千次阅读 2015-10-14 18:56:04
    是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序, ...
  • 频繁的创建和销毁数据库连接即消耗系统资源又使得程序效率低下,在这种情况下,出现了使用数据库连接池的方法,类似于线程池,初期创建一定数量的连接供应用程序使用,当使用完成后将其归还给连接池而不是销毁,这样...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 191,291
精华内容 76,516
关键字:

java连接数据库失败

java 订阅