JBDC Java数据库连接(1)

目录

JDBC概述

定义

[JDBC API](#JDBC API)

实例

JDBC搭建

建立与数据库连接:

形式:

实例

获得Satement执行sql语句

Satement中的方法:

实例

实例


JDBC概述


定义


  • JDBC(Java DataBase Connectivity)java数据库连接
  • 是一种用于执行SQL语句的Java API,可以为多种关系型数据库提供统一访问,它由一 组用Java语言编写的类和接口组成,提供了诸如查询,新增,修改,删除更新数据库中数据的 方法
  • 有了JDBC规范(接口),不同的数据库开发商根据规范中的方法进行实现,开发人员面对的是 统一的接口.

**注:**Java定义者制定了JDBC规范 不同数据库开发商对接口进行实现 程序员学习使用标准规范


JDBC API

JDBC API: 供程序员调用的接口与类,集成在java.sql包中

  • DriverManager类作用:管理各种不同的jDBC驱动
  • Connection 接口 与特定数据库的连接
  • Statement 接口 执行sql
  • PreparedStatement接口 执行sql
  • ResultSet接口 接收查询结果

实例

JDBC搭建

建立与数据库连接:

这需要使用DriverManager.getConnection()方法来创建一个Connection对象,它代 表一个物理连接的数据库.

形式:

Connection conn = DriverManager.getConnection(url,user,pass);

url:jdbc:mysql://ip:端口(3306)/数据库名?serverTimezone=Asia/Shanghai

user:用户名(root)

pass:密码

实例
java 复制代码
   /*
        建立数据库
         */
        String url = "jdbc:mysql://127.0.0.1:3306/schooldb?serverTimezone=Asia/Shanghai";//数据库地址
        String user = "root";//   数据库用户名
        String dbpwd = "root";//  数据库密码
        try{
            Connection connection = DriverManager.getConnection(url,user,dbpwd);
        }catch (SQLException s){
            System.out.println("数据库连接失败");
            s.printStackTrace();
      }

获得Satement执行sql语句

● Statement st = connection.createStatement();

Satement中的方法:
  • Int executeUpdate(String sql)
  1. 用于执行ddl语句和dml(增,删,改)语句
  2. 返回 操作的行数 用于执行ddl语句返回0 用于执行dml语句返回操作的行数
实例
java 复制代码
public class demo2 {
    public static void main(String[] args) {
        try {
           demo2.add(110,"影","女", "1000000000");
           demo2.delete(9);
           demo2.update(9,111,"真", "女", "1020303030");
        } catch (SQLException e) {
            System.out.println("数据库连接失败");
        }
    }
//增
   private static void add(int num,String name,String gender,String phone) throws SQLException {
       Connection connection = JDBCUtil.getConnection();
       Statement statement = connection.createStatement();
       statement.executeUpdate("insert into student(num,name,gender,phone,regtime)value("+num+",'"+name+"','"+gender+"','"+phone+" ',now())");
       statement.close();
       connection.close();

    }
//改
   private static void update(int id,int num,String name,String gender,String phone) throws SQLException {
      Connection connection = JDBCUtil.getConnection();
      Statement statement = connection.createStatement();
      statement.executeUpdate("update student set num="+num+",name='"+name+"',gender='"+gender+"',phone='"+phone+"' where id ="+id);
       statement.close();
       connection.close();
    }
//删

   private static void  delete(int id) throws SQLException {
       Connection connection = JDBCUtil.getConnection();
       Statement statement  = connection.createStatement();
       statement.executeUpdate("delete from student where id ="+id);
    }
}

ResultSet executeQuery(String sql);

用于执行查询语句 返回一个 ResultSet 集合

实例
java 复制代码
 ResultSet resultSet = ps.executeQuery();// executeQuery()执行后,讲数据封装到一个Resultset对象中
        //将Resultset对象中的数据取出来,放到一·个student对象中,以便后续使用
        Student student = new Student();
        while (resultSet.next()){
           student.setId(resultSet.getInt("id"));
           student.setNum(resultSet.getInt("num"));
           student.setName(resultSet.getString("name"));
           student.setGender(resultSet.getString("gender"));
           student.setBirthday(resultSet.getDate("birthday"));
           student.setRegtime(resultSet.getTimestamp("regtime"));
        }
        resultSet.close();
        ps.close();
        connection.close();
相关推荐
2401_891409262 小时前
量化数据13:港股分钟K线、Level2逐笔Tick、十档盘口和港股通历史数据的批量提取
数据库
w-w0w-w9 小时前
SQL注入
网络·数据库·sql
tianyuanwo9 小时前
NetBox 数据库详解:当“关系型数据库”被装进一个网络运维的领域模型里
运维·数据库·netbox
一条泥憨鱼9 小时前
【计算机网络】短连接、长连接与连接池:从 TCP 握手到池化复用的完整链路
网络·数据库·网络协议·tcp/ip·计算机网络
天河归来9 小时前
第三方接口不稳定,如何让核心任务继续完成
java·大数据
IvorySQL9 小时前
深入 PostgreSQL WAL:从崩溃恢复到逻辑复制
数据库·postgresql
Knight_AL9 小时前
Java 文件下载时文件名中的 `#` 被转换成 `%23`?一次 URL 编码与解码问题排查
java·开发语言
幽灵诶10 小时前
Mysql(基于测试的学习)
数据库·mysql
砚底藏山河11 小时前
python量化自定义周期 K 线合成
java·开发语言·数据库·python·金融
宇宙无敌暴龙战士66611 小时前
MySQL 8 库表操作学习笔记:SQL 基础、库表管理、约束与用户授权全流程
数据库·sql·mysql·学习笔记·后端开发