찾다
데이터 베이스MySQL 튜토리얼数据库技术-JDBC连接MySQL_MySQL

bitsCN.com

数据库技术-JDBC连接MySQL

摘 要:JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯Java API 编写数据库应用程序,并且可跨平台运行,并且不受数据库供应商的限制。
1、跨平台运行:这是继承了Java语言的“一次编译,到处运行”的特点;
2、不受数据库供应商的限制:巧妙在于JDBC设有两种接口,一个是面向应用程序层,其作用是使得开发人员通过SQL调用数据库和处理结果,而不需要考虑数据库的提供商;另一个是驱动程序层,处理与具体驱动程序的交互,JDBC驱动程序可以利用JDBC API创建Java程序和数据源之间的桥梁。应用程序只需要编写一次,便可以移到各种驱动程序上运行。Sun提供了一个驱动管理器,数据库供应商——如MySQL、Oracle,提供的驱动程序满足驱动管理器的要求就可以被识别,就可以正常工作。所以JDBC不受数据库供应商的限制。
JDBC API可以作为连接Java应用程序与各种关系数据库的纽带,在带来方便的同时也有负面影响,以下是JDBC的优、缺点。优点如下:
操作便捷:JDBC使得开发人员不需要再使用复杂的驱动器调用命令和函数; 可移植性强:JDBC支持不同的关系数据库,所以可以使同一个应用程序支持多个数据库的访问,只要加载相应的驱动程序即可; 通用性好:JDBC-ODBC桥接驱动器将JDBC函数换成ODBC; 面向对象:可以将常用的JDBC数据库连接封装成一个类,在使用的时候直接调用即可。

缺点如下:

访问数据记录的速度受到一定程度的影响; 更改数据源困难:JDBC可支持多种数据库,各种数据库之间的操作必有不同,这就给更改数据源带来了很大的麻烦

关键字:JDBC 数据库 MySQL
 

数据库技术-JDBC连接MySQL

一、JDBC连接数据库的流程及其原理

1、在开发环境中加载指定数据库的驱动程序。

MySQL支持JDBC的驱动程序的是:mysql-connector-java-5.1.18-bin.jar)

2、在Java程序中加载驱动程序。在Java程序中,

Class.forName(“指定数据库的驱动程序”)

Class.forName(“com.mysql.jdbc.Driver”)

3、创建数据连接对象

Connection connection = DriverManager.getConnection(“连接数据库的URL", "用户名","密码”)。URL=协议名+IP地址(域名)+端口+数据库名称;用户名和密码是指登录数据库时所使用的用户名和密码。

Connection connect =

DriverManager.geiConnection(“jdbc:mysql://localhost:3306/DatabaseName","root","123" )

4、创建Statement对象

Statement 类的主要是用于执行静态 SQL 语句并返回它所生成结果的对象。

Statement statament =connection.createStatement();

Statement statamentMySQL =connectMySQL.createStatement(); 

5、调用Statement对象的相关方法执行相对应的 SQL 语句

statement.excuteUpdate( "INSERTINTO table (name, age, sex,address, depart, worklen,wage)" + "VALUES ('Tom1', 321, 'M', 'china','Personnel','3','3000' ) ") ;

通过调用Statement对象的executeQuery()方法进行数据的查询,而查询结果会得到ResulSet对象,ResulSet表示执行查询数据库后返回的数据的集合,ResulSet对象具有可以指向当前数据行的指针。通过该对象的next()方法,使得指针指向下一行,然后将数据以列号或者字段名取出。如果当next()方法返回null,则表示下一行中没有数据存在。使用示例代码如下:

ResultSet resultSel =statement.executeQuery( "select * from table" ); 

6、关闭数据库连接:

Connection的close() 方法及时关闭数据连接。

finally {
try {
if (rs !=null) {
rs.close();
}
if (stmt !=null) {
stmt.close();
}
if (conn!=null) {
conn.close();
}
} catch (Exception e2) {
System.out.println(e2.toString());
}
}

二、演示

首先,MySQL数据库的准备

1、 我们需要知道MySQL的url user password

§ 注:查看方式:mysql> show variables

§ /

§ 或者通过其他MySQL辅助软件一目了然的看到本机MySQL的配置,我这里使用的是mysql workbench

§ /

§ /

§ 查看到我的

§ ipurl:localhost3308

§ user:root

§ password :123

§ 关于url 的localhost为数据库所在地址ip,本机mysql同样也在局域网中192.168.1.115 地址(也就是本机ip)

§ 查看方法:cmd->ipconfig

§ /

 

 

2、 打开MySQL建立一个数据库,进行jdbc连接的准备

§ 说明下我们的jdbc connection需要连接到某地址的某数据库

§ 格式参考Connection connect =

DriverManager.geiConnection(“jdbc:mysql://localhost:3306/DatabaseName","root" ,"123")

 

接下来建立数据库吧,

使用MySQL建立:

/

我建了个名叫zoo的数据库接下来可以进行java jdbc连接了。

1. 首先是倒入mysql的 jdbc驱动jar,

a) 工程下建立lib文件夹,放入mysql-connector-java的jar

b) /

c) Add jars加入jar

d) /

代码编写

package myjdbc;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
public class Connn {	
public static void main(String[] args) throws SQLException {		
String user = "root";		
String password = "123";		
String url = "jdbc:mysql://localhost:3308/zoo";		
String url2 = "jdbc:mysql://192.168.1.115:3308/zoo";		
String url3 = "jdbc:mysql://localhost:3308/zoo?user=root&password=123&useUnicode=true&characterEncoding=8859_1";
String driver = "com.mysql.jdbc.Driver";		
String tableName = "animal";		
String sqlstr = "insert into animal (id,name,year) value("+5+","+"aiii"+","+33+");";		
Connection conn = null;		
Statement stmt = null;		
ResultSet rs = null;		
try {			
Class.forName(driver);			
conn = DriverManager.getConnection(url3, "root", "123");			
stmt = conn.createStatement();						
System.out.println("数据库连接成功!");					
} 
catch (ClassNotFoundException e) {			
System.out.println("数据库驱动不存在!");			
System.out.println(e.toString());		
} 
catch (SQLException e) {			
System.out.println("SQL错误");			
System.out.println(e.toString());		
} 
finally {			
try {				
if (rs != null) {					
rs.close();				
}				
if (stmt != null) {					
stmt.close();				
}				
if (conn != null) {					
conn.close();				
}			
} 
catch (Exception e2) {				
System.out.println(e2.toString());			
}		
}	
}
}

/

 

连接成功!

三、总结

Jdbc 连接数据库不复杂,连接的模式已定义的很清晰,按照

Class.forName(“com.mysql.jdbc.Driver”) ->

DriverManager.getConnection ->

CreateStatement ->

rs进行操作

的方式就可以顺利进行。

注意容易出错的地方: DriverManager.getConnection 后面的写法比较多

1. String url = "jdbc:mysql://localhost:3308/zoo";

2. String url2 = "jdbc:mysql://192.168.1.115:3308/zoo";

3. String url3 = "jdbc:mysql://localhost:3308/zoo?user=root&password=123&useUnicode=true&characterEncoding=8859_1";

这几种都可以,主要是端口不要错,一般没有问题!

提供点帮助文件吧:

mysql-essential-5.6.0 下载地址 http://download.csdn.net/detail/zhangty0223/6811589

提供一个学习资料:

mysql从零开始学part1: http://download.csdn.net/detail/zhangty0223/6811667

mysql从零开始学part2: http://download.csdn.net/detail/zhangty0223/6811695

java jdbc mysql 驱动:http://download.csdn.net/detail/zhangty0223/6819387

整个工程源码:http://download.csdn.net/detail/zhangty0223/6819457

谢谢! 

2014.1.7

以上就是数据库技术-JDBC连接MySQL_MySQL的内容,更多相关内容请关注PHP中文网(www.php.cn)!


성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
Java8(291)之后禁用了TLS1.1使JDBC无法用SSL连接SqlServer2008怎么解决Java8(291)之后禁用了TLS1.1使JDBC无法用SSL连接SqlServer2008怎么解决May 16, 2023 pm 11:55 PM

Java8-291之后,禁用了TLS1.1,使JDBC无法用SSL连接SqlServer2008怎么办,以下是解决办法修改java.security文件1.找到jre的java.security文件如果是jre,在{JAVA_HOME}/jre/lib/security中,比如????C:\ProgramFiles\Java\jre1.8.0_301\lib\security如果是Eclipse绿色免安装便携版在安装文件夹搜索java.security,比如????xxx\plugins\org

mysql怎么替换换行符mysql怎么替换换行符Apr 18, 2022 pm 03:14 PM

在mysql中,可以利用char()和REPLACE()函数来替换换行符;REPLACE()函数可以用新字符串替换列中的换行符,而换行符可使用“char(13)”来表示,语法为“replace(字段名,char(13),'新字符串') ”。

mysql怎么将varchar转换为int类型mysql怎么将varchar转换为int类型May 12, 2022 pm 04:51 PM

转换方法:1、利用cast函数,语法“select * from 表名 order by cast(字段名 as SIGNED)”;2、利用“select * from 表名 order by CONVERT(字段名,SIGNED)”语句。

MySQL复制技术之异步复制和半同步复制MySQL复制技术之异步复制和半同步复制Apr 25, 2022 pm 07:21 PM

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于MySQL复制技术的相关问题,包括了异步复制、半同步复制等等内容,下面一起来看一下,希望对大家有帮助。

Java错误:JDBC错误,如何解决和避免Java错误:JDBC错误,如何解决和避免Jun 24, 2023 pm 02:40 PM

随着Java的广泛应用,Java程序在连接数据库时经常会出现JDBC错误。JDBC(JavaDatabaseConnectivity)是Java中用于连接数据库的编程接口,因此,JDBC错误是在Java程序与数据库交互时遇到的一种错误。下面将介绍一些最常见的JDBC错误及如何解决和避免它们。ClassNotFoundException这是最常见的JDBC

Java使用JDBC API连接MySQL数据库遇到的常见问题Java使用JDBC API连接MySQL数据库遇到的常见问题Jun 10, 2023 am 09:55 AM

近年来,Java语言的应用越来越广泛,而JDBCAPI是Java应用程序中与数据库交互的一种创造性方法,JDBC基于一种名为ODBC的开放数据库连接标准,使得Java应用程序能够连入任何数据库管理系统(DBMS)。其中,MySQL更是一款备受青睐的数据库管理系统。然而,连接MySQL数据库时,开发人员也会遇到一些常见问题,本文旨在介绍JDBCAPI连接M

Java如何实现JDBC批量插入Java如何实现JDBC批量插入May 18, 2023 am 10:02 AM

一、说明在JDBC中,executeBatch这个方法可以将多条dml语句批量执行,效率比单条执行executeUpdate高很多,这是什么原理呢?在mysql和oracle中又是如何实现批量执行的呢?本文将给大家介绍这背后的原理。二、实验介绍本实验将通过以下三步进行a.记录jdbc在mysql中批量执行和单条执行的耗时b.记录jdbc在oracle中批量执行和单条执行的耗时c.记录oracleplsql批量执行和单条执行的耗时相关java和数据库版本如下:Java17,Mysql8,Oracl

MySQL中的JDBC编程该如何分析MySQL中的JDBC编程该如何分析May 30, 2023 pm 10:19 PM

一、数据库编程的必备条件编程语言,如Java,C、C++、Python等数据库,如Oracle,MySQL,SQLServer等数据库驱动包:不同的数据库,对应不同的编程语言提供了不同的数据库驱动包,如:MySQL提供了Java的驱动包mysql-connector-java,需要基于Java操作MySQL即需要该驱动包。同样的,要基于Java操作Oracle数据库则需要Oracle的数据库驱动包ojdbc。二、Java的数据库编程:JDBCJDBC,即JavaDatabaseConnectiv

See all articles

핫 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를 무료로 생성하십시오.

뜨거운 도구

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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