데이터 베이스 MySQL 튜토리얼 JAVA连接ACCESS、MYSQL、SQLSEVER、ORACLE数据库

JAVA连接ACCESS、MYSQL、SQLSEVER、ORACLE数据库

Jun 07, 2016 pm 03:47 PM
access java mysql 연결하다

. 概述 1.1 JDBC 概念 JDBC(Java Database Connectivity) 是 Java 语言为了支持 SQL 功能而提供的与数据库连接的用户的接口, JDBC 中包括了一组由( Java )语言书写的接口和类,它们都是独立于特定的 DBMS, 或者说他们可以和各种数据库相关联。 1.2 JDBC

. 概述

1.1 JDBC概念

     JDBC(Java Database Connectivity)Java语言为了支持SQL功能而提供的与数据库连接的用户的接口,JDBC中包括了一组由(Java)语言书写的接口和类,它们都是独立于特定的DBMS,或者说他们可以和各种数据库相关联。

 

1.2 JDBC用途

    JDBC由一组Java语言编写的类和接口组成,使用内嵌式的SQL,主要实现三方面功能:建立于数据库的链接,执行SQL声明以及处理SQL执行结果;JDBC支持基本的SQL功能,使用它可以方便地与不同的关系型数据库建立联系,进行相关操作,并无需再为不同的DBMS分别编写程序。

    JDBC出现之前,通过Java访问数据库唯一方法是利用Java输入输出流访问iruwuqi端的CGI程序,通过CGI程序访问和操作数据库并得到结果。每一次访问都会由Web服务器启动一个新的CGI进程与数据库建立连接,在这种方式下,访问效率和速度都很低,且容易引入错误。

1.3 JDBC结构和特点

简单的说,JDBC能完成下列三件事:

   与一个数据库建立连接;

   向数据库发送SQL语句;

   处理数据库返回的结果。

   JDBC包含两部分与数据库独立的API面向程序开发人员的JDBC API面向底层的JDBC Driver API

面向程序开发人员的JDBC API被描述成聚集抽象的Java接口,通过这些接口应用程序可以对某个数据库打开连接,执行SQL语句并且处理结构。最重要的接口有如下几种:

java.sql.DriverManager: 处理驱动的调入并且对产生新的数据库连接提供支持

java.sql.Connection:     代表队特定数据库的连接

java.sql.Statement:       代表一个特定的容器,来对一个特定的数据库执行SQL语句

java.sql.ResultSet:        控制对一个特定语句进行数据的存取

其中java.sql.Statement又有两个子类:java.sql.PreparedStatement用于执行预编译的SQL语句和java.sql.CallableStatement用于执行对一个数据库内嵌过程的调用。

       面向底层的JDBCDriver API主要是针对数据库厂商开发数据库底层驱动程序使用的,一般情况下用于开发应用程序的程序员用不到这些类库。Java的应用程序员通过SQL包中的定义的一系列抽象类对数据库进行操作,而实现这些抽象类并完成实际操作的是数据库驱动器Driver运行的。

      

1.4 JDBC与其他的API

      处理JDBC之外,到目前为止,微软的ODBC可能是用的最为广泛的访问关系数据库的API,甚至比JDBC的应用更加广泛,它提供了连接几乎任何一种平台、任何一种数据库的能力。当然也可以在java中直接使用ODBC,JDBC的协助下,用JDBC-ODBC桥接器实现。但是为什么要用JDBC呢?

      ODBC并不适合在Java中直接使用。完全精确地实现从C代码ODBCJava API编写的JDBC的翻译也并不令人满意。ODBC并容易学习,它将简单和复杂特性混杂,。JDBC这样的Java API 对于纯Java方案来说是必须的。

II. JavaAccess数据库(Access2007)

2.1 加载驱动

引入相应的类和包,使用JDBC的源程序都需要输入java.sql包,必要的时候还需要载入JDBC-ODBC驱动包:

import sun.jdbc.odbc.JdbcOdbcDriver必要的话引入javax.sql

2.2 加载数据源

这里所谓的数据源就是用Access建立的数据库文件。假设该源名为IProducts.mdb。按照以下步骤:

(注意:如果你的操作系统是64位的,而Eclipse是32位的,此时你也应该用32位的ODBC,方法是:运行 C:\Windows\SysWOW64\odbcad32.exe 。 因为控制面板中打开的ODBC数据管理器默认是64位的。 否则会报错:[Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配。)

控制面板——管理工具——数据源(ODBC) (如图2.1

JAVA连接ACCESS、MYSQL、SQLSEVER、ORACLE数据库


2.1 

打开ODBC Data Source Administrator对话框——选择系统DSN(不选用户DSN,因为系统DSN可以避免调试时候出现权限问题),然后添加,在弹出的页面选择Microsoft Access Driver(装了2007,可以选*.mdb, *.accdb)(如图2.2

JAVA连接ACCESS、MYSQL、SQLSEVER、ORACLE数据库

2.2

完成”——“选择

JAVA连接ACCESS、MYSQL、SQLSEVER、ORACLE数据库

在右边选择要添加的数据库文件,数据源名里填写“IProducts”(这个随意填写,不过要记住后面要用到的)

2.3 代码实现

CODE:
public booleanlinkByUsingAccess() {
        Statement stat = null;
        Connection con = null;
        ResultSet rs = null;
        try {
            // 加载JDBC驱动
           Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            // 创建数据库连接
            con =DriverManager.getConnection("jdbc:odbc:IProducts","","");
       // 没有设置密码,所以用户名和密码留空
           String sql = "select * from devil_lang_map";
            stat =con.createStatement();
            rs =stat.executeQuery(sql);
            int i = 97;
            while(rs.next()) {
               String value = rs.getString("human");
               treeMap.put(((char) i++) + "", value);
            }
        } catch (Exception e) {
           e.printStackTrace();
            returnfalse;
        } finally {
            try {
               if (rs != null) {
                   rs.close();
               }
               if (stat != null) {
                   stat.close();
               }
               if (con != null) {
                   con.close();
               }
            } catch(Exception e2) {
               e2.printStackTrace();
               return false;
            }
        }
        return true;
    }
로그인 후 복사


2.4 注意

2.4.1在装载驱动时(执行Class.forName()),驱动将自动向JDBC注册自己。需要注意的是,使用Class.forName()方法可能抛出一个ClassNotFoundException异常,所以在驱动程序类有可能不存在时,会抛出这个异常。

2.4.2打开连接于数据库建立连接的标准方法是调用DriverManager.getConnection。该方法接收含有某个URL的字符串。DriverManager类(即所谓的JDBC管理层)将尝试找到可与那个URL所代表的数据库进行连接的驱动程序。DriverManager类存有已注册的Driver类的清单。当调用方法getConnection时,它将检查清单中的每个驱动程序,知道找到可与URL中指定的数据库进行连接的驱动程序为止,Driver ManagergetConnection方法使用这个URL来建立市级的链接。

2.4.3 JDBC URL的标准语法由三部分组成,各部分间用冒号分隔,例如jdbc:子协议>:子名称>

jdbc——协议。JDBC URL中的协议总是JDBC子协议>——驱动程序名或数据库连接机制(可以一个或多个驱动程序支持)。子协议名的典型事例是odbc,该名称是为用于指定ODBC风格的数据资源名称的URL专门保留的。例如,为了通过JDBC-ODBC桥来访问某个数据库。子名称>——一种标识数据库的方法。

III. JavaSQL Server数据库(SQL Server2008)

(注:为方便起见,下面的Sql Server一律以SS代替)

3.1 连接代码与语句分析

3.1.1重要语句功能简述

Class.forName(“xxx”);

JDBC中已经有多个驱动,此句话是遍历系统中已经注册的驱动程序,直到找到一个正确的驱动程序。

Connection con = DriverManager.getConnection(url);

如果无法获得连接,程序将会抛出一个异常,所以如果程序已经执行到这里,说明已经连接成功。

3.1.2代码

CODE:
public voidtestSQLServer() {
        Connection con = null;
        Statement stat = null;
        ResultSet rs = null;
        try {
           Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
           //DriverManager.setLogStream(System.out);
            String url ="jdbc:sqlserver://localhost:1492;databasename=javaDB";
            String user= "JavaDB";
            Stringpassword = "8316051";
            con =DriverManager.getConnection(url, user, password);
            stat =con.createStatement();
            String sql ="select * from currentdb";
            rs =stat.executeQuery(sql);
            while(rs.next()){
               System.out.println("DB_Name: " + rs.getString("NAME"));
               System.out.println("DB_Corporation: " +rs.getString("CORPORATION"));
            }
        } catch (Exception e) {
           e.printStackTrace();
        } finally {
            try {
               if (rs != null) {
                   rs.close();
               }
               if (stat != null) {
                   stat.close();
               }
               if (con != null) {
                   con.close();
               }
            } catch(Exception e1) {
               e1.printStackTrace();
            }
        }
}
로그인 후 복사


3.2 Sql Server 2008错误解决与MyEclipse连接SS异常解决

3.2.1驱动引导问题

首先,从官网上下载驱动:http://www.microsoft.com/downloadS/details.aspx?familyid=99B21B65-E98F-4A61-B811-19912601FDC9&displaylang=zh-cn

此驱动同时支持SS2000 SS2005 SS2008

加载方法在工程上右键——Properties——Java Build Path——Libraries——Add ExternalJARs..然后选择jar包即可。

驱动中有两个jarsqljdbc.jarsqljdbc4.jar

分别加载后如图3.13.2

3.1

3.2

然而加载sqljdbc.jar后连接数据库提示如下异常:(图3.3

3.3

后来移除了sqljdbc.jar(移除方法同加载方法,只是选择不同而已),加载sqljdbc4.jar,连接SS数据库只需要将包引入,而不需显示地将包import。(如图3.4

3.4

3.2.2 MyEclipse异常

提示信息:com.microsoft.sqlserver.jdbc.SQLServerException:通过端口 1368连接到主机localhostTCP/IP连接失败。错误:“Connection refused: connect。请验证连接属性,并检查 SQL Server的实例正在主机上运行,且在此端口接受 TCP/IP连接,还要确保防火墙没有阻止到此端口的 TCP连接。确保使用了正确的JDBC驱动程序(注意版本)解决方案:

检查驱动连接语句“con = DriverManager.getConnection(url, user, password);“一句中的端口号是否与Sql Server Configuration Manager中的TCP/IP里面设置的TCP端口一致;在cmd中输入”telnet localhost port”来检查某个端口是否已经开启,如果提示无法开启端口,则证明该端口由于某种原因无法开启。禁用TCP/IP服务,然后重启;重启Sql Server服务(Express版本显示为SqlServer(Express))。

提示信息:com.microsoft.sqlserver.jdbc.SQLServerException:用户 'JavaDB'登录失败。

分析:程序能够运行到此,证明数据库加载正确。

解决方法:

用户名或密码错误;数据库中不存在此用户。

 

3.2.3 SS数据库错误:

提示信息:已成功与服务器建立连接,但是在登录过程中发生错误。   (provider:  共享内存提供程序,   error:   0   -  管道的另一端上无任何进程。

解决方法:

选中服务器(右键)->属性->安全性->服务器身份验证修改为"SQL SERVERWINDOWS身份验证模式";展开服务器上的"安全性"->登陆名->选中SA登陆帐号(右键)->状态->登陆修改为启用;重启Sql Server服务即可。(注:必须重启才能见效);重启Microsoft SQL Server ManagementStudio(不是必须的)。

问题描述:在登录时无法打开默认数据库

解决方法:

此问题与上一个问题有所关联。是没有设置用户映射数据库。用另外一个可用的用户登录,然后选择安全性”——“登录名”——“用户映射,选择一个数据库。

问题描述:使用新建的账户登录之后发现数据库中只有系统数据库,刷新提示无法为该请求检索数据

解决方法:使用具有sysadmin权限的账户登录,然后在安全性”——“登录名中右键点新用户的用户名,在弹出的登录属性对话框中选择服务器角色,选择“sysadmin”。此时刷新新用户,就会看到其他的数据库。如果要设置新用户的owner,则在登录属性对话框中选择用户映射,选中要设置的数据库,选中下面的“db_owner”即可。

3.2.4创建一个新账户

在一个具有sysadmin权限的账户中点击安全性”——“登录名右键点击,然后在用户名一栏输入用户名,选择Windows认证或者Sql Server认证,然后输入密码(Windows认证不需要),取消密码过期一项,在最底下选择数据库和语言,然后确认。

 

IV. JavaOracle数据库

4.1 加载驱动

该驱动所在位置是:

Oracle安装目录——Ora92——lib——ojdbc14.jar

注:如果不加载驱动,则异常为:java.lang.ClassNotFoundException:oracle.jdbc.driver.OracleDriver

4.2 连接代码

CODE:
publicOracle() {
        Connection con = null;
        Statement stat = null;
        ResultSet rs = null;
        try {
           Class.forName("oracle.jdbc.driver.OracleDriver");
            String url ="jdbc:oracle:thin:@localhost:1521:Jason";
            String user= "scott";
            Stringpassword = "tiger";
            con =DriverManager.getConnection(url, user, password);
            stat =con.createStatement();
            String sql ="select * from emp";
            rs =stat.executeQuery(sql);
            while(rs.next()){
               System.out.println(rs.getString(1));
            }
        } catch (Exception e) {
           e.printStackTrace();
        } finally {
            try {
               if (rs != null) {
                   rs.close();
               }
               if (stat != null) {
                   stat.close();
               }
               if (con != null) {
                   con.close();
               }
            } catch(Exception e2) {
               e2.printStackTrace();
            }
        }
}
 
로그인 후 복사


 

V. JavaMy SQL

5.1 加载驱动

加载驱动:mysql-connector-java-5.1.5-bin.jar

5.2 代码

CODE;
publictestMySql() {
        Connection con = null;
        Statement stat = null;
        ResultSet rs = null;
        try {
            Class.forName("com.mysql.jdbc.Driver");
            String url ="jdbc:mysql://localhost:3306/datang";
            String user= "root";
            Stringpassword = "admin";
            con =DriverManager.getConnection(url, user, password);
            stat = con.createStatement();
            String sql ="select * from t_admin";
            rs =stat.executeQuery(sql);
            while(rs.next()) {
               System.out.println(rs.getString(1));
            }
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            try {
               if (rs != null) {
                   rs.close();
               }
               if (stat != null) {
                   stat.close();
               }
               if (con != null) {
                   con.close();
               }
            } catch(Exception e2) {
               e2.printStackTrace();
            }
        }
}
로그인 후 복사


 


본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

MySQL : 초보자를위한 데이터 관리의 용이성 MySQL : 초보자를위한 데이터 관리의 용이성 Apr 09, 2025 am 12:07 AM

MySQL은 설치가 간단하고 강력하며 데이터를 쉽게 관리하기 쉽기 때문에 초보자에게 적합합니다. 1. 다양한 운영 체제에 적합한 간단한 설치 및 구성. 2. 데이터베이스 및 테이블 작성, 삽입, 쿼리, 업데이트 및 삭제와 같은 기본 작업을 지원합니다. 3. 조인 작업 및 하위 쿼리와 같은 고급 기능을 제공합니다. 4. 인덱싱, 쿼리 최적화 및 테이블 파티셔닝을 통해 성능을 향상시킬 수 있습니다. 5. 데이터 보안 및 일관성을 보장하기위한 지원 백업, 복구 및 보안 조치.

Navicat에서 데이터베이스 비밀번호를 검색 할 수 있습니까? Navicat에서 데이터베이스 비밀번호를 검색 할 수 있습니까? Apr 08, 2025 pm 09:51 PM

Navicat 자체는 데이터베이스 비밀번호를 저장하지 않으며 암호화 된 암호 만 검색 할 수 있습니다. 솔루션 : 1. 비밀번호 관리자를 확인하십시오. 2. Navicat의 "비밀번호 기억"기능을 확인하십시오. 3. 데이터베이스 비밀번호를 재설정합니다. 4. 데이터베이스 관리자에게 문의하십시오.

SQL IF 문을 사용하는 방법 SQL IF 문을 사용하는 방법 Apr 09, 2025 pm 06:12 PM

SQL IF 명령문은 구문을 다음과 같이 조건부로 실행하는 데 사용됩니다. if (조건) 그런 다음 {state} else {state} end if;. 조건은 유효한 SQL 표현식 일 수 있으며 조건이 참이면 당시 조항을 실행하십시오. 조건이 false 인 경우 else 절을 ​​실행하십시오. 명세서를 중첩 할 수있는 경우 더 복잡한 조건부 점검이 가능합니다.

Navicat Premium을 만드는 방법 Navicat Premium을 만드는 방법 Apr 09, 2025 am 07:09 AM

Navicat Premium을 사용하여 데이터베이스 생성 : 데이터베이스 서버에 연결하고 연결 매개 변수를 입력하십시오. 서버를 마우스 오른쪽 버튼으로 클릭하고 데이터베이스 생성을 선택하십시오. 새 데이터베이스의 이름과 지정된 문자 세트 및 Collation의 이름을 입력하십시오. 새 데이터베이스에 연결하고 객체 브라우저에서 테이블을 만듭니다. 테이블을 마우스 오른쪽 버튼으로 클릭하고 데이터 삽입을 선택하여 데이터를 삽입하십시오.

MariaDB 용 Navicat에서 데이터베이스 비밀번호를 보는 방법은 무엇입니까? MariaDB 용 Navicat에서 데이터베이스 비밀번호를 보는 방법은 무엇입니까? Apr 08, 2025 pm 09:18 PM

MariaDB 용 Navicat은 암호가 암호화 된 양식으로 저장되므로 데이터베이스 비밀번호를 직접 볼 수 없습니다. 데이터베이스 보안을 보장하려면 비밀번호를 재설정하는 세 가지 방법이 있습니다. Navicat을 통해 비밀번호를 재설정하고 복잡한 비밀번호를 설정하십시오. 구성 파일을 봅니다 (권장되지 않음, 위험이 높음). 시스템 명령 줄 도구를 사용하십시오 (권장되지 않으면 명령 줄 도구에 능숙해야 함).

Navicat은 mysql/mariadb/postgresql 및 기타 데이터베이스에 연결할 수 없습니다 Navicat은 mysql/mariadb/postgresql 및 기타 데이터베이스에 연결할 수 없습니다 Apr 08, 2025 pm 11:00 PM

Navicat이 데이터베이스 및 해당 솔루션에 연결할 수없는 일반적인 이유 : 1. 서버의 실행 상태를 확인하십시오. 2. 연결 정보를 확인하십시오. 3. 방화벽 설정을 조정하십시오. 4. 원격 액세스 구성; 5. 네트워크 문제 문제 해결; 6. 권한을 확인하십시오. 7. 버전 호환성을 보장합니다. 8. 다른 가능성 문제를 해결하십시오.

Navicat에서 MySQL에 새로운 연결을 만드는 방법 Navicat에서 MySQL에 새로운 연결을 만드는 방법 Apr 09, 2025 am 07:21 AM

응용 프로그램을 열고 새로운 연결 (Ctrl n)을 선택하여 Navicat에서 새로운 MySQL 연결을 만들 수 있습니다. "MySQL"을 연결 유형으로 선택하십시오. 호스트 이름/IP 주소, 포트, 사용자 이름 및 비밀번호를 입력하십시오. (선택 사항) 고급 옵션을 구성합니다. 연결을 저장하고 연결 이름을 입력하십시오.

Navicat의 Local MySQL에 연결하는 방법 Navicat의 Local MySQL에 연결하는 방법 Apr 09, 2025 am 07:45 AM

Navicat을 사용하여 로컬 MySQL 데이터베이스에 연결하려면 : 연결을 만들고 연결 이름, 호스트, 포트, 사용자 이름 및 비밀번호를 설정하십시오. 연결을 테스트하여 매개 변수가 올바른지 확인하십시오. 연결을 저장하십시오. 연결 목록에서 새 연결을 선택하십시오. 연결하려는 데이터베이스를 두 번 클릭하십시오.

See all articles