JDBC(Java Database Connectivity)一套用于执行SQL语句的Java API,能够对多种关系的数据库提供统一访问,由一套接口和类(驱动程序)组成
,是java数据库的访问规范。屏蔽了数据库之间的差别
,经过驱动程序来链接数据库与设备。这个驱动是由SQL人员提供的。只面向接口编程,不关心实现类,方法会由接口自动去调用java
mysql驱动也是一套类库,实现了Sun公司提供的规范性接口,可是这个驱动类中有许多的实现类,可是咱们不会直接去用类库,咱们直接使用Sun公司的接口规范。mysql
注册驱动
通知虚拟机使用哪一个数据库的驱动程序|--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");
得到链接(TCP)
使用JDBC完成对数据库的链接//获取数据库链接 public static Connection getConnection(String url,String user,String passward) //返回接口的实现类都在JDBC驱动jar包中 //jdbc:mysql://localhost:3306/DBName
获取语句执行平台
经过链接对象,获取SQL语句的执行者Conection con = DriverManager.getConnection(jdbc:myasql://127.0.0.2:3306/DB,root,wbydh555,); Statement stat = con.creatStatement();
获取SQL语句
向数据库执行SQL语句int row = stat.executeUpdate(String sql); //能执行insert delete update ResultSet rs = stat.executeQuery(String sql); //返回的是ResultSet接口的实现类对象
处理结果
//对ResultSet的结果集进行遍历就是对结果集的处理 //其返回值是Mysql的数据表 ResultSet rs = stat.executeQuery(String sql); while(re.next()){ //使用结果集ResultSet的结果接口的getxxx //getObject(String cloumn) }
释放资源
调用closers.close(); stat.close(); con.close();
放入lib文件夹->Build Path->addsql
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语句进行预编译数据库
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); }