在开发程序的过程中,有时我们需要将数据存储到数据库中,但是在存储的过程中发现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配置
报错:org.xml.sax.SAXParseException; lineNumber: 6; columnNumber: 73; 对实体 "serverTimezone" 的引用必须以 ';' 分隔符结尾。
然后改为以下即可:
如何连接数据库?
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工具网。
推荐阅读: