凯哥学堂

搜索

凯哥学堂

JDBC的介绍和数据库的连接

2017-8-24 14:37| 发布者: 可可| 查看: 5| 评论: 0|原作者: 夏目有尔|来自: 凯哥学堂VIP15班

凯哥学堂 首页 资讯 学习笔记 查看内容

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工程:

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

image

1.2普通java工程:

找到工程jar包,将其复制到工程中,然后选中工程中的这个jar包,右键点击添加到Build Path中即可,jar包可自行上网下载,此处本人采用的是上述Maven工程下载下来的jar包。

注意:如果想删除此jar包,需先选中对应的那个小瓶子图案然后右键选择remove from build path,再删除粘贴进去的jar包即可。

2启动数据库,保证数据库可以网络连接方式

3加载驱动

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

image

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

image

3.2有些数据库其实已经自动帮我们加载Driver类了,所以就算我们在代码中不加载Driver类,运行时也会自动帮我们加载,如MySQL和Oracle数据库就是这样的。

3.3如何判断数据库有没有自动帮我们加载Driver类:在数据库jar包中看看有没有在META-INF/servies目录下写着自动加载的文件。以MySQL为例,在其目录下找到了java.sql.Driver文件,里面内容如下:

image

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



鲜花

握手

雷人

路过

鸡蛋

关注我们


微信

微博

QQ