4.7总结(内部类,JDBC API || 离散化,树状数组)

JAVA学习小结

一.内部类

        基础概念,用途和访问特点

什么是内部类:写在一个类中的另一个类称之为内部类;

内部类的用途:用于封装那些单独存在时没有意义,且是外部类的一部分的类(汽车发动机,人的心脏);提升代码的组织性,且更利于进行事件处理等操作。

访问特点

  • 内部类可以访问外部类的所有变量(包括私有);
  • 外部类访问内部类的成员时,必须创建对象。

        内部类的分类及其相关知识


二.JDBC API

Connection:

语句:
Connection connection = DriverManager.getConnection(url, user, password);

作用:建立与数据库的连接。
参数:url:数据库连接的URL。user:数据库用户名。password:数据库密码。

Statement:

语句:Statement statement = connection.createStatement();

作用:创建用于执行静态SQL语句的对象。

PreparedStatement:

语句:PreparedStatement preparedStatement = connection.prepareStatement(sql);

作用:创建预编译的SQL语句对象。

参数:sql:待执行的SQL语句,可以包含占位符?

ResultSet:

语句:ResultSet resultSet = statement.executeQuery(sql);

作用:执行SQL查询语句并返回结果集。

参数:sql:查询的SQL语句。

DriverManager:

语句:Class.forName(driver);

作用:加载并注册数据库驱动程序。

参数:driver:数据库驱动程序的类名。


增删查改小练习 

package com.demo;import java.sql.*;public class operation {public static void add(int id, String name, int age, String gender) throws Exception{//1.注册驱动// Class.forName("com.mysql.jdbc.Driver");Class.forName("com.mysql.cj.jdbc.Driver");// 修改部分结束//2.获取连接String url = "jdbc:mysql://localhost:3306/demo"; // 移除多余的空格String username = "root";String password = "root";Connection conn = DriverManager.getConnection(url, username, password);//System.out.println(conn); //测试是否连接上mysql数据库//3.定义sql语句String sql = "insert into tb_demo(id, name, age, gender) values (?, ?, ?, ?)";PreparedStatement pstmt = conn.prepareStatement(sql);pstmt.setInt(1, id);pstmt.setString(2, name);pstmt.setInt(3, age);pstmt.setString(4, gender);//执行SQLint count = pstmt.executeUpdate(); //影响行数//处理结果//System.out.println(count > 0);//释放资源pstmt.close();conn.close();}public static void deleteById(int id) throws Exception{//1.注册驱动// Class.forName("com.mysql.jdbc.Driver");Class.forName("com.mysql.cj.jdbc.Driver");// 修改部分结束//2.获取连接String url = "jdbc:mysql://localhost:3306/demo"; // 移除多余的空格String username = "root";String password = "root";Connection conn = DriverManager.getConnection(url, username, password);//System.out.println(conn); //测试是否连接上mysql数据库//3.定义sql语句String sql = "delete from tb_demo where id = ?";PreparedStatement pstmt = conn.prepareStatement(sql);pstmt.setInt(1, id); // 根据 id 来删除数据//执行SQLint count = pstmt.executeUpdate(); //影响行数//处理结果//System.out.println(count > 0);//释放资源pstmt.close();conn.close();}public static void finding() throws Exception {//1.注册驱动// Class.forName("com.mysql.jdbc.Driver");Class.forName("com.mysql.cj.jdbc.Driver");// 修改部分结束//2.获取连接String url = "jdbc:mysql://localhost:3306/demo"; // 移除多余的空格String username = "root";String password = "root";Connection conn = DriverManager.getConnection(url, username, password);//System.out.println(conn); //测试是否连接上mysql数据库//3.定义sql语句String sql = "select * from tb_demo";PreparedStatement pstmt = conn.prepareStatement(sql);//执行查询ResultSet rs = pstmt.executeQuery();//处理查询结果while (rs.next()) {// 获取查询结果的每一行数据int id = rs.getInt("id");String name = rs.getString("name");int age = rs.getInt("age");String gender = rs.getString("gender");// 打印数据System.out.println("id: " + id + ", name: " + name + ", age: " + age + ", gender: " + gender);}//释放资源rs.close();pstmt.close();conn.close();}public static void update(int id, String name, int age, String gender) throws Exception {//1.注册驱动// Class.forName("com.mysql.jdbc.Driver");Class.forName("com.mysql.cj.jdbc.Driver");// 修改部分结束//2.获取连接String url = "jdbc:mysql://localhost:3306/demo"; // 移除多余的空格String username = "root";String password = "root";Connection conn = DriverManager.getConnection(url, username, password);//System.out.println(conn); //测试是否连接上mysql数据库//3.定义sql语句String sql = "UPDATE tb_demo SET name = ?, age = ?, gender = ? WHERE id = ?";PreparedStatement pstmt = conn.prepareStatement(sql);pstmt.setString(1, name); // 设置新的名字pstmt.setInt(2, age); // 设置新的年龄pstmt.setString(3, gender); // 设置新的性别pstmt.setInt(4, id); // 设置更新条件,假设根据 id 来更新数据//执行更新操作int count = pstmt.executeUpdate(); // 影响行数//处理结果//System.out.println(count > 0);//释放资源pstmt.close();conn.close();}
}

算法

一.离散化

相关知识【算法基础——第八讲】离散化_离散化算法-CSDN博客

关键代码(映射 + 排序去重)

//映射
int getidx(int x)
{return lower_bound(X.begin(), X.end(), x) - X.begin() + 1;
}//排序去重
sort(X.begin(), X.end());
X.erase(unique(X.begin(), X.end()), X.end());

二.树状数组 

相关知识:树状数组(详细分析+应用),看不懂打死我!-CSDN博客

个人板子及理解

代码 

#include <bits/stdc++.h>
using namespace std;
using ll  = long long
const int N = 1e5 + 9;ll a[N], t[N];
int n, q;int lowbit(int x) {return x & (-x);} //找出与所有与该点相关的覆盖区间void update(int k, ll x)
{for(int i = k; i <= n; i += lowbit(i)) t[i] += x; //单点更新后随之更新覆盖区间
}ll getsum(ll k)
{ll res = 0;for(int i = k; i > 0; i -= lowbit(i)) res += t[i]; return res;
}int main ()
{ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);cin >> n >> q;for(int i = 1; i <= n; ++ i) cin >> a[i];for(int i = 1; i <= n; ++ i) update(i, a[i]);while(q --){int op; cin >> op;if(op == 1){ll k, x; cin >> k >> x;update(k, x);}else{ll l, r; cin >> l >> r;cout << getsum(r) - getsum(l - 1) << '\n'; //前缀和思想}}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/799332.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【MySQL探索之旅】数据库设计以及聚合查询

&#x1f4da;博客主页&#xff1a;爱敲代码的小杨. ✨专栏&#xff1a;《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 |《MySQL探索之旅》 |《Web世界探险家》 ❤️感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;&#xff0c;您的三连就是我持续更…

Django之静态文件及模板语法(上)

Python学习之路系列文章目录 python面向对象之警察与匪徒火拼场景模拟python面向对像之第二次笔记Django环境搭建及测试第1个Django应用及Django的请求处理Django之静态文件及模板语法&#xff08;上&#xff09; 静态文件及模板语法 Python学习之路系列文章目录一、静态文件1.…

SQLite 4.9的虚拟表机制(十四)

返回&#xff1a;SQLite—系列文章目录 上一篇:SQLite 4.9的 OS 接口或“VFS”&#xff08;十三&#xff09; 下一篇&#xff1a;SQLite—系列文章目录 1. 引言 虚拟表是向打开的 SQLite 数据库连接注册的对象。从SQL语句的角度来看&#xff0c; 虚拟表对象与任何其他…

软考高级:计算机网络概述

作者&#xff1a;明明如月学长&#xff0c; CSDN 博客专家&#xff0c;大厂高级 Java 工程师&#xff0c;《性能优化方法论》作者、《解锁大厂思维&#xff1a;剖析《阿里巴巴Java开发手册》》、《再学经典&#xff1a;《Effective Java》独家解析》专栏作者。 热门文章推荐&am…

数据库相关知识总结

一、数据库三级模式 三个抽象层次&#xff1a; 1. 视图层&#xff1a;最高层次的抽象&#xff0c;描述整个数据库的某个部分的数据 2. 逻辑层&#xff1a;描述数据库中存储的数据以及这些数据存在的关联 3. 物理层&#xff1a;最低层次的抽象&#xff0c;描述数据在存储器中时如…

五一假期来临,各地景区云旅游、慢直播方案设计与平台搭建

一、行业背景 经文化和旅游部数据中心测算&#xff0c;今年清明节假期3天全国国内旅游出游1.19亿人次&#xff0c;按可比口径较2019年同期增长11.5%&#xff1b;国内游客出游花费539.5亿元&#xff0c;较2019年同期增长12.7%。踏青赏花和户外徒步成为假期的热门出游主题。随着…

Taro打包生成不同目录

使用taro init创建taro项目时&#xff0c;taro默认打包目录是&#xff1a; /config/index.js outputRoot:dist默认的目录&#xff0c;编译不同平台代码时就会覆盖掉&#xff0c;为了达到多端同步调试的目的&#xff0c;这时需要修改默认生成目录了&#xff0c;通过查看官方文…

【LeetCode】排序数组——不一样的方式实现快排

目录 题目链接 颜色分类 算法原理 代码实现 排序数组 算法原理 代码实现 最小的k个数 算法原理 代码实现 题目链接 LeetCode链接&#xff1a;75. 颜色分类 - 力扣&#xff08;LeetCode&#xff09; LeetCode链接&#xff1a;912. 排序数组 - 力扣&#xff08;L…

docker 部署 Epusdt - 独角数卡 dujiaoka 的 usdt 支付插件

部署 部署说明 部署之前必须注意的几点事项,该教程不一定适合所有用户: 本教程主要是使用 docker 部署,宝塔用户或宿主机直接安装的用户请直接参考官网教程.本教程是独立部署 epusdt,使用独立的mysql和redis,与dujiaoka项目分开. 在研究的过程中发现 epusdt 也需要用到 mys…

CADP加密系统的可扩展性和可定制性

CADP加密系统是一种专门用于保护CAD(计算机辅助设计)文件安全的加密解决方案。随着CAD技术在各个领域的广泛应用&#xff0c;CAD文件的安全性和保密性日益受到重视。CADP加密系统通过一系列先进的加密技术和安全措施&#xff0c;为CAD文件提供全面的保护&#xff0c;防止未经授…

ES入门十五:分页的三驾马车【from+size、search after、scroll api】

从数据集中获取数据时分页是绕不开的操作&#xff0c;一下子从数据集中获取过多的数据可能会造成系统抖动、占用带宽等问题。特别是进行全文搜索时&#xff0c;用户只关心相关性最高的那个几个结果&#xff0c;从系统中拉取过多的数据等于浪费资源。 ES提供了3种分页方式&…

Java | Leetcode Java题解之第15题三数之和

题目&#xff1a; 题解&#xff1a; class Solution {public List<List<Integer>> threeSum(int[] nums) {int n nums.length;Arrays.sort(nums);List<List<Integer>> ans new ArrayList<List<Integer>>();// 枚举 afor (int first 0;…

springboot整合ShardingSphere分库分表并插入1kw条记录

目录 一&#xff0c;数据分片 二&#xff0c;水平分片 三&#xff0c;创建数据库表 四&#xff0c;springboot项目导入依赖 五&#xff0c;创建类 六&#xff0c;bug bug放到最后了。 一&#xff0c;数据分片 数据分片指按照某个维度将存放在单一数据库中的数据分散地存…

每天学习一个Linux命令之curl

每天学习一个Linux命令之curl 在Linux系统中&#xff0c;有很多有用的命令可以帮助我们与网络进行交互。一个非常常用的命令是curl&#xff0c;它是一个功能强大的工具&#xff0c;可用于发送、接收和处理各种网络请求。本文将详细介绍在Linux下使用curl命令的各种选项及其用法…

如何理解图像处理领域的病态问题(ill-posed problem)

ill-posed problem&#xff0c;我们可以理解为病态问题或者不适定问题。在本文中&#xff0c;统一成为不适定问题。 在讨论不适定问题&#xff08;ill-posed problem&#xff09;之前&#xff0c;我们先来看一下什么叫适定性问题&#xff08;well-posed problem&#xff09;。…

如何明确的选择IT方向?

一、明确目标 作为初学者&#xff0c;先树立自己目标&#xff0c;找到自己感兴趣的IT行业&#xff0c;IT行业分很多种&#xff0c;听的最多次的无非不就是web前端工、程序员、后端、大数据、网络运维等。学习知识也是为了找到更好的工作&#xff0c;所以我建议先去boss直聘、五…

目标检测标签分配策略,难样本挖掘策略

在目标检测任务中&#xff0c;样本的划分对于模型的性能具有至关重要的影响。其中&#xff0c;正样本指的是包含目标物体的图像或区域&#xff0c;而负样本则是不包含目标物体的图像或区域。然而&#xff0c;在负样本中&#xff0c;有一部分样本由于其与正样本在特征上的相似性…

jest单元测试——项目实战

jest单元测试——项目实战 一、纯函数测试二、组件测试三、接口测试四、React Hook测试&#x1f4a5; 其他的疑难杂症另&#xff1a;好用的方法 &#x1f31f; 温故而知新&#xff1a;单元测试工具——JEST 包括&#xff1a;什么是单元测试、jest的基本配置、快照测试、mock函数…

「39」打造专业流畅的直播特效转场……

「39」工作室模式 打造专业流畅的直播特效转场体验 工作室模式是OBS软件里的一个特殊功能,用于后期直播过程中追求直播效果的用户,才会使用此功能。 该功能意在更加平滑,使用模板信息变化的过渡效果。主要用在赛事比分、活动抽奖、直播时需要经常更改的场景和内容,以及片…

Android 11属性系统初始化流程

在init进程启动的第二阶段&#xff0c;调用PropertyInit 对属性系统进行初始化 int SecondStageMain(int argc, char** argv) {//省略PropertyInit();//省略 }PropertyInit函数在system\core\init\property_service.cpp 中实现 void PropertyInit() {//省略mkdir("/dev/…