java怎么连接数据库不成功?如何连接数据库?

在开发程序的过程中,有时我们需要将数据存储到数据库中,但是在存储的过程中发现java连接数据库不成功,这是怎么回事?下面来我们就来给大家讲解一下java连接数据库不成功的内容。

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配置

jdbc:mysql:///time?useSSL=false&serverTimezone=UTC

报错:org.xml.sax.SAXParseException; lineNumber: 6; columnNumber: 73; 对实体 "serverTimezone" 的引用必须以 ';' 分隔符结尾。

然后改为以下即可:

jdbc:mysql:///time?useSSL=false&serverTimezone=UTC

如何连接数据库?

1.加载驱动

Class.forname(数据库驱动名);

2.建立数据库连接

使用DriverManager类的getConnection()静态方法来获取数据库连接对象,其语法格式如下所示:

Connection conn=DriverManager.getConnection(String url,String user,String pass);

其中url--数据库连接字符串.

user---数据库的用户名

pass---数据库密码

3.创建Statement对象

对数据库进行操作或访问时,需要使用sql语句,在Java语言中,sql语句通过Statement对象进行封装,发送给数据库。Statement对象不是通过Statement类直接创建的,而是通过Connection对象所提供的方法来创建各种Statement对象。

Statement smt=Connection.createStatement();

4.执行sql语句

获取Statement对象之后,就可以调用该对象的不同方法来执行sql语句,所有Statement都有以下三种执行sql语句的方法,具体哪一种方法由sql语句所产生的结果来决定。

如果sql语句运行后能产生结果集,Statement对象则将结果集封装成ResultSet查询语句,并返回一个ResultSet结果集对象。

5.关闭数据库

(1)关闭结果集

(2)关闭Statement对象

(3)关闭连接

连接mysql数据库代码如下:

package practice;
import java.sql.*;
import java.util.Collection;
public class test1
{
    public static void main(String args[])
    {
        String driver = "com.mysql.jdbc.Driver";
        String user = "root";
        String password = "数据库密码";
        String url = "jdbc:mysql://localhost:3306/typesql";
        try
        {
            //加载数据库驱动
            Class.forName(driver);
            //连接数据库
            Connection conn = DriverManager.getConnection(url, user, password);
            System.out.println("连接成功!");
            //创建Statement对象
            Statement stmt = conn.createStatement();
            //建立结果集
            ResultSet rs = stmt.executeQuery("SELECT id,username FROM userdetails");
            System.out.println("查询成功!");
            while (rs.next())
            {
                System.out.println(rs.getString(1) + " " + rs.getString("username"));
            }
            //关闭结果集
            rs.close();
            //关闭Statement对象
            stmt.close();
            //关闭数据库
            conn.close();
        }
        catch (ClassNotFoundException e)
        {
            e.printStackTrace();
        }
        catch (SQLException e)
        {
            e.printStackTrace();
        }
    }
}

使用以上方法就是可以数据库连接成功了,连接成功之后,就可以进行数据存储,方便开发人员的下次使用!最后大家如果想要了解更多java常见问题知识,敬请关注奇Q工具网。

推荐阅读:

java命令提示符怎么用?如何利用命令提示符编译?

java分布式项目如何搭建?java分布式系统架构实例

JAVA基础笔试题有哪些?JAVA基础笔试题积累