Java基础_JDBC

JDBC

jdbc: java database connectivity
java与数据库的连接 在这里插入图片描述java 提供给各个数据库厂商接口。厂商去实现这些接口。而我们切换不同数据库时。只需要更改一些配置就行。极大的简便了程序。

Java制定的标准如下
在这里插入图片描述通过导入对应数据库厂商提供的jar包。

JDBC通用步骤

  • 准备工作

     包括导入jar包,构建buildpath 
    
  • 建立连接

     使用反射来加载驱动
     Class.forName("com.mysql.jdbc.Driver"); 
     通过DriverManager类的静态方法来建立连接。 参数1:数据库地址,参2:用户名,参3:密码
     DriverManager.getConnection("jdbc:mysql://localhost:3306/esspjy","root","8888"); 
     创建了Connection对象,通过内部的Socket对象(是一个远程连接) 和 MySQL建立了连接。而创建
     Socket对象很花费时间,所以创建Connection对象很花费时间。后期是通过连接池管理来提高效率。
    
  • 获取处理块

     处理块有两种
     一种是静态处理块Statement 对象。向数据库发送要执行的 SQL语句。Statement对象
     ,用于执行不带参数 的简单SQL语句
     第二种是预编译处理块PreparedStatement 。在获取对象的时候就需要传入sql语句,进行预编译
     因此效率高。而且可以防止sql注入。
    
  • 分析

     执行完SQL语句后可能成功也可能失败,如果成功,有数据则我们很大一部分情况是 需要获取查询的结果。
     对于select的结果集进行分析,类似于迭代器, 先判断(移动)再获取 
    
  • 释放资源

     释放资源的原则是 先打开的后关闭, 则我们的顺序一般为: 结果集->处理块->连接 
    

以下为完整步骤
事例使用Oracle数据库 (使用静态处理块方式)

//加载驱动
 Class.forName("oracle.jdbc.driver.OracleDriver");
 //获取连接
 Connextion conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe"
 , "SCOTT", "TIGER")
 //创建静态处理块
 Statement state = conn.createStatement(); 
 //执行sql 语句。
 ResultSet set=state.executeQuery("select * from emp ");
 //通过迭代器来遍历结果。每次遍历一行。
    while(set.next()){
    //通过getObject 传入列下标方式获取该行该列的值。下标从1开始
System.out.println(set.getObject(1).toString()+'-'+set.getObject(2));
            }
  set.close();
  state.close();
  conn.close();

使用预编译处理块方式

//加载驱动
 Class.forName("oracle.jdbc.driver.OracleDriver");
 //获取连接
 Connextion conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe"
 , "SCOTT", "TIGER")
 //创建预编译处理块 。传入sql语句。sql语句中的参数使用?进行占位。
 PreparedStatement  statement= conn.prepareStatement(Insert into my_sheet 
 values(?,?,?));
 //通过setObject方法 来对sql中的占位符进行设置值。 参数1为占位下标,(从1开始)参2为值。
 statement.setObject(1,1);
 statement.setObject(2,"小红");
 statement.setObject(3,12);
   //执行操作
   int  row = statement.executeUpdate();
   //释放资源
   statement.close();
   conn.close()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值