JDBC简单使用

#使用说明

//1.加载驱动
  Class.forName("com.mysql.jdbc.Driver");//oracle.jdbc.driver.OracleDriver
  
//2.获取数据库连接
  Connection conn = DriverManager.getConnection(
    "jdbc:mysql://127.0.0.1:3306/select_test","root","123456");
    //URL规范:jdbc:subprotocol:other stuff
    //jdbc:mysql://hostname:port/databasename
    //jdbc:oracle:thin:@hostname:port:databasename
    
//3.创建一个Statement对象
  Statement stmt = conn.createStatement();
//4.执行SQL
  /*
   Statement有三种执行sql语句的方法
   1.execute 可以执行任何SQL  放回一个boolean值
     如果执行返回第一个结果是ResultSet则返回true,否则false
   2.executeQuery  执行select语句  返回结果集
   3.executeUpdate 用于执行DML语句 返回一个整数

  */  
 //5.关闭资源 


#基本知识

#Connection 

  有控制事务API
#Statement
#PreparedStatement

  PreparedStatement pstmt = conn.preparedStatement("inster into student_table values(null,?,1)");
  for(int 1=0;i<5;i++){
    pstmt.setString(1,"姓名");
    pstmt.executeUpdate();
  }


#CallableStatement 调用存储过程  

  CallableStatement cstmt = conn.prepareCall("{call add_pro(?,?,?)}");
  cstmt.setInt(1,4);
  cstmt.setInt(2,5);
  //注册CallableStatement的第三个参数是int类型
  cstmt.registerOutParameter(3,Type.INTEGER);
  //执行存储过程
  cstmt.execute();
  //获取输出存储过程传出的值
  System.out.println("结果:" + cstmt.getInt(3));


#ResultSet

  •  可滚动、可更新的结果集
  •   处理blog字段
  •  使用ResultSetMetaData分析结果集


#DatabaseMetaData
1.suppersBatchUpdates查看是否支持批量更新

  //保存当前自动提交模式
  boolean autoCommit = conn.getAutoCommit();
  conn.setAutoCommit(false);
  Statement stmt = conn.createStatement();
  //收集多条sql
  stmt.addBatch(sql1);  
  stmt.addBatch(sql2);  
  stmt.addBatch(sql3);  
  .......
  //提交所有Sql
  stmt.executeBatch();
  conn.commit();
  //恢复自动提交模式
  conn.setAutoCommit(autoCommit);

2.分析数据库信息  
 

  DatabaseMetaData dbmd = conn.getMetaData();
  ResultSet rs = dbmd.getTableTypes();//支持表类型
  //获取当前数据库的数据表信息
  rs = dbmd.getTables(null,null,"%",new String[]{"TABLE"});
  //获取表中主键
  rs = dbmd.getPrimaryKeys(null,null,"student_table");
  //获取当前数据库全部存储过程
  rs = dbmd.getProcedures(null,null,"%");
  //获取两个表间的外键
  //获取表中所有列
  rs = dbmd.getColumns(null,null,"student_table","%");
  .....
  
  


#事务控制  

  ......

转载于:https://my.oschina.net/u/2422879/blog/794489

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值