JDBC

5 篇文章 0 订阅
4 篇文章 0 订阅

一、概念:JDBC是Java数据库连接技术的简称,提供各种常用数据库的能力

1、JDBC的工作原理

(1) JDBC API

    提供者:Sun公司

   内容:供程序员调用的接口与类,集成在java.sql.*(被称为 JDBC 核心 API)和javax.sql.*包(被称为 JDBC Optional Package API)中,如: DriverManager类、Connection接口、Statement接口、ResultSet接口

    这是java内置的类,不过连接不同的数据库就需要不同数据库的jar文件,如连接MySQL需要引入一个 mysql-connector-java-5.0.8-bin.jar 的jar文件,连接sqlserver则需要引入一个 sqljdbc2008.jar 的jar文件,总之java的java.sql.*多是接口,告诉程序去调用,但具体的方法是在jar中写的。

(2)DriverManager

    提供者:Sun公司

    作用:管理各种不同的JDBC驱动

(3)JDBC驱动

    提供者:数据库厂商

    作用:负责连接各种不同的数据库

2、JDBC API

    JDBC API的主要功能:与数据库建立连接、执行SQL语句、处理结果

    DriverManager:依据数据库的不同,管理JDBC驱动

    Connection:负责连接数据库病担任传送数据的任务

    Statement:由Connection产生、负责执行SQL语句

    ResultSet:负责保存Statement执行后所产生的查询结果

3、JDBC工作模板

    Class.forName(JDBC驱动类); //加载JDBC驱动

    Connection conn = DriverManager.getConnection(URL,用户名,密码); //与数据库建立连接(URL用来标识数据库)

    Statement stmt = conn.createStatement(); //获取Statement对象

    ReaultSet rs = stmt.executeQuery("select a,b,c from table1"); //执行SQL语句进行查询,结果赋给结果集变量rs

    while(rs.next()){ //处理返回结果

        int x = rs.getInt("a");

        String s= rs.getString("b");

        float f = rs.getFloat("c");

    }

    rs.close(); //释放资源

    stmt.close();

    conn.close();

二、JDBC连接数据库和JDBC-ODBC桥连接方式连接数据库

    在个人开发和测试中,可以使用JDBC-ODBC桥连方式

    在生产型开发中,推荐使用纯Java驱动方式

1使用JDBC-ODBC桥方式连接数据库

    这种方式为jdbc-odbc桥接的方式,不需要添加jar文件,但是需要配置数据源,配置数据源的步骤: 控制面板-> 系统和安全->管理工具->数据源(ODBC),然后双击打开,在用户(DSN)下带你及添加, 选择SQL Server, 然后输入一个名字,描述不用输入,服务器填“localhost”或者".", 点击下一步,选择数用用户名和密码的SQL Server验证,然后输入登录数据库时的用户名和密码,如果连接不上,出现错误的话,就要点客户端配置,把动态选择端口去掉,默认1433端口,这个前提是1433端口已经打开,可以在cmd下用netstat -an命令查看1433端口是否打开,如果没有打开的话,再去配置SQL Server的TCP/IP

    配置数据源步骤截图:https://jingyan.baidu.com/article/91f5db1bd6d6e11c7f05e3db.html 

    它所要用到的有JSP自带的驱动 sun.jdbc.odbc.JdbcOdbcDriver 和 Windows系统中的 ODBC数据源。这两种好在都不用下载,可以直接使用。原理是网页向Jdbc驱动请求数据,Jdbc再向Odbc请求,最后Odbc向数据库请求。Odbc我这里就不多说了,先用它建立一个MySQl的数据源,最好是系统数据源,过程中可能需要到 MySQL for ODBC 的驱动,如果没有则先安装,测试成功后留下待用。

    将对JDBC API的调用,转换为对另一组数据库连接API的调用

    优点:可以访问所有ODBC可以访问的数据库

    缺点:执行效率低、功能不够强大

    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //加载驱动

    Connection conn = DriverManager.getConnection("jdbc:odbc:mytest","sa","sa"); //建立连接

    conn.close(); //关闭连接

(2)纯Java驱动方式连接数据库

    这种方式为jdbc直接连接,需要添加jar文件

    由JDBC驱动直接访问数据库

    优点:100%Java,快又可跨平台

    缺点:访问不同的数据库需要下载专用的JDBC驱动

    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); //加载驱动

    Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=epet","sa","sa"); //建立连接

    conn.close(); //关闭连接

三、总结

1、JDBC访问数据库的步骤

   (1)加载JDBC驱动

   (2)与数据库建立连接

   (3)创建Statement或PreparedStatement对象

   (4)发送SQL语句,并得到返回结果

   (5)处理返回结果

   (6)释放资源

2、常用方法

(1)Statement常用方法:


(2)ResultSet常用方法:


(3)为什么要使用PreparedStatement?

    避免SQL注入隐患:

    正常登陆:

    非正常登陆:


    使用PreparedStatement接口,继承自Statement接口,比Statement对象使用起来更加灵活,更有效率


    特点:使用占位符的SQL语句,最后设置每个输入参数的值

    结论:PreparedStatement比Statement提高了代码的可读性和可维护性,提高了SQL语句执行的性能,提高了安全性

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值