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();
相关推荐
NiceCloud喜云11 分钟前
Anthropic 一周三连发:Cowork 多端、Fable 5 按需付费、J-space 论文的技术解读
java·服务器·网络·人工智能·ai
Nturmoils15 分钟前
订单查询丢数据,查了半天原来是 WHERE 惹的祸
数据库·后端
SamDeepThinking19 分钟前
组合还是继承?我在项目里主要看这两个判断
java·后端·面试
ATA888824 分钟前
数据库管理工具的数据安全机制对比:权限管控与审计
数据库·人工智能·数据分析·数据库管理
momo28 分钟前
JAVA基础知识
java·开发语言
麦聪聊数据1 小时前
业务自助取数(下):安全可控前提下,实现取数效率百倍提升
数据库·sql
2501_915716721 小时前
Repository-学习指南_小白版
数据库·人工智能
snpgroupcn1 小时前
SAP实施风险管控注意事项:四大风险域与防范策略
前端·数据库·人工智能
就叫_这个吧1 小时前
Activiti7工作流入门+案例应用
java·activiti7·工作流
Z_W_H_1 小时前
minikube start --driver=docker --memory=4000mb出现PROVIDER_DOCKER_NEWGRP
java·docker·minikube