标签:
之前学习了数据库原理,上学期也学了oracle数据库,我的学习视频上是讲的mysql数据库,其实都差不多,复习了下sql知识,数据库的学习就没有写下来了,就从Java怎么操作数据库开始吧。
因为这年过完了,开始新的学习,有时间边学边写了。其实JDBC网上教程挺多的,我看视频学习的笔记都尽量写在代码里了。就直接上代码吧。
package com.gh.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; /** * PreparedStatement的setDate类是java.sql包里的Date * ResultSet 的getDate还回一个java.sql.Date * sql.Date是util.Date的子类 可以直接转util.Date * util.Date转sql.Date可以 new sql.Date(new util.Date().getTime()); * @author ganhang * */ public class JdbcDemo { //驱动类 public static String Driver="oracle.jdbc.OracleDriver"; //数据库地址 public static String url="jdbc:oracle:thin:@localhost:1521:orcl"; //数据库用户名 public static String user="scott"; //数据库密码 public static String password="."; /** * 查找 * */ public static void find(){ try { Class.forName(Driver); Connection conn=DriverManager.getConnection(url, user, password); String sql="select * from test"; PreparedStatement ps=conn.prepareStatement(sql);//不要用Stateme ,有sql注入问题,不安全 ResultSet rs=ps.executeQuery();//返回结果集(实际上是引用) while(rs.next()){ System.out.println(rs.getInt(1)); } rs.close(); ps.close(); conn.close(); System.out.println("success!"); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } //Statement实现,不安全 public static void insert(){//更新删除只改sql就可以 try { //加载驱动 Class.forName(Driver); //获得连接,注意是java.sql的Connection,mysql包也有Connection接口 Connection conn=DriverManager.getConnection(url, user, password); //sql语句 String sql="insert into test values(100)"; //获得Statement对象 //说明文档有这么一句注释:在默认情况下,同一时间每个 Statement 对象在只能打开一个 ResultSet 对象。 //因此,如果读取一个 ResultSet 对象与读取另一个交叉,则这两个对象必须是由不同的 Statement 对象生成的。 //如果存在某个语句的打开的当前 ResultSet 对象,则 Statement 接口中的所有执行方法都会隐式关闭它。 Statement stat=conn.createStatement(); //执行sql(实际上是把sql发送给数据库,数据库去执行类似Scoket通信) stat.executeUpdate(sql); //关闭相关连接释放资源 stat.close(); conn.close(); System.out.println("success!"); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } //PreparedStatement实现 public static void insert2(int n){ try { Class.forName(Driver); Connection conn=DriverManager.getConnection(url, user, password); String sql="insert into test values(?)"; PreparedStatement ps=conn.prepareStatement(sql); ps.setInt(1, n); ps.executeUpdate(); ps.close(); conn.close(); System.out.println("success!"); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } public static void main(String[] args) { //insert(); //insert2(1); find(); } }
标签:
原文地址:http://www.cnblogs.com/ganhang-acm/p/5199455.html