JDBC

<>

驱动包,里面提供了接口和

实现 类

·JDBC开发步骤

o注册驱动

o获得连接

o获取执行语句执行平台

o执行sql语句

o处理结果

o释放资源

·注册数据库驱动程序

使用java.sql.DriverManager类静态方法registerDriver (Driver driver)

//Driver是一个接口(应该是在mysql驱动包里)

给Diver传递,Mysql驱动程序中的实现类

自己创建

DriverManager.registerDriver(newDriver());

//但是最好用静态(反射技术)

Class.forName("com.mysql.jdbc.Driver");

·获得数据库连接

staticConnection

getConnection(Stringurl,Stringuser,Stringpassword)

试图建立到给定数据库URL的连接。

oDriverManager类中静态方法

oStatic

Connection getConnection(String url,String user,String password);

o返回的是Connection接口的实现类,在mysql驱动程序

oUrl:数据库地址:jdbc:mysql://连接主机ip:端口号//数据库名字

Localhost本机

Stringrul="jdbc:mysql://localhost:3306//stone_db";

·获取数据库平台

oCon调用方法导报:java.sql.*;

oStatement

createStatement();//获取Statement对象,将sql语句发送到数据库

o返回Statement

·执行sql语句

·Statement

int

executeUpdate(Stringsql)

执行给定SQL语句,该语句可能为INSERT、UPDATE或DELETE语句,或者不返回任何内容的SQL语句(如SQL DDL语句)。

oIntexecuteUpdate(String sql)执行数据库中的sql语句,insert ,delete,Update

o返回受影响的行数int

/select的

ResultSet

executeQuery(Stringsql)

执行给定的SQL语句,该语句返回单个ResultSet对象。

ResultSet executeQuery(String sql); //可以执行sql语句

ResultSet rs=sql执行对象.executeQuery();

ResultSet接口方法

boolean next( );//

boolean

next()

将光标从当前位置向前移一行。

获取内容:

GetInt(int

columnidex); //放第几列

Getint

(String );//放列的名字

int

getInt(int columnIndex)

以Java编程语言中int的形式获取此ResultSet对象的当前行中指定列的值。

int

getInt(StringcolumnLabel)

以Java编程语言中int的形式获取此ResultSet对象的当前行中指定列的值。

//获取字符串类型

String

getString(int columnIndex)

以Java编程语言中String的形式获取此ResultSet对象的当前行中指定列的值。

String

getString(StringcolumnLabel)

以Java编程语言中String的形式获取此ResultSet对象的当前行中指定列的值。

·释放资源

oClose();

·SQL注入攻击

oOr 1=1

·防止SQL注入攻击

oStatement接口实现类,有一个子接口PerparedStatement(SQL预编译存储,多次高效的执行SQL)

oConnection的方法返回一个PerparedStreamnet

oPrepareStatement(String sql)

o创建一个PrepareStatement对象

PreparedStatement

prepareStatement(Stringsql)

创建一个PreparedStatement对象来将参数化的SQL语句发送到数据库。

这个SQL有点特殊

String sql="select * from表where user=? And pwd=?";

所有的参数都用?来表示(形式参数)

PreparedStatement pst=con.PreparedStatement(sql);

//把值给?号

Pst.setObject(1,第一个?号的值);

Pst.setObject(2,第二个?号的值);

//执行SQL

Pst.executeUpdate();//返回执行结果int

Pst.executeQuery();//返回ResultSet

你可能感兴趣的:(JDBC)