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();
相关推荐
z落落10 分钟前
StudentInfo表 分页、增删改 存储过程+C# WinForm 存储过程实现分页和增删改查
数据库·sql·mysql
影寂ldy22 分钟前
WinForm 数据库【新增+编辑】完整功能(参数化查询+配置文件+防报错全套)
数据库
IT_Octopus25 分钟前
Spring Boot 线程池关闭:destroyMethod 的作用与最佳实践
java·spring boot·后端
迷枫71238 分钟前
达梦数据库 Hint 使用与 Hint 注入实战
数据库
亦暖筑序1 小时前
AgentScope-Java 入门:完善 Vue 前端、发布 GitHub,并规划下一步
java·前端·vue.js
wddptwd281 小时前
android studio 报错怎么处理 java.lang.NullPointerException
android·java·android studio
霸道流氓气质1 小时前
分布式系统中接口时序不确定性处理
java·开发语言·分布式
深入云栈1 小时前
Netty 4.2.x 源码深度解析 (四):HashedWheelTimer —— 时间轮定时调度算法
java
带刺的坐椅2 小时前
别再把 Coding Agent 当智能补全了:SolonCode 想做的是数字员工
java·solon·codex·claudecode·opencode·soloncode
大模型码小白2 小时前
在 Windows 下 Codex 安装、配置与使用详细指南
java·人工智能·windows