Java数据库连接(JDBC)之连接失败问题汇总

目录

文中储备知识:

1.JDBC

2.两种常见的JDBC

      (1)JDBC-ODBC桥方式

      (2)纯Java方式

3.DSN

4.JDBC操作的步骤

 

一、JDBC配置问题

1.JDBC-ODBC桥方式

2.纯Java方式

二、名字不匹配

(1)数据库名

(2)数据库对应的用户名

(3)表名

(4)表名中的属性名

         (5)与ODBC方法相关的数据源名

三、数据库连接代码


文中储备知识:

1.JDBC

JDBC是Java数据连接技术(Java Database Connection)的简称,提供连接各种常用数据库的能力。

•JDBC驱动由数据库厂商提供
–在个人开发与测试中,可以使用JDBC-ODBC桥连方式
–在生产型开发中,推荐使用纯Java驱动方式

2.两种常见的JDBC

(1)JDBC-ODBC桥方式

使用JDBC-ODBC桥方式连接数据库

将对 JDBC API 的调用,转换为对另一组数据库连接 API 的调用
优点:可以访问所有 ODBC 可以访问的数据库
缺点:执行效率低、功能不够强大

(2)纯Java方式

使用纯Java方式连接数据库

JDBC 驱动直接访问数据库
优点: 100% Java ,快又可跨平台
缺点:访问不同的数据库需要下载专用的 JDBC 驱动

但是,经过实践操作,大多数同学都觉得纯Java方式连接数据库的成功率更高些,使用JDBC-ODBC桥常连接失败(不知道是不是操作流程的问题)。

3.DSN

  • 数据源的定义:

数据源的英文是DSN(Data Source Name),它是一种用来提高数据库连接性能的常规手段。

  • 数据源的作用:

“数据库建立好之后,要设定系统的 DSN(数据来源名称),才能让网页可以知道数据库所在的位置以及数据库相关的属性。使用DSN的好处还有,如果移动数据库档案的位置,或是换成别种类型的数据库,只要重新设定 DSN 就好了,不需要去修改原来使用的程序。”

4.JDBC操作的步骤:

  1、 加载驱动程序
  2、 连接数据库
  3、 操作数据库
  4、 关闭数据库,释放连接

参考资料:

https://blog.csdn.net/lxw1844912514/article/details/100028770

https://www.cnblogs.com/cainame/p/10339294.html

https://blog.csdn.net/cuiwjava/article/details/20202859


一、JDBC配置问题

1.JDBC-ODBC桥方式

(1)配置ODBC桥的流程中出问题

A.数据源(DSN)配置

在电脑中的 “控制面板——系统和安全——管理工具——数据源(ODBC)” 中配置ODBC桥的数据源

  • 注1:数据源的英文DSN(Data Source Name)
  • 注2:配置过程中的DSN名称需要记住,用于后面用Java写数据库连接代码中的创建连接()

private Connection conn; 

conn=DriverManager.getConnection("jdbc:odbc:DSN名称","用户名","密码");

  • a. 没有选择与代码中相匹配的用户登录ID和密码

因为在配置数据源的过程中,需要在

“用户输入登录ID和密码的SQL Server 验证”下

输入在数据库创建的用户及其对应密码

  • b. 没有选择与代码中相匹配的数据库

因为在配置数据源的过程中,需要选择该用户操作的数据库

数据源的配置过程可参考:

https://blog.csdn.net/qq_41187714/article/details/103494367

 

2.纯Java方式

(1)JDBC驱动包与数据库不匹配

比如 Microsoft SQL Server 2008 R2数据库可以下载sqljdbc4驱动包

(2)添加驱动包的方法不正确

可以右键项目名——Build Path——Config Build Path...——Java Build Path ——Libraries——Add JARs或AddExternal JARS——OK

(3)驱动包路径不对

常见于拷贝了别人的项目到自己的电脑里

修改驱动包路径的方法:在项目中重新加载驱动包,即可以重新添加驱动包

添加jar包方法可参考:
https://www.cnblogs.com/yhmdjl/p/6485303.html

注:

JAR(Java Archive)是Java的一种压缩文档格式

 

二、名字不匹配

主要是数据库中的设置与代码中的不匹配

(1)数据库名

(2)数据库对应的用户名

(3)表名

比如 数据库中的表名是tblXyInfo,而 Java代码中写的是却是tblXyxx

(4)表名中的属性名

比如 数据库中的学院信息表 tblXyInfo 中有代码XyId、名称XyName、状态XyState、添加时间XyTime这几个属性。

注意:

(1)大小写的区分

(2)“同义词”

比如:学院信息表

tblXyInfo ——table xue yuan information

tblXyxx ——table xue yuan xin xi

(5)与ODBC方法相关的数据源名

 

三、数据库连接代码

除了编译中报的语法错误外,还可能存在如下问题:

1.没有实例化对象

常会编写一个xxxHelper.java 然后再实例化这个类的对象。
 

private OdbcHelper helper;//在类中定义成员

//private MssHelper helper;



helper = new OdbcHelper();//在类的方法中实例化这个成员
//helper = new MssHelper();

注:

OdbcHelper.java中存放 ODBC桥连接数据库的代码。(需配置数据源)

MssHelper.java中存放 直连数据库的代码。(需加载驱动包)

 

本篇文章将会持续更新....

 

 

你可能感兴趣的:(数据库,Java,学习笔记)