使用JDBC进行简单连接

学习笔记:JDBC与数据库

集训的有关总结

连接数据库(MySQL)的步骤:

  1. 导入jar包(可以去官网下)
    复制mysql-connector-java-5.1.37-bin.jar到项目libs目录下
    右键–>Add As Library

  2. 注册驱动

  3. 获取数据库连接对象Connection

  4. 定义sql

  5. 获取执行sql语句的对象Statement

  6. 执行sql,接收返回的结果

  7. 处理结果

  8. 释放资源

下面以简单的例子介绍:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;/**1. JDBC连接数据库2. @author MIAO3. @date 2020/5/11*/
public class LoginJDBC {public static void main(String[] args) throws Exception {//1.注册驱动Class.forName("com.mysql.jdbc.Driver");//2.获取数据库连接对象Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test1","root","root");System.out.println(conn);//3.定义sql语句String sql = "insert into score(sid,sname,sage) values(99,'李未来',18)";//4.获取执行sql语句的对象StatementStatement statement = conn.createStatement();//5.执行sql语句,接收返回结果int i = statement.executeUpdate(sql);//6.处理结果System.out.println("受影响行数:"+i);//7.释放资源statement.close();conn.close();}
}

关于对象的详解:

  1. DriverManager:驱动管理对象
  • 注册驱动:告诉程序应该使用哪一个数据库驱动jar包
    Class.forName("com.mysql.jdbc.Driver");
  • 获取数据库连接
    Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test1","root","root");
  • url="jdbc:mysql://localhost:3306/test1"指明数据库的连接路径
  • 语法:(jdbc:mysql://ip地址(域名):端口号(这里MySQL默认的端口号是3306)/数据库名称(这里我创建的数据库名称为test1),“user用户名”,“password数据库密码”);
  1. Connection:数据库连接对象

获取执行sql的对象
Statement statement = conn.createStatement();

  1. Statement:执行sql的对象
  • executeUpdate()方法:执行DML(insert,update,delete)和DDL(create,alter,drop)语句
  • 返回值:影响的行数,可以通过这个行数判断所写的sql语句是否执行,返回值>0执行成功,返回值<0执行失败
  1. ResultSet:结果集对象,封装查询结果
  • boolean next(): 游标向下移动一行,判断当前行是否是最后一行末尾(是否有数据),如果是,则返回 false,如果不是则返回 true
  • 使用步骤:
    游标向下移动一行
    判断是否有数据
    获取数据
  1. PreparedStatement:执行sql对象
  • SQL 注入问题:在拼接 sql 时,有一些 sql 的特殊关键字参与字符串的>拼接。会造成安全性问题
  • 输入用户随便,输入密码: a’ or ‘a’ = 'a
  • sql:select * from user where username = ‘fhdsjkf’ and password = ‘a’ or ‘a’ = ‘a’
  • 解决 sql 注入问题:使用 PreparedStatement 对象来解决
  • 预编译的 SQL:参数使用 ? 作为占位符
  • 注意:sql 的参数使用?作为占位符。
    如: select * from user where username = ? and password = ?;

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

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

相关文章

Leetcode--41. 缺失的第一个正数

给定一个未排序的整数数组&#xff0c;找出其中没有出现的最小的正整数。 示例 1: 输入: [1,2,0] 输出: 3 示例 2: 输入: [3,4,-1,1] 输出: 2 示例 3: 输入: [7,8,9,11,12] 输出: 1 说明: 你的算法的时间复杂度应为O(n)&#xff0c;并且只能使用常数级别的空间。 思路:时间…

深度学习中的3个秘密:集成、知识蒸馏和蒸馏

作者&#xff1a;Zeyuan Allen-Zhu来源&#xff1a;AI公园编译&#xff1a;ronghuaiyang在现在的标准技术下&#xff0c;例如过参数化、batch-normalization和添加残差连接&#xff0c;“现代”神经网络训练 —— 至少对于图像分类任务和许多其他任务来说 —— 通常是相当稳定的…

对于JDBC的简单理解

什么是JDBC&#xff1f;为什么要使用JDBC&#xff1f; 1. JDBC JDBC是Java DataBase Connectivity的缩写&#xff0c;即Java程序访问数据库的标准接口使用Java程序访问数据库时&#xff0c;通过JDBC接口来访问JDBC驱动来实现对数据库的操作JDBC接口是Java标准库自带的&#xf…

BeautifulSoup

BeautifulSoup是一个模块&#xff0c;该模块用于接收一个HTML或XML字符串&#xff0c;然后将其进行格式化&#xff0c;之后遍可以使用他提供的方法进行快速查找指定元素&#xff0c;从而使得在HTML或XML中查找指定元素变得简单。 1. 安装 pip3 install beautifulsoup42.示例 fr…

Leetcode-45. 跳跃游戏Ⅱ

给定一个非负整数数组&#xff0c;你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 你的目标是使用最少的跳跃次数到达数组的最后一个位置。 示例: 输入: [2,3,1,1,4] 输出: 2 解释: 跳到最后一个位置的最小跳跃数是 2。 从下标为 …

研究揭示人类大脑进化的基因组调控机制

来源&#xff1a;中国科学院昆明动物研究所人类大脑起源于漫长的生命进化过程&#xff0c;其最显著的改变是大脑的认知功能&#xff0c;反映在脑容量的显著扩大和脑结构的高度精细化。在人类进化过程中&#xff0c;“哪些遗传改变造就了人类大脑”是学界长期力图解决的科学问题…

计算机组成原理笔记——存储器分类、层次结构、技术指标、存储单元地址分配

计算机组成原理笔记——存储器分类、层次结构、技术指标、存储单元地址分配 一. 概述 存储器的分类 按存储介质划分&#xff1a; (1)半导体存储器 双极型(TTL)、MOS (2)磁表面存储器 磁头、载磁体 (3)磁芯存储器(目前几乎已不被采用)硬磁材料、环状元件 (4)光盘存储器 激光、…

interceptor 拦截器的使用 (session验证)

需要引入 http://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd之前是3.0.xsd mvc:exclude-mapping 报错 需要改成3.2.xsd <mvc:interceptors> <mvc:interceptor> <!-- 需拦截的地址 --> …

Leetcode--229. 求众数Ⅱ

给定一个大小为 n 的数组&#xff0c;找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素。 说明: 要求算法的时间复杂度为 O(n)&#xff0c;空间复杂度为 O(1)。 示例 1: 输入: [3,2,3] 输出: [3] 示例 2: 输入: [1,1,1,3,3,2,2,2] 输出: [1,2] 思路&#xff1a; 摩尔投票法 超过…

刚刚,《The Scientist》预测了未来最热门的生命科学技术

图片来源&#xff1a;illumina来源&#xff1a;中国生物技术网去年&#xff0c;新冠疫情席卷全球&#xff0c;生物医学研究领域学者奋起应对挑战&#xff0c;并取得了前所未有的科学成就。2021年已来&#xff0c;尽管大流行还在继续&#xff0c;但美国《The Scientist&#xff…

Java Web项目的层次结构及常见分包

Java Web项目的层次结构及常见分包 Web项目中的层次 ControllerServiceDaoController层&#xff1a;表现层&#xff08;视图&#xff09;层。用来显示数据和接收用户数据Service层&#xff1a;业务逻辑层&#xff0c;用来处理页面。先写接口&#xff0c;后写实现类Dao层&#…

BZOJ3489 A simple rmq problem 【可持久化树套树】*

BZOJ3489 A simple rmq problem Description 因为是OJ上的题&#xff0c;就简单点好了。给出一个长度为n的序列&#xff0c;给出M个询问&#xff1a;在[l,r]之间找到一个在这个区间里只出现过一次的数&#xff0c;并且要求找的这个数尽可能大。如果找不到这样的数&#xff0c;则…

Leetcode--319. 灯泡开关

初始时有 n 个灯泡关闭。 第 1 轮&#xff0c;你打开所有的灯泡。 第 2 轮&#xff0c;每两个灯泡你关闭一次。 第 3 轮&#xff0c;每三个灯泡切换一次开关&#xff08;如果关闭则开启&#xff0c;如果开启则关闭&#xff09;。第 i 轮&#xff0c;每 i 个灯泡切换一次开关。 …

Eclipse中tomcat的简单配置

Eclipse中tomcat的简单配置 将Eclipse与tomcat相关联 如果下拉选项中没有jdk1.8.0_131&#xff0c;就点击后面的选项 把服务器视图调出来&#xff0c;方便之后调试 将tomcat服务器调入 如果要添加项目&#xff0c;点击右键&#xff0c;选择Add and Remove… 最后&#xff0…

AI智能体学会动物进化法则:李飞飞等提出深度进化RL

来源&#xff1a;机器之心编辑&#xff1a;杜伟、魔王、陈萍在过去 6 亿年中&#xff0c;进化带来了不同类型的「无尽之形最美」&#xff08;endless forms most beautiful&#xff09;&#xff0c;从古老的两侧对称虫到多种多样的动物形态。这些动物还展示出了显著的具身智能&…

Leetcode--22. 括号生成

给出 n 代表生成括号的对数&#xff0c;请你写出一个函数&#xff0c;使其能够生成所有可能的并且有效的括号组合。 例如&#xff0c;给出 n 3&#xff0c;生成结果为&#xff1a; [ "((()))", "(()())", "(())()", "()(())&quo…

DevExpress v18.1新版亮点——WPF篇(五)

用户界面套包DevExpress v18.1日前终于正式发布&#xff0c;本站将以连载的形式为大家介绍各版本新增内容。本文将介绍了DevExpress WPF v18.1 的新功能&#xff0c;快来下载试用新版本&#xff01;点击下载>> Spreadsheet Control Spreadsheet Shapes 从简单的线条、矩形…

tomcat修改端口号与eclipse中的tomcat保持一致

tomcat修改端口号与eclipse中的tomcat保持一致 将本地tomcat与eclipse中tomcat的配置信息保持一致&#xff1a;即将eclipse中的tomcat设置为托管模式 1. 添加项目 2. 查看server.xml文件中tomcat的端口号 3. 第一次创建tomcat实例后&#xff0c;双击tomcat服务器&#xff0c;选…

(数据科学学习手札45)Scala基础知识

一、简介 由于Spark主要是由Scala编写的&#xff0c;虽然Python和R也各自有对Spark的支撑包&#xff0c;但支持程度远不及Scala&#xff0c;所以要想更好的学习Spark&#xff0c;就必须熟练掌握Scala编程语言&#xff0c;Scala与Java较为相似&#xff0c;且在Scala中可以调用很…

Leetcode--76. 最小覆盖子串

给你一个字符串 S、一个字符串 T&#xff0c;请在字符串 S 里面找出&#xff1a;包含 T 所有字母的最小子串。 示例&#xff1a; 输入: S "ADOBECODEBANC", T "ABC" 输出: "BANC" 说明&#xff1a; 如果 S 中不存这样的子串&#xff0c;则返…