关于JDBC我所想说的

大家好,快半年没有发CSDN博客了,这段时间过了一个暑假,现在又快放寒假了,陆陆续续的自学完了JAVA、MYSQL、JDBC。我现在相对大家分享一下我学习JDBC的心得和方法以及一般在开发中所要使用的具体的技术。据我了解,JDBC这项技术是被目前大多数互联网公司所采用的一项技术,我用了一个星期的时间自学了全部的内容,我个人的学习能力比较差,所以花费的时间比较长,具体的掌握时间还得看个人。

好,废话不多说,我们直接进入正题!首先先来对JDBC这个名词要有所理解,它是什么意思?有什么作用?这些我们都需要深入去了解。首先我们来看JDBC的概念。

什么是 JDBC?
JDBC 指 Java 数据库连接,是一种标准Java应用编程接口( JAVA API),用来连接 Java 编程语言和广泛的数据库。

概念上来看没有什么难理解的,纯粹的理解就是使用Java代码对数据库进行增删改查的操作,所以要想学好JDBC就首先要学好Java基础和SQL。

JDBC其实是一个接口,各大厂商为了能融合Java应用程序的调用,进而相继做出了规范,以接口的形式存在于Java API中。

不同的数据库厂商,需要针对这套接口,提供不同实现。不同的实现的集合,即为不同数据库的驱动。																 
                                                                           ————面向接口编程

连接数据库所需要的有Driver接口实现类。

     java.sql.Driver 接口是所有 JDBC 驱动程序需要实现的接口。这个接口是提供给数据库厂商使用的,不同数据库厂商提供不同的实现。

    在程序中不需要直接去访问实现了 Driver 接口的类,而是由驱动程序管理器类(java.sql.DriverManager)去调用这些Driver实现。

    下面我会给大家简单的介绍如何通过JDBC这项技术来连接数据库:

一、

 

①得到相对应的数据库jar包,也可以叫驱动,指名我们所要连接的数据库。

将上述jar包拷贝到Java工程的一个目录中,习惯上新建一个lib文件夹。

  注意:如果是Dynamic Web Project(动态的web项目)话,则是把驱动jar放到WebContent(有    的开发工具叫WebRoot)目录中的WEB-INF目录中的lib目录下即可。

②加载驱动:加载 JDBC 驱动需调用 Class 类的静态方法 forName(),向其传递要加载的 JDBC 驱动的类名。

③使用DriverManager.registerDriver(com.mysql.jdbc.Driver)来注册驱动。

二、

  • JDBC URL 用于标识一个被注册的驱动程序,驱动程序管理器通过这个 URL 选择正确的驱动程序,从而建立到数据库的连接。

  • JDBC URL的标准由三部分组成,各部分间用冒号分隔。

    jdbc:子协议:子名称
    • 协议:JDBC URL中的协议总是jdbc

    • 子协议:子协议用于标识一个数据库驱动程序

    • 子名称:一种标识数据库的方法。子名称可以依不同的子协议而变化,用子名称的目的是为了定位数据库提供足够的信息。包含主机名(对应服务端的ip地址),端口号,数据库名

主意啊! 这个test可不是固定的的格式啊,它是指你所连接的数据库名称。我i这里就用test举个栗子。我在这里只举连接MYSQL的例子,想要了解其他数据库的小伙伴可以去baidu。我就不过多的介绍啦。

三、

用户名和密码

user,password可以用“属性名=属性值”方式告诉数据库

可以调用 DriverManager 类的 getConnection() 方法建立到数据库的连接

四、

连接

连接的方式有很多种,我们直接放大招!介绍开发最常用的。

①首先我们需要配置文件,用来对连接进行封装,以后我们只需要调用JDBCUtil方法来连接,使代码看起来简便,让人舒服。

package Util;
import java.io.FileReader;
import java.io.IOException;
import java.net.URL;
import java.sql.*;
import java.util.Properties;
public class JDBCUtils {
    private static String url;
    private static String username;
    private static String password;
    private  static String driver;
    static {
        //读取文件,获取值
        try {
            //创建Properties集合类
            Properties pro = new Properties();
            //获取src路径下的文件--->ClassLoader类加载器
            ClassLoader classLoader = JDBCUtils.class.getClassLoader();
            URL resource = classLoader.getResource("jdbcUtil.properties");
            String path = resource.getPath();
            //加载文件
            pro.load(new FileReader(path));
            //获取数据
            url = pro.getProperty("url");
            username = pro.getProperty("username");
            password = pro.getProperty("password");
            driver = pro.getProperty("driver");
            //注册驱动
            Class.forName(driver);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
    public static Connection getConnection() throws SQLException {
        Connection connection = DriverManager.getConnection(url, username, password);
        return connection;
    }
    public static void close(ResultSet rs, Statement st,Connection connection){
        if (rs != null){
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if(st != null){
            try {
                st.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (connection != null){
            try {
                connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

运行结果如上所示。至于我所注释的是对数据库进行操作的相关代码,现在可以不需理会,我在后面会和大家分享。 我们的连接终于获取成功了,没有成功的朋友可以参考我的代码改进,如果碰到了什么bug,欢迎和我一起讨论,共同进步。我也会在几天后更新用一种新的方式去连接数据库。

我知道关于这种帖子数不胜数,可能还没有很多人做的好,但是我相信通过我的学习,会使自己的编程水平进步,看到我帖子的人,希望对你有所帮助,帖子的哪里如果有说的不对的地方,请提出来,我们一起进步!

朋友们,下期见。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值