本文共 2544 字,大约阅读时间需要 8 分钟。
了解:连接数据库的规范有ODBC和JDBC
而ODBC是微软因为操作系统而想制定的连接数据库规范,但是最后因为并没有实现垄断而失败。
但由于Java用的人非常多,所以JDBC基本成为了连接数据库规范的主流,JDBC其实是一些类和接口的集合就是 .jar包。
三种最常用数据库的JAR包
sqlserver: msbase.jar; mssqlserver.jar; msutil.jar 等 mysql: mm.mysql-2.0.14-bin.jar 等 oracle: classes12.jar 等JDBC的四种驱动程序类型
1、JDBC-ODBC桥驱动程序及ODBC驱动程序 效率最低,它是利用ODBC驱动程序提供JDBC访问, 客户机上必须安装ODBC驱动程序。 2、本地API部分Java驱动程序 性能比前者好些,它是跳过ODBC利用开发商提供的本地库(需要在客户机上安装)直接与数据库通信。 3、JDBC-Net 纯Java驱动程序 与DBMS协议无关,不安装本地库。 4、本地协议纯Java驱动程序 性能最好,它是将JDBC调用直接转换为DBMS所使用的网络协议。java.sql包
Driver —— 数据库具体的驱动程序对象,决定连接哪一个数据库 Connection —— 此接口表示与数据的连接,连接对象 Statement —— 此接口用于执行SQL语句并将数据检索到ResultSet中,执行对象 ResultSet —— 此接口表示了查询出来的数据库数据结果集 PreparedStatement —— 此接口用于执行预编译的 SQL 语句JDBC程序访问数据库步骤:DriverManager 生成 Connection 对数据库建立连接后生成 statement 执行SQL语句后对驱动程序进行操作后驱动程序将执行返回的数据生成给 ResultSet,期间驱动程序一直与数据库进行互动。
Statement的概念:
1、Statement对象用于将SQL语句发送到数据库中,有三种Statemen对象,它们都是在给定连接上的SQL语句的包容器:Statement、PreparedStatement、CallableStatement 2、Statement对象用于执行不带参数的SQL 3、PreparedStatement对象用于执行带参数或不带参数的预编译SQL 4、CallableStatement对象用于执行对数据库存储过程的调用如何运用JDBC与数据库进行连接:
① 使用Class.forName(驱动程序类)来加载驱动程序: Class.forName(“写不同数据库的连接名”) JDBC-ODBC: sun.jdbc.odbc.JdbcOdbcDriver SQLServer: com.microsoft.jdbc.sqlserver.SQLServerDriver MYSQL: org.gjt.mm.mysql.Driver ORACLE: oracle.jdbc.driver.OracleDriver ② 建立连接: Connection conn = DriverManager.getConnection(URL,数据库用户名,数据库密码); 各种数据库的URL JDBC-ODBC:jdbc:odbc:datasourceName SQLSERVER:jdbc:sqlserver://localhost:1433;DatabaseName=DBName MYSQL:jdbc:mysql://localhost:3306/DBName?user=root&password=pass ORACLE:jdbc:oracle:thin:@localhost:1521:DBname// 例:连接数据库名为xwl的SQLServer数据库Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");Connection myConn = DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;DatabaseName=xwl", "用户名", "密码");System.out.println("连接成功");
③ 得到Statement对象,执行SQL: Statement sta = conn.createStatement(); // 实例化Statement对象 sta.executeUpdate(sql); //(更新)执行增、删、改的操作 sta.executeQuery(sql); //(查询)执行查询的操作 ④ 关闭对象(rs,sta,conn):
if(this.rs != null) { this.rs.close(); this.rs = null; } if(this.sta != null) { this.sta.close(); this.sta = null; } if(this.conn != null) { this.conn.close(); this.conn = null; }
相关思维导图:
刚好今天复习的是Java连接数据库的相关内容,那之后今天就复习一下数据库的相关内容。
首先是 什么是数据库的索引,索引是能提升数据库查询速率的功能(但是会降低增删改的效率),所以很多企业都会问,虽然是基础但是这也是必须要了解的,这样才能知道更容易理解其他数据库相关的面试题。真是越来越拉了,这卡路里是加到level8之后越跑越低,但是每次流汗都比之前多,大汗淋漓,也不知道为啥,消耗的卡路里少了但是出汗更多了。。。
转载地址:http://knalf.baihongyu.com/