java小白的第26课——JDBC第一小节

1. JDBC 简介

  • JDBC是java的数据库连接技术
    在这里插入图片描述

2. Java.SQL的API介绍

2.1 Connection 接口:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • Connection 是一个接口 无法直接创建对象
  • Connection 获取数据库联接对象
    - 使用 DriverManager.getConnection(String url,String user,String password)
    - 底层方法:
public static Connection getConnection(String url,
        String user, String password) throws SQLException {
        java.util.Properties info = new java.util.Properties();//开启流的操作

        if (user != null) {
            info.put("user", user);
        }
        if (password != null) {
            info.put("password", password);
        }
		//获取到用户名 密码之后执行获取连接对象 getconnection方法
		//getConnection是个私有方法用来创建
        return (getConnection(url, info, Reflection.getCallerClass()));
    }

2.2 DriverManage 驱动管理

在这里插入图片描述在这里插入图片描述

  1. 功能:
    • 注册驱动: Class.forName("com.mysql.jdbc.Driver)
      • 告诉程序用哪个jar包
      • 通过源码发现,Driver里面有个 静 态 代 码 块 \color{#ff0036}{静态代码块} 在这里插入图片描述

2.3PreparedStatement

  • public interface PreparedStatement extends Statement(){}
  • PreparedStatement 接口,需要ConnectionObj.prepareStatement(String sql);来获取预处理对象。

2.4 Statement

  • public interface Statement extends Wrapper(){}
  • 用于执行静态SQL语句并返回它所生成的对象
区别: PreparedSatement继承于Statement,可以更高效的执行SQL,提供了setxxx的方法 设置参数,且更安全,可以避免sql注入。

3. 增删改查

  • 增删改
String url = "JDBC:MySQL://数据库的IP地址:端口号/库名";
String user = "用户名";
String pwd = "密码";
Connection conn = null;
PreparedStatemend pstm = null;
String sql = "sql语句";

try{
  //创建联接对象
  conn = DriverManager.getConnection(url,user,pwd);
  //创建预处理对象
  pstm = conn.prepareStatement(sql);
  
}Catch(Exception e){
  e.printStackTrace();
};
int res=pstm.executeUpdate();//返回的是受影响的行数
if(res>0){System.out.prinln(成功)else{System.out.prinln(失败)};

//关闭 先定义的后关
if(pstm != null){
  try{
    pstm.close();
  }catch(Exception e){ 
    e.prinStackTrace();
  }
}
if(conn != null){
  try{
    conn.close();
  }catch(Exception e){ 
    e.prinStackTrace();
  }
}
String url = "JDBC:MySQL://数据库的IP地址:端口号/库名";
String user = "用户名";
String pwd = "密码";
Connection conn = null;
PreparedStatemend pstm = null;
String sql = "sql语句";

try{
  //创建联接对象
  conn = DriverManager.getConnection(url,user,pwd);
  //创建预处理对象
  pstm = conn.prepareStatement(sql);
  
}Catch(Exception e){
  e.printStackTrace();
};
//获得结果集
ResultSet rs = pstm.executeQuery();
//获取结果表的基本信息
ResultSetMetaData rsmd = rs.MetaData();
//列数
int coluNum = rsmd.getColumnCount();
//遍历输出
while(rs.next()){
  for(int i=1,i<= coluNum,i++){
    System.out.print(rs.getString(i));
  }
}

//关闭 先定义的后关
if(rs != null){
  try{
    rs.close();
  }catch(Exception e){
    e.printStackTrace();
  }
}

if(pstm != null){
  try{
    pstm.close();
  }catch(Exception e){ 
    e.printStackTrace();
  }
}
if(conn != null){
  try{
    conn.close();
  }catch(Exception e){ 
    e.printStackTrace();
  }
}


4. sql占位符

  • 将所有变量用?占位,然后用preparedStatement下面的setXXX方法拼接。
String sql = "Insert into employee (Ename,Esex,Eage) values (?,?,?)";
 pstm = conn.prepareStatement(sql);
            pstm.setString(1, Ename);
            pstm.setString(2, Esex);
            pstm.setInt(3, Eage);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值