Java JDBC篇1——初识JDBC
Java JDBC篇1——初识JDBC
Java DataBase Connectivity Java 数据库连接(Java语言操作数据库)
1、什么是JDBC
其实是官方定义的一套操作所有关系型数据库的规则(接口),各个数据库厂商去实现这套接口,提供数据库驱动jar包,我们使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类
2、MySql驱动包
官网地址 https://mvnrepository.com/artifact/mysql/mysql-connector-java
mysql-connector-java-5.1.49.jar 百度云:https://pan.baidu.com/s/17J2VfkGS2h44j69eB8TuFA提取码:nhnt
mysql-connector-java-8.0.25.jar 百度云:https://pan.baidu.com/s/1b8n7650uMKJtwidoptOjNQ提取码:wtvn
3、JDBC快速入门
3.1、建表和数据
USE test;
CREATE TABLE USER (id INT PRIMARY KEY AUTO_INCREMENT ,username VARCHAR(50),PASSWORD VARCHAR(50),birthday DATE
);
INSERT INTO USER (username, PASSWORD,birthday)
VALUES('admin1', '123','2000-12-24'),
('admin2','123','2003-12-24'),
('test1', '123','2006-12-24'),
('test2', '123','2005-12-24');
3.2、JDBC
5.x
public class Test {public static void main(String[] args) {Connection connection = null;Statement statement = null;ResultSet resultSet = null;try {// 1、注册驱动Class.forName("com.mysql.jdbc.Driver");// 2、获取连接String url="jdbc:mysql://localhost:3306/test";String username="root";String password="blingbling123.";connection = DriverManager.getConnection(url, username, password);//3、定义sqlString sql="select * from user";//4、获取指定sql对象statement = connection.createStatement();//5、执行sqlresultSet = statement.executeQuery(sql);//6、取出结果while (resultSet.next()){System.out.println(resultSet.getString("username"));}} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException throwables) {throwables.printStackTrace();} finally {//7、关闭连接if (resultSet!=null){try {resultSet.close();} catch (SQLException throwables) {throwables.printStackTrace();}}if (statement!=null){try {statement.close();} catch (SQLException throwables) {throwables.printStackTrace();}}if (connection!=null){try {connection.close();} catch (SQLException throwables) {throwables.printStackTrace();}}}}
}
8.x
public class Test {public static void main(String[] args) {Connection connection = null;Statement statement = null;ResultSet resultSet = null;try {// 1、注册驱动Class.forName("com.mysql.cj.jdbc.Driver");// 2、获取连接String url="jdbc:mysql://localhost:3306/test?serverTimezone=UTC&characterEncoding=utf-8&useSSL=false";String username="root";String password="blingbling123.";connection = DriverManager.getConnection(url, username, password);//3、定义sqlString sql="select * from user";//4、获取指定sql对象statement = connection.createStatement();//5、执行sqlresultSet = statement.executeQuery(sql);//6、取出结果while (resultSet.next()){System.out.println(resultSet.getString("username"));}} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException throwables) {throwables.printStackTrace();} finally {//7、关闭连接if (resultSet!=null){try {resultSet.close();} catch (SQLException throwables) {throwables.printStackTrace();}}if (statement!=null){try {statement.close();} catch (SQLException throwables) {throwables.printStackTrace();}}if (connection!=null){try {connection.close();} catch (SQLException throwables) {throwables.printStackTrace();}}}}
}
4、JDBC对象详解
4.1、Class.forName(“com.mysql.jdbc.Driver”);
查看源码发现:在com.mysql.cj.jdbc.Driver类中存在静态代码块
static {try {java.sql.DriverManager.registerDriver(new Driver());} catch (SQLException E) {throw new RuntimeException("Can't register driver!");}
}
mysql5之后的驱动jar包可以省略注册驱动的步骤
5.x
Class.forName("com.mysql.jdbc.Driver");
8.x
Class.forName("com.mysql.cj.jdbc.Driver");
4.2、DriverManager(数据库连接对象)
方法声明 | 功能介绍 |
---|---|
Connection getConnection(String url, String user, String password) | 通过连接字符串和用户名,密码来获取数据库连接对象 |
5.x url
String url="jdbc:mysql://localhost:3306/test";
8.x url
String url="jdbc:mysql://localhost:3306/test?serverTimezone=UTC&characterEncoding=utf-8&useSSL=false";
4.3、Connection(数据库连接对象)
方法声明 | 功能介绍 |
---|---|
Statement createStatement() | 创建 SQL语句执行对象 |
PreparedStatement prepareStatement(String sql) | 创建 SQL语句执行对象(防注入) |
4.4、Statement(执行sql对象)
方法声明 | 功能介绍 |
---|---|
boolean execute(String sql) | 可以执行任意的sql语句 |
int executeUpdate(String sql) | 执行DML(insert、update、delete)DDL(create,alter、drop)返回值:影响的行数,可以通过这个影响的行数判断DML语句是否执行成功 |
ResultSet executeQuery(String sql) | 执行DQL(select)语句 |
4.5、ResultSet(结果集对象)
方法声明 | 功能介绍 |
---|---|
boolean next() | 游标向下移动一行,判断当前行是否是最后一行末尾(是否有数据),如果是,则返回false,如果不是则返回true |
Xxx getXxx(参数): | 获取数据,Xxx:代表数据类型(int:列的编号,String:列名称) |
5、抽取JDBC工具类
url=jdbc:mysql://localhost:3306/test
user=root
password=blingbling123.
driver=com.mysql.jdbc.Driver
public class JDBCtool {private static String urls;private static String user;private static String password;private static String driver;static {Properties properties=new Properties();ClassLoader classLoader=JDBCtool.class.getClassLoader();URL url=classLoader.getResource("connection.properties");String path=url.getPath();try {properties.load(new FileReader(path));} catch (IOException e) {e.printStackTrace();}urls=properties.getProperty("url");user=properties.getProperty("user");password=properties.getProperty("password");driver=properties.getProperty("driver");try {Class.forName(driver);} catch (ClassNotFoundException e) {e.printStackTrace();}}public static Connection getconnection() throws SQLException {return DriverManager.getConnection(urls,user,password);}public static void close(Connection connection, PreparedStatement preparedStatement, ResultSet resultSet){if (resultSet!=null){try {resultSet.close();} catch (SQLException e) {e.printStackTrace();}}if (preparedStatement!=null){try {preparedStatement.close();} catch (SQLException e) {e.printStackTrace();}}if (connection!=null){try {connection.close();} catch (SQLException e) {e.printStackTrace();}}}
}
public class Test {public static void main(String[] args) throws SQLException {Connection connection = JDBCtool.getconnection();String sql="select * from user";PreparedStatement preparedStatement = connection.prepareStatement(sql);ResultSet resultSet = preparedStatement.executeQuery(sql);while (resultSet.next()){System.out.println(resultSet.getString("username"));}JDBCtool.close(connection,preparedStatement,resultSet);}
}
Java JDBC篇1——初识JDBC相关推荐
- JAVA WEB篇1——初识JAVAWEB
JAVA WEB篇1--初识JAVAWEB JavaWeb主要指使用Java语言进行动态Web资源开发技术的统称,是解决相关Web互联网领域的技术总和 1.Http协议 HTTP协议(HyperTex ...
- 大数据笔记16—java基础篇12(JDBC 、连接池、事务)
目录 JDBC jdbc概述 jdbc入门案例 API详解 jdbc工具类 预编译执行平台 1.SQL注入问题(安全问题) 2API详解:预处理对象(PreparedStatement) 使用连接池重 ...
- Java JDBC篇4——数据库连接池
Java JDBC篇4--数据库连接池 1.DBCP 1.1.依赖jar包 官网:https://mvnrepository.com/artifact/org.apache.commons/commo ...
- Java JDBC篇3——JDBC事务
Java JDBC篇3--JDBC事务 1.事务方法 方法声明 功能介绍 void setAutoCommit(boolean autoCommit) 参数是 true 或 false 如果设置为 f ...
- Java JDBC篇2——JDBC增删查改
Java JDBC篇2--JDBC增删查改 url=jdbc:mysql://localhost:3306/test user=root password=blingbling123. driver= ...
- Java基础篇:JDBC核心技术
文章目录 第1章:JDBC概述 1.1 数据的持久化 1.2 JDBC介绍 1.3 JDBC程序编写步骤 第2章:获取数据库连接 2.1 要素一:Driver接口实现类 2.1.1 Driver接口介 ...
- java jdbc 教程_java JDBC系列教程之JDBC类的简析与JDBC的基础操作
什么是JDBC? 概念:JAVA Database Connectivity Javas数据库连接,Java语言操作数据库接口,然后由各个数据库厂商去实现这个接口,提供数据库驱动java包,我们可以使 ...
- linux5.4+resin4.0.14+jdk1.6+JDBC篇
linux5.4+resin4.0.10+jdk1.6+JDBC篇.docx Smle 版权所有 联系方式QQ317362607 以下内容都是本人亲身实践得来的经验,如果有误请联系我,加以改正,互相学 ...
- 双表查询java代码_什么是JDBC?Java数据库连接性简介
JDBC(Java数据库连接性)是Java API,用于管理与数据库的连接,发出查询和命令以及处理从数据库获得的结果集.JDBC在1997年作为JDK 1.1的一部分发布,是为Java持久层开发的首批 ...
最新文章
- wamp环境下安装imagick扩展
- c语言课件 文件,C语言课件--文件.ppt
- Metasploit发布了新版本5.0.83
- 【集训队互测2015】最大异或和
- Leet Code题解 - 1559. Detect Cycles in 2D Grid 检测二维无向图中的环
- Hive报错:Exception in thread main java.lang.Incom。。。。 Class com.google.common.collect.ImmutableSotil
- 成功人士高效率的工作法
- MiniDao1.7.1 版本发布,轻量级Java持久化框架
- golang 单协程和多协程的性能测试
- 个人总结 超详细 windows10下载与安装
- 五子棋游戏开发六子棋游戏开发
- html a标签链接 点击下载文件
- PPP项目群管理模式的实践探索——以浙江交工富阳PPP项目群为例
- 晶体管介绍工作原理与历史
- jQuery教程(整理自W3CSchool)(第一部分)
- SSD掉电保护也是一门艺术
- 企业的财务部门为什么要用内网即时通讯软件
- 姬魔恋战纪服务器维护,《姬魔恋战纪》11月7日更新公告
- 这竟然不是阿汤哥?这个「真的吓人」视频火爆全网
- Primavera P6打补丁patch,从19.12.0.0升级到19.12.11.0
热门文章
- ruby array_Ruby中带有示例的Array.fill()方法(1)
- 离散数学和组合数学什么关系_关系类型| 离散数学
- Java Hashtable containsValue()方法与示例
- lvs负载均衡—DR模式
- c语言怎么写星星代码,C语言打印星星的问题
- avr uart打印_AVR | 在16x2 LCD上打印HELLO WORLD
- Java LinkedList公共int indexOf(Object o)方法(带示例)
- synchronized 中的 4 个优化,你知道几个?
- HashMap 为什么会导致 CPU 100%?文章看不懂?来看这个视频吧!——面试突击 006 期...
- 面试突击 005 | Redis 是如何实现高可用的?它的实现方式有哪些?「视频版」