JDBC的介绍和数据库的连接

声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。



JDBC的介绍:


1.JDBC设计理念:
java依赖数据库去存储程序需要的数据,我们用java写好一个程序后,我们会把这个程序所需要的数据都存储到数据库中,当客户运行程序时,程序需要读取数据库中的数据,实现这个操作的就是JDBC。而为了规范,为了统一管理,把责任都转给数据库开发商(在接口中详细讲解过),java只负责写出一系列的接口,至于怎么去实现【学Java,到凯哥学堂kaige123.com】这些接口,那就都是数据库开发商的事情了,所以JDBC API中除了有一个操作类其他都是接口。


2.什么是驱动类:


数据库开发商为了能让java程序连接到自己的数据库上,他们就必须要自己写实现这些接口的类,然后打成jar包交给程序员,这样只要程序员将这些jar包加入到工程中去,那这个程序就可以读取数据库里面的数据了。而这些实现接口的操作类就被称为驱动类。
3.JDBC常用接口介绍(在java.sql包下面):


DirverManager(驱动管理员):这是一个操作类,用于创建Connection对象。
Connection:数据库连接对象
Statement:SQL执行对象
PreparedStatement:SQL预处理执行对象
ResultSet:查询的结果集
ResultSetMetaData:查询表结构
CallableStatement:存储过程调用

连接数据库步骤:


1.要连接什么数据库就去找什么数据库的驱动然后添加到工程中去,其实就是下载相应的jar包(下面以连接MySQL数据库为例):


1.1Maven工程:


image

去中央库找到此jar包,在pom中添加依赖即可:


1.2普通java工程:


找到工程jar包,将其复制到工程中,然后选中工程中的这个jar包,右键点击添加到Build Path中即可,jar包可自行上网下载,此处本人采用的是上述Maven工程下载下来的jar包。
注意:如果想删除此jar包,需先选中对应的那个小瓶子图案然后右键选择remove from build path,再删除粘贴进去的jar包即可。
2启动数据库,保证数据库可以网络连接方式


3加载驱动


image
image
image

3.1加载驱动的原理和目的:加载驱动实际上就是为了加载Driver类,这样Driver类里面的静态块就会执行,执行后就会马上注册驱动到驱动管理员类中。下图是Driver类里面的内容:

所以首先我们要加载Driver类:加载类有多种方式,可以new它的对象,可以用专门加载类的方法Class.forName()等,一般我们都倾向于使用加载类的方法,代码如下图:

3.2有些数据库其实已经自动帮我们加载Driver类了,所以就算我们在代码中不加载Driver类,运行时也会自动帮我们加载,如MySQL和Oracle数据库就是这样的。
3.3如何判断数据库有没有自动帮我们加载Driver类:在数据库jar包中看看有没有在META-INF/servies目录下写着自动加载的文件。以MySQL为例,在其目录下找到了java.sql.Driver文件,里面内容如下:


4.使用DriverManager管理员,创建Connection对象


4.1在创建对象时,我们需要传进三个参数:url,用户名,密码
4.2 url:用来告诉类连接的是什么数据库,服务器的地址和端口,数据库名字以及其它设置(如字体设置之类的)
4.3 MySQL中url的写法:
4.3.1默认本地和默认的3306端口:
jdbc:mysql:///数据库名字
4.3.2自定义:


jdbc:mysql://服务器地址:服务器端口/数据库名字
如果用此种方式写默认的那就是
jdbc:mysql://localhost(写本地地址):3306/mysql

4.3.3解决中文乱码问题(如果数据库里的是中文而导出来的不是中文或者加进去的是中文,但在数据库中却是以乱码的形式存在则可以用此种写法解决)
jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8
注意:此处设置的字符集和数据库中的字符集要一致,这里是UTF-8,那么数据库中也必须是UTF-8。


4.4代码实现:


image


5.各种数据库连接的代码提示要点:


oracle数据库
driverClass:oracle.jdbc.driver.OracleDriver
url:jdbc:oracle:thin:@127.0.0.1:1521:dbname
mysql数据库
driverClass:com.mysql.jdbc.Driver

(PS:有的时候,mysql的驱动类也也会看到使用org.gjt.mm.mysql.Driver 的情况,org.gjt.mm.mysql.Driver是早期的驱动名称,后来就改名为com.mysql.jdbc.Driver,现在一般都推荐使用 com.mysql.jdbc.Driver。在最新版本 的mysql jdbc驱动中,为了保持对老版本的兼容,仍然保留了 org.gjt.mm.mysql.Driver,但是实际上 org.gjt.mm.mysql.Driver中调用了 com.mysql.jdbc.Driver,因此现在这两个驱动没有什么区别。)


url:jdbc:mysql://localhost:3306/mydb
DB2数据库
driverClass:com.ibm.db2.jcc.DB2Driver
url:jdbc:db2://127.0.0.1:50000/dbname
sybase数据库
driverClass:com.sybase.jdbc.SybDriver
url:jdbc:sybase:Tds:localhost:5007/dbname
PostgreSQL数据库
driverClass:org.postgresql.Driver
url:jdbc:postgresql://localhost/dbname
Sql Server2000数据库
driverClass:com.microsoft.jdbc.sqlserver.SQLServerDriver
url:jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=dbname
Sql Server2005数据库
driverClass:com.microsoft.sqlserver.jdbc.SQLServerDriver
url:jdbc:sqlserver://localhost:1433; DatabaseName=dbname

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本人的环境为Myeclipse10、MySQL5.7.15 本文包括:简介JDBC编程步骤打通数据库程序详解—Dr...
    廖少少阅读 3,998评论 7 39
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,760评论 18 399
  • 其实 凡尘中的我们 心里多多少少都有林黛玉一样的真 所以林黛玉会是我们心之一角的纯 说到林黛玉 听到林黛玉 心里的...
    茶润人生阅读 207评论 0 1
  • 昨晚十二点一过,我开始钻在被窝里大哭。 为什么啊?!因为我22岁了。 其实我也不知道自己在哭什么,好不容易挤进了大...
    花仙子酱阅读 555评论 7 6
  • 定义 BFC(Block formatting context)直译为"块级格式化上下文"。它是一个独立的渲染区域...
    Arno_z阅读 2,564评论 1 5