JDBC实现操作数据库数据的四种操作(全)

news/2024/5/19 0:27:36 标签: mysql, jdbc, java, 数据库, sql

jdbc_1">1. 学会搭建jdbc环境并熟悉学习流程

  • JDBC的学习流程:JDBC学习流程精讲

2. 在数据库下建表并测试语句

  • 建立表格

sql">CREATE TABLE student (
  stu_id int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
  stu_name varchar(20) NOT NULL,
  stu_sex char(2) NOT NULL,
  stu_birthday date NOT NULL,
  stu_user varchar(50) NOT NULL,
  stu_password varchar(50) NOT NULL
   )
sql">INSERT INTO student VALUES (1, '李华', ' 男', '2000-03-06', 'hhh', '123456')
INSERT INTO student VALUES (DEFAULT, '李华', ' 男', '2000-03-06', 'hhh', '123456')

结果:
<a class=数据库的插入操作" />

sql">UPDATE student SET stu_password=12345 WHERE stu_id=2

结果:
<a class=数据库的更新操作" />

sql">DELETE FROM student WHERE stu_id=2

结果:
<a class=数据库的删除操作" />

sql">SELECT * FROM student 

结果:
<a class=数据库的查询操作" />

3. 在IDEA中操作数据库

  • 步骤

    1. 加载驱动
    2. 连接数据库DriverManager
    3. 获得执行sql的对象PreparedStatement
    4. 获得返回的结果集ResultSet
    5. 释放连接
  • 增删改ps.executeUpdate()返回一个int值,因此不需要ResultSe集接判断是否大于0即可判断是否成功

  • 查询需要用ResultSet集接收,rs.next(类似于指针)

四个操作

java">package com.mystudy.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class Insert {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //加载驱动
        //forName抛出异常  ClassNotFoundException
        Class.forName("com.sql>mysql.jdbc.Driver");
        //使用DriverManager来判断数据库
        //getConnection抛出异常  SQLException
        Connection conn= DriverManager.getConnection("jdbc:sql>mysql://localhost:3306/test1?useSSL=true","root","root");
        //创建SQL语句 插入数据
        //这里用的是Nacivat Premium数据库
        //插入语句可以先在数据库中测试,再放入下方
        String sql="INSERT INTO student VALUES (DEFAULT, '李华', ' 男', '2000-03-06', 'hhh', '123456')";
        //创建预处理对象
        PreparedStatement ps= conn.prepareStatement(sql);
        //ps.executeUpdate()返回一个int值,用resultint接住
        int resultint=ps.executeUpdate();
        //判断resultint是否大于0,即可洞察是否插入成功
        //这里加个判断语句
        if (resultint>0){
            System.out.println("数据插入成功");
        }
        else {
            System.out.println("数据插入失败");
        }
        //资源释放
        ps.close();
        conn.close();
    }
}

结果:
Java实现<a class=数据库的插入" />

由于第一遍插入忘记资源释放,故插入了两边得到结果:
Java实现<a class=数据库数据的插入" />

java">package com.mystudy.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class Update {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        Class.forName("com.sql>mysql.jdbc.Driver");
        Connection conn= DriverManager.getConnection("jdbc:sql>mysql://localhost:3306/test1?useSSL=true","root","root");
        String sql="UPDATE student SET stu_password=12345 WHERE stu_id=4";
        PreparedStatement ps= conn.prepareStatement(sql);
        int resultint=ps.executeUpdate();
        if (resultint>0){
            System.out.println("数据修改成功");
        }
        else {
            System.out.println("数据修改失败");
        }
        //资源释放
        ps.close();
        conn.close();
    }
}

结果:
Java实现<a class=数据库数据的更新" />

java">package com.mystudy.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class Delete {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        Class.forName("com.sql>mysql.jdbc.Driver");
        Connection conn= DriverManager.getConnection("jdbc:sql>mysql://localhost:3306/test1?useSSL=true","root","root");
        String sql="DELETE FROM student WHERE stu_id=4";
        PreparedStatement ps= conn.prepareStatement(sql);
        int resultint=ps.executeUpdate();
        if (resultint>0){
            System.out.println("数据删除成功");
        }
        else {
            System.out.println("数据删除失败");
        }
        //资源释放
        ps.close();
        conn.close();
    }
}

结果:
Java实现<a class=数据库数据的删除" />

java">package com.mystudy.jdbc;

import java.sql.*;

public class Select {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        Class.forName("com.sql>mysql.jdbc.Driver");
        Connection conn= DriverManager.getConnection("jdbc:sql>mysql://localhost:3306/test1?useSSL=true","root","root");
        String sql="SELECT * FROM student ";
        PreparedStatement ps= conn.prepareStatement(sql);
        //返回结果集
        ResultSet rs=ps.executeQuery();
        //结果集的遍历
        while (rs.next()){
            //两种打印方法
//            System.out.print(rs.getInt("stu_id"));
//            System.out.print(rs.getString("stu_name"));
//            System.out.print(rs.getString("stu_sex"));
//            System.out.print(rs.getDate("stu_birthday"));
//            System.out.print(rs.getString("stu_user"));
//            System.out.print(rs.getString("stu_password"));
            System.out.print(rs.getInt(1));
            System.out.print(rs.getString(2));
            System.out.print(rs.getString(3));
            System.out.print(rs.getDate(4));
            System.out.print(rs.getString(5));
            System.out.println(rs.getString(6));
        }
        //资源释放
        rs.close();
        ps.close();
        conn.close();
    }
}

结果:
Java实现<a class=数据库数据的查询" />

  • 学完四种操作这里小编带大家学习’?'占位符的设置:’?'占位符的设置
  • 有兴趣可以学习:sql注入问题,,,事务回滚问题

http://www.niftyadmin.cn/n/1674953.html

相关文章

一个用Kakfa低级api的SparkStreaming程序实例

spark2.4以后可以用structStreaming 低级api消费:KafkaUtils.createDirectStream方式 这种方式不同于Receiver(高级api)接收数据,它定期地从kafka的topic下对应的partition中查询最新的偏移量,再根据偏移量范围在每个batch里面处理数据,Spark通过调用kafka简单的消费者Api(…

python实现rpc_python通过protobuf实现rpc

由于项目组现在用的rpc是基于google protobuf rpc协议实现的&#xff0c;所以花了点时间了解下protobuf rpc。rpc对于做分布式系统的人来说肯定不陌生&#xff0c;对于rpc不了解的童鞋可以自行google&#xff0c;这里只是做个简单的介绍。rpc的主要功能是让分布式系统的实现更为…

两物体的相对速度公式_电功、功率、电荷、电压、电阻率常用计算公式大全,电工必备...

电工常用单位与公式都在这里&#xff0c;你记得几个&#xff1f;快来盘点下&#xff01;电功表示电流在一段时间内通过某一电路&#xff0c;电场力所做的功。电能转化成多种其他形式能的过程也可以说是电流做功的过程&#xff0c;有多少电能发生了转化就说电流做了多少功&#…

为Ubuntu配置远程X访问(XDMCP Xming)

XDMCP, which stands for "X Display Manager Control Protocol" 1. 首先配置Ubuntu使之允许远程访问 点击 System -> Preference -> Remote Desktop&#xff0c;允许远程连接即可。 2.修改gdm配置文件 sudo cp /usr/share/doc/gdm/examples/custom.conf /etc/…

JDBC中的sql注入问题

SQL注入 SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严&#xff0c;攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句&#xff0c;在管理员不知情的情况下实现非法操作&#xff0c;以此来实现欺骗数据库服务器执行非授权的任意…

Flink结合canal同步到Hbase

企业运维的数据库最常见的是mysql&#xff1b;但是mysql有个缺陷&#xff1a;当数据量达到千万条的时候&#xff0c;mysql的相关操作会变的非常迟缓&#xff1b; 如果这个时候有需求需要实时展示数据&#xff1b;对于mysql来说是一种灾难&#xff1b;而且对于mysql来说&#x…

echarts示例_可视化工具ECharts入门

// 1.导入echartsimport echarts from echarts<div id"main" style"width:600px;height:400px;">div>//此时页面上的元素已经被渲染完毕了mounted() {// 3.基于准备好的dom,初始化echarts实例var myChart echarts.init(document.getElementById(…

兄弟三人去看灯瘸子_重庆修蓄水池7人遇难 幸存者:4兄弟只剩我一人

来源&#xff1a;红星新闻(原标题&#xff1a;一氧化碳中毒致修蓄水池7人遇难 幸存者&#xff1a;4兄弟只剩我一人)6月30日,重庆石柱县桥头镇发生一起事故&#xff0c;7名村民在修理水池时遇难。7月3日上午&#xff0c;红星新闻记者从石柱县县委宣传部获悉&#xff0c;经相关部…