JDBC 简介
JDBC(Java Data Base Connectivity,java 数据库连接)是一种用于执行 SQL 语句的 JavaAPI,可以为多种关系
数据库提供统一访问,它由一组用 Java 语言编写的类和接口组成。JDBC 提供了一种基准,据此可以构建更高
级的工具和接口,使数据库开发人员能够编写数据库应用程序。
JDBC 原理
JDBC 原理:JDBC 是以前 SUN 公司定义的一套访问数据库的接口(没有具体实现),一套标准,具体的实现是由
各大数据库厂家去实现,每个数据库厂家都有自己的 JDBC 实现,也就是 JDBC 驱动实现类,Java 应用程序连接
指定数据库,需要使用厂家提供的 JDBC 驱动才能连接。(这里其实就是 java 多态的一种体现,一个接口可以有
很多具体的实现)
![]()
JDBC 连接数据库步骤
第一步:加载驱动;
第二步:连接数据库;
第三步:使用语句操作数据库;
第四步:关闭数据库连接,释放资源;
在项目里配置数据库驱动
右击项目 ->Build Path -> Configure Build Path -> Add Exteranl JARs...
jar包下载地址: 链接:https://pan.baidu.com/s/1i5RLSQp 密码:i9o9
1 package JDBC;
2
3 import java.sql.Connection;
4 import java.sql.DriverManager;
5 import java.sql.SQLException;
6
7 public class Demo {
8 // 数据库地址
9 private static String dbUrl="jdbc:mysql://localhost:3306/JavaJDBC";
10 // 用户名
11 private static String dbUserName="root";
12 // 密码
13 private static String dbPassword="root";
14 // 驱动名称
15 private static String jdbcName="com.mysql.jdbc.Driver";
16
17 public static void main(String[] args) {
18 try {
19 Class.forName(jdbcName); //加载注册驱动,进入JVM
20 System.out.println("加载驱动成功!");
21 } catch (ClassNotFoundException e) {
22 // TODO Auto-generated catch block
23 e.printStackTrace();
24 System.out.println("加载驱动失败!");
25 }
26 Connection con=null;
27 try {
28 // 获取数据库连接
29 con=DriverManager.getConnection(dbUrl, dbUserName, dbPassword);
30 System.out.println("获取数据库连接成功!");
31 System.out.println("进行数据库操作!");
32 } catch (SQLException e) {
33 // TODO Auto-generated catch block
34 e.printStackTrace();
35 }finally{
36 try {
37 con.close();
38 } catch (SQLException e) {
39 // TODO Auto-generated catch block
40 e.printStackTrace();
41 }
42 }
43 }
44
45 }
各种驱动的连接方法:
1. MySQL(http://www.mysql.com) mysql-connector-java-2.0.14-bin.jar ;
Class.forName( "org.gjt.mm.mysql.Driver" );
cn = DriverManager.getConnection( "jdbc:mysql://MyDbComputerNameOrIP:3306/myDatabaseName", sUsr, sPwd );
2. PostgreSQL(http://www.de.postgresql.org) pgjdbc2.jar ;
Class.forName( "org.postgresql.Driver" );
cn = DriverManager.getConnection( "jdbc:postgresql://MyDbComputerNameOrIP/myDatabaseName", sUsr, sPwd );
3. Oracle(http://www.oracle.com/ip/deploy/database/oracle9i/) classes12.zip ;
Class.forName( "oracle.jdbc.driver.OracleDriver" );
cn = DriverManager.getConnection( "jdbc:oracle:thin:MyDbComputerNameOrIP:1521:ORCL", sUsr, sPwd );
4. Sybase(http://jtds.sourceforge.net) jconn2.jar ;
Class.forName( "com.sybase.jdbc2.jdbc.SybDriver" );
cn = DriverManager.getConnection( "jdbc:sybase:Tds:MyDbComputerNameOrIP:2638", sUsr, sPwd );
//(Default-Username/Password: "dba"/"sql")
5. Microsoft SQLServer(http://jtds.sourceforge.net) ;
Class.forName( "net.sourceforge.jtds.jdbc.Driver" );
cn = DriverManager.getConnection( "jdbc:jtds:sqlserver://MyDbComputerNameOrIP:1433/master", sUsr, sPwd );
6. Microsoft SQLServer(http://www.microsoft.com) ;
Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver" );
cn = DriverManager.getConnection( "jdbc:microsoft:sqlserver://MyDbComputerNameOrIP:1433;databaseName=master", sUsr, sPwd );
7. ODBC
Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );
Connection cn = DriverManager.getConnection( "jdbc:dbc:" + sDsn, sUsr, sPwd );
8.DB2 Class.forName("com.ibm.db2.jdbc.net.DB2Driver");
String url="jdbc:db2://192.9.200.108:6789/SAMPLE"
cn = DriverManager.getConnection( url, sUsr, sPwd );
9.access由于access并不是作为一项服务运行,所以url的方法对他不适用。access可以通过odbc,也可以通过服务器映射路径的形式 找到.mdb文件,参见http://rmijdbc.objectweb.org/Access/access.html
![]()
![]()
数据库连接成功!!!
对照python django mysql数据库连接:
(不使用sqllite)
settings.py:
1 DATABASES = {
2 'default': {
3 'ENGINE': 'django.db.backends.mysql',
4 'NAME': "Wxh",
5 'USER': "root",
6 'PASSWORD': "root",
7 'HOST': "127.0.0.1",
8 }
9 }
然后在models中设置表字段,
makemigrations apps
migrations apps
即可对此数据库建表.
注:从Java6(JDBC4)开始,可以不再加载注册驱动,可直接DriverManager获取连接对象