zoukankan      html  css  js  c++  java
  • 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工程:

    去中央库找到此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
  • 相关阅读:
    mysql系列二、mysql内部执行过程
    mysql系列一、mysql数据库规范
    Centos6.5使用yum安装mysql——快速上手必备
    linux安装tomcat
    linux安装jdk
    tar 解压缩命令
    java并发编程系列四、AQS-AbstractQueuedSynchronizer
    JS数组方法汇总 array数组元素的添加和删除
    如何提升工作效率
    Excel学习笔记
  • 原文地址:https://www.cnblogs.com/kaigexuetang/p/7423177.html
Copyright © 2011-2022 走看看