Eclipse中连接数据库步骤以及相关问题
1、程序中连接数据库的步骤
public static void main(String[] args) { String DriverName="com.mysql.jdbc.Driver";//com.microsoft.sqlserver.jdbc.SQLServerDriver/org.postgresql.Driver String userName="smith.shi"; String passWord="123456"; String URL = "jdbc:mysql://211.152.47.84:3306/h_news?useUnicode=true&characterEncoding=UTF-8";
try {
//Class.forName(DriverName);
Connection dbConn=DriverManager.getConnection(URL, userName, passWord);
System.out.println("连接数据库成功");
try {
Statement statement = dbConn.createStatement();
// 要执行的SQL语句
String sql = "select * from t_datatable_fulllink";
// 结果集
ResultSet rs = statement.executeQuery(sql);
while(rs.next()) {
// 选择status_id这列数据
String status_id = rs.getString("status_id");
// 输出结果
System.out.println(rs.getString("request_date") + "\t" + status_id);
}
rs.close(); dbConn.close();//关闭连接
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
System.out.println("连接数据库失败");
// TODO: handle exception
}
}
控制台输出如下:
正常来说连接数据库都是就是上面的那部分代码,但是我发现如果不写Class.forName(DriverName)这一行代码,还是可以连接到对应的数据库。后来查阅了一些资料发现——jdbc4.0 是不用显式的去加载驱动,如果驱动包符合 SPI 模式就会自动加载 就是说程序会自动去项目中查找是否有驱动。也就是说我们只要在项目中有连接数据库的相关jar包,这行代码不用写,他会主动的去加载。上面有三种数据库,MySQL跟sqlserver都是常用的数据库,这里主要说下最后一种postgresql,因为我们没有下载这个驱动的相关jar包,故这个jar包需要我们自己手动添加,下载jar包的网址是:https://jdbc.postgresql.org/download.html。
导入jar包方法(eclipse):右击项目,找到Build path-->configure build path,然后依次点击蓝色、绿色部分。找到我们需要添加的本地jar包地址,最终效果就是如红色部分所示,然后保存关闭即可。
如果说我们在连接数据库的时候报No suitable driver found for jdbc...这样的错,那么就表示这个项目没有相关连接数据库的jar包,此时我们需要检查并补全我们所需要的jar包。
补充一下:我们在连接数据库的时候所用的URL也就是我们所说的数据源,但是需要注意的是MySQL的数据源格式跟sqlserver的数据源格式是不一样的
MySQL:datasource.url=jdbc:mysql://连接的IP地址:端口号/数据库名?useUnicode=true&characterEncoding=utf-8&useSSL=false
举例:datasource.url=jdbc:mysql://211.152.47.84:3306/h_news?useUnicode=true&characterEncoding=UTF-8
Sqlserver:datasource.url=jdbc:sqlserver://连接的IP地址:端口号;DatabaseName=数据库名
举例:datasource.url=jdbc:sqlserver://211.152.47.69:1433;DatabaseName=DC_TEST
Postgresql:datasource.url=jdbc:postgresql://连接的IP地址:端口号/数据库名
这里可能会有人有疑问了,为什么MySQL中我的数据源格式不太对劲,后面少个&useSSL=false,这里涉及到SSL证书的问题,有时候我们连接数据库的时候加上这个可能会导致程序中证书部分报错,所以我们可以连接的时候可以不用加这个。说到证书连接问题,这里又想到一个事情,之前有项目涉及到网站以及网站证书的东西,运行后错误信息大致如下:PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target。一开始以为是本地环境的问题,后来查阅了很多资料才发现是所访问网站在本地的证书配置问题。
博客参考:https://blog.csdn.net/gabriel576282253/article/details/81531746(这个很好用,解决了我的问题)