一、概念: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注入隐患:
正常登陆:
非正常登陆:
特点:使用占位符的SQL语句,最后设置每个输入参数的值
结论:PreparedStatement比Statement提高了代码的可读性和可维护性,提高了SQL语句执行的性能,提高了安全性