<>
驱动包,里面提供了接口和
实现 类
·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