java基础专栏—JDBC

JDBC

​ JDBC(Java Database Connectivity)一套用于执行SQL语句的Java API,能够对多种关系的数据库提供统一访问,由一套接口和类(驱动程序)组成,是java数据库的访问规范。屏蔽了数据库之间的差别,经过驱动程序来链接数据库与设备。这个驱动是由SQL人员提供的。只面向接口编程,不关心实现类,方法会由接口自动去调用java

MYSQL驱动程序

​ mysql驱动也是一套类库,实现了Sun公司提供的规范性接口,可是这个驱动类中有许多的实现类,可是咱们不会直接去用类库,咱们直接使用Sun公司的接口规范。mysql

  1. 注册驱动通知虚拟机使用哪一个数据库的驱动程序
|--java.lang.Object
	|--java.sql.DriverManager
	
|--java.sql.Deriver
//每一个驱动类都要实现的接口
|--java.JDBC.Deriver
//在JDBC中的实现类
public static void registerDriver(Driver driver)
//向DriverManager注册给定的驱动
DeriverManager.registerDeriver(new Deriver())
//这种方式与源码相同,注册了两次,因此不用这种方式
//使用反射方式直接使用就会有静态代码块去执行建立注册
  Class.forName("com.mysql.jdbc.Deriver");
  1. 得到链接(TCP)使用JDBC完成对数据库的链接
//获取数据库链接
public static Connection getConnection(String url,String user,String passward)
  //返回接口的实现类都在JDBC驱动jar包中
  //jdbc:mysql://localhost:3306/DBName
  1. 获取语句执行平台经过链接对象,获取SQL语句的执行者
Conection con = DriverManager.getConnection(jdbc:myasql://127.0.0.2:3306/DB,root,wbydh555,);
Statement stat = con.creatStatement();
  1. 获取SQL语句向数据库执行SQL语句
int row = stat.executeUpdate(String sql);
//能执行insert delete update
ResultSet rs = stat.executeQuery(String sql);
//返回的是ResultSet接口的实现类对象
  1. 处理结果
//对ResultSet的结果集进行遍历就是对结果集的处理
//其返回值是Mysql的数据表
ResultSet rs = stat.executeQuery(String sql);
while(re.next()){
    //使用结果集ResultSet的结果接口的getxxx
  	//getObject(String cloumn)
}
  1. 释放资源调用close
rs.close();
stat.close();
con.close();

导入JAR

放入lib文件夹->Build Path->addsql

Sql注入攻击

Class.forName("com.mysql.jdbc.Driver");
Scanner in = new Scanner(System.in);
String user = in.nextLine();
String pass = in.nextLine()
Connection con = Driver.Manager.getConnection(url,user,passward);
Statement stat = con.createStatement();
ResultSet rs = stat.executeQuery(sql)
while(rs.next()){
    rs.getObject(String cloumn);
}
rs.close();
stat.close();
con.cloe();

PreparedStatement:对Sql语句进行预编译数据库

  • 能够屡次使用这个Sql语句
  • 能够防止注入攻击
  • 他是Statement类的子类
PreparedStatement pstat = con.preparedStatement();

使用的方式是在全部的参数的位置都使用占位符来代替编程

String sql = "UPDATE sort SET sname=?,sprice=? WHERE sid=?";
pstat.setObject(1,"user");
pstat.setObject(2,"pass");
pstat.setObject(e,"2134");

使用数据库存取对象

经过对SQL语句的拼装拿到对应的对象的数据ui

ResultSet rs = pst.executeQuery();
List<Sort> list = new ArrayList<Sort>():
while(rs.next()){
    Sort s = new Sort(rs.getxxx);
}
相关文章
相关标签/搜索