JDBC编程入门

JDBC编程入门

代码编写步骤:

1.创建项目,加载相应的静态资源,如图片,第三方jar包
	1.1.在当前工程下新建一个文件夹
	1.2.将“mysql-connector-java-5.0.8-bin.jar”导入文件夹
	1.3选中文件夹,点击add as libaray
2.注册加载驱动
3.建立连接
4.获取执行对象
5.处理结果集
6.关闭连接

ODBC:

因为市场需求,微软定义了一组用于数据库应用程序的编程接口ODBC(open database connectivity),这一套方案大大缩短了程序的开发周期,可以让开发人员只需要调用同一套编程接口,无需考虑具体的实现

ODBC分为四个部分:

1.应用程序:开发人员所写的代码,ODBC提供的调用接口
2.驱动程序管理器:用于管理驱动程序的
3.驱动程序:对接口的实现部分,各个数据库厂商来完成的
4.数据源:就是连接数据库的一些参数,例如:url,username,password

JDBC:

是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口

Sun公司参考ODBC方案,制定了一组专门为java语言连接数据库的通用接口JDBC,方便了java开发人员,开发人员不需要考虑特定的数据库的DBMS。JDBC不直接依赖于DBMS,而是通过驱动程序将sql语句转发给DBMS,由DBMS进行解析并执行,处理结果返回

注意:驱动程序:有数据库厂商将自己实现,程序员只需要拿来使用即可

概述:

JDBC与数据库驱动的关闭:接口与实现的关系

JDBC规范(四个核心对象):

1.DriverManager:用于注册驱动

2.Connection:表示数据库创建的连接

3.Statement:操作数据库sql语句的对象

4.ResultSet: 结果集或者一张虚拟表

详解:

a.注册驱动
	DeiverManager.registerDriver(new com.mysql.jdbc.Driver());不建议使用
	原因:
	>导致驱动程序被注册两次
	>强烈依赖数据库的驱动jar包
解决办法:
Class.forName("com.mysql.jdbc.Driver");
b.与数据库建立连接
方法名:
static Connection getConnection(String url,String user,String password)
url:连接指定数据库的地址,jdbc:mysql://localhost:3306/mydb2
user:连接用户名
password:密码
示例:
getConnection("jdbc:mysql://localhost:3306/mydb2","root","123456");
对URL的解释:
URL:sun公司和数据库厂商之间的一种协议
jdbc是父协议,mysql是子协议

java.sql.Connection接口

接口的实现在数据库驱动中,所有与数据库交互都是基于连接对象的
Statement createStatement();
作用:用于获取Statement对象

java.sql.Statement接口

作用:操作sql语句,并返回相应结果的对象(小货车)
接口的实现在数据库驱动中。用于执行静态sql语句并返回它所生成的结果的对象
ResultSet executeQuery(String sql) 返回结果集,用于DQL
int executerUpdate(String sql) 返回受影响行数,用于DUL
boolean execute(String sql) 用于DDL

java.sql.ResultSet接口:

表示结果集(客户端存表数据的对象)

a.封装结果集
	1.常规
		提供一个游标,默认游标指向结果集第一行之前
		调用一次next(),游标向下移动一行
		提供一些get方法
	2.封装数据的方法
		Object getObject(int columnIndex):根据序号取值,索引从1开始
		Object getObject(String columnName):根据列名取值
	3.将结果集数据封装到java.Bean中

常用方法:

boolean next();

int getInt(int columnIndex);

Date getDate(int columnIndex);

void close()

可移动光标的方法:

boolean next()将光标向前移动一行,boolean previous()将光标数据向后移动一行

注意点:在注册加载驱动时,不能使用new,直接用反射

 //1.注册加载驱动
 Class.forName("com.mysql.jdbc.Driver");

SQL注入的问题:

Statement对象发送的语句可以改变结构,即如果在where之前设置的是两个条件,那么可以通过一些参数,比如添加or,后面再加入其他条件,where子句中即使三个条件,这种情况叫sql注入,有安全隐患

PreparedStatement类:

预编译类的简介:

PreparedStatement是Statement的子类型
此类型可以确定sql语句的结构,无法通过其他方式来增减条件
此类型还通过占位符"?"来提前占位,并确定语句的结构
提供了相应的的赋值方法:
	ps.setInt(int index,int value)
	ps.setString(int index,String value)
	ps.setDouble(int index,double value)
	ps.setDate(int index,Date value)
index:表示sql语句中的占位符“?”的位置,从1开始
value:占位符所对应的要赋予的值
执行方法:
ps.execute()----用于DDL和DML
ps.executeUpdate----用于DML
ps.executeQuery----用于DQL
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值