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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,743评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,296评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,285评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,485评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,581评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,821评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,960评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,719评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,186评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,516评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,650评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,329评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,936评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,757评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,991评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,370评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,527评论 2 349

推荐阅读更多精彩内容

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