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();
相关推荐
俺不是西瓜太郎´•ﻌ•`5 分钟前
二维差分数组(JAVA)蓝桥杯
java·开发语言·蓝桥杯
boring_1117 分钟前
异地多活单元化架构下的微服务体系
数据库·微服务·架构
cainiao08060510 分钟前
Java大数据可视化在城市空气质量监测与污染溯源中的应用:GIS与实时数据流的技术融合
java·开发语言·信息可视化
2685725912 分钟前
Java 23种设计模式 - 行为型模式11种
java·开发语言·设计模式
betazhou22 分钟前
oracle goldengate非并行进程转换为并行进程
数据库·oracle·并行·parallel·ogg·同步数据
wuli玉shell23 分钟前
数仓-范式建模、维度建模、雪花模型、星型模型对比及其适用范围
数据库·oracle
ghie909025 分钟前
oracle dblink varchar类型查询报错记录
数据库·oracle
等rain亭26 分钟前
MySQL数据库创建、删除、修改
数据库·mysql
怀君27 分钟前
Flutter——数据库Drift开发详细教程(五)
数据库·flutter
Le_ee28 分钟前
sqli-labs靶场第二关——数字型
数据库·sql·网络安全·sql注入·sqli—labs