三天学会JDBC(一)基本操作1(给各位道友拜个早年啦)
目录
一.概述
1.JDBC概述
2.JDBC编写步骤
二.JDBC数据库连接获取方式
传说中你为爱甘心被搁浅~
以前学过,现在相当于系统复习,加油哦!
一.概述
1.JDBC概述
- 持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用。大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以”固化”,而持久化的实现过程大多通过各种关系数据库来完成。
- 持久化的主要应用是将内存中的数据存储在关系型数据库中,当然也可以存储在磁盘文件、XML数据文件中。
- 在Java中,数据库存取技术可分为如下几类:
- JDBC直接访问数据库
- JDO (Java Data Object )技术
- 第三方O/R工具,如Hibernate, Mybatis 等
- JDBC是java访问数据库的基石,JDO、Hibernate、MyBatis等只是更好的封装了JDBC。
- JDBC(Java Database Connectivity)是一个独立于特定数据库管理系统、通用的SQL数据库存取和操作的公共接口(一组API),定义了用来访问数据库的标准Java类库,(java.sql,javax.sql)使用这些类库可以以一种标准的方法、方便地访问数据库资源。
- JDBC为访问不同的数据库提供了一种统一的途径,为开发者屏蔽了一些细节问题。
- JDBC的目标是使Java程序员使用JDBC可以连接任何提供了JDBC驱动程序的数据库系统,这样就使得程序员无需对特定的数据库系统的特点有过多的了解,从而大大简化和加快了开发过程。
- 如果没有JDBC,那么Java程序访问数据库时是这样的:
![](/assets/blank.gif)
2.JDBC编写步骤
二.JDBC数据库连接获取方式
- 在工程下新建lib文件夹
- mysql-connector-java-5.1.47.jar导入到lib目录下
3. 把导入的jar包添加到项目中
4. 新建package及测试类
![](/assets/blank.gif)
- 加载驱动:加载 JDBC 驱动需调用 Class 类的静态方法 forName(),向其传递要加载的 JDBC 驱动的类名 Class.forName(“com.mysql.jdbc.Driver”);
- 注册驱动:DriverManager 类是驱动程序管理器类,负责管理驱动程序
- 使用DriverManager.registerDriver(com.mysql.jdbc.Driver)来注册驱动
- 通常不用显式调用 DriverManager 类的 registerDriver() 方法来注册驱动程序类的实例,因为 Driver 接口的驱动程序类都包含了静态代码块,在这个静态代码块中,会调用 DriverManager.registerDriver() 方法来注册自身的一个实例。
如果连接失败,会报错 。
import java.sql.Connection;
import java.sql.Driver;
import java.sql.SQLException;
import java.util.Properties;public class Java_Test {public static void main(String[] args) throws SQLException {//驱动程序对象,获取driver实现类的对象Driver driver=new com.mysql.jdbc.Driver();//连接url,参数useSSL=false是关闭SSL安全连接,需要安全证书,配置麻烦,先不考虑String url="jdbc:mysql://localhost:3306/baizhan?useSSL=false";//把数据库的用户名和密码封装在Properties中//用于数据库连接时的属性提交,即相当于Navicat点击连接时填入的用户名,密码等参数Properties info=new Properties();info.setProperty("user","root");//连接时提交的用户名为rootinfo.setProperty("password","root");//连接时提交的密码为rootConnection conn=driver.connect(url,info);System.out.println(conn);}
}
输出:
com.mysql.jdbc.JDBC4Connection@67424e82
import java.sql.Connection;
import java.sql.Driver;
import java.sql.SQLException;
import java.util.Properties;public class Java_test1 {public static void main(String[] args) throws ClassNotFoundException, IllegalAccessException, InstantiationException, SQLException {//获取driver实现类的对象反射Class clazz=Class.forName("com.mysql.jdbc.Driver");Driver driver=(Driver)clazz.newInstance();String url="jdbc:mysql://localhost:3306/baizhan?useSSL=false";Properties info=new Properties();info.setProperty("user","root");info.setProperty("password","root");Connection conn=driver.connect(url,info);System.out.println(conn);}
}
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;public class Java_test2 {public static void main(String[] args) throws IllegalAccessException, InstantiationException, ClassNotFoundException, SQLException {//1.反射获取Driver的实现类Class clazz=Class.forName("com.mysql.jdbc.Driver");Driver driver=(Driver) clazz.newInstance();//2.提供另外三个获取连接信息String url="jdbc:mysql://localhost:3306/baizhan?useSSL=false";String user="root";String password="root";//注册驱动DriverManager.registerDriver(driver);//获取连接Connection conn=DriverManager.getConnection(url,user,password);System.out.println(conn);}
}
![](/assets/blank.gif)
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;public class Java_test2 {public static void main(String[] args) throws IllegalAccessException, InstantiationException, ClassNotFoundException, SQLException {//方式四Class.forName("com.mysql.jdbc.Driver");String url="jdbc:mysql://localhost:3306/baizhan?useSSL=false";String user="root";String password="root";Connection conn=DriverManager.getConnection(url,user,password);System.out.println(conn);}
}
user=root
password=root
url=jdbc:mysql://localhost:3306/baizhan
driverClass=com.mysql.jdbc.Driver
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;public class Java_test3 {public static void main(String[] args) throws IOException, ClassNotFoundException, SQLException {//1.读取配置文件中4个基本信息InputStream is=Java_test3.class.getClassLoader().getResourceAsStream("jdbc.properties");Properties pros=new Properties();pros.load(is);String user=pros.getProperty("user");String password=pros.getProperty("password");String url=pros.getProperty("url");String driverClass=pros.getProperty("driverClass");//2.加载驱动Class.forName(driverClass);//3.获取链接Connection conn= DriverManager.getConnection(url,user,password);System.out.println(conn);//快捷键sout}
}
遇到了数据库连接不上的bug,我大致浏览了网上的解决办法,最后还是重启电脑了。。。手懒,重启解决80%的问题。。
三天学会JDBC(一)基本操作1(给各位道友拜个早年啦)相关推荐
- 三天学会网络爬虫之Day01
三天学会网络爬虫之Day01 第一章 课程计划 第二章 网络爬虫 2.1. 爬虫入门程序 2.1.1. 环境准备 2.1.2. 环境准备 2.1.3. 加入log4j.properties 2.1.4 ...
- 三分钟学会css3中的flexbox布局
2019独角兽企业重金招聘Python工程师标准>>> 这篇文章里我们将学习CSS里flexbox布局的几个最重要的概念,通过学习flexbox布局,你会发现以往遇到的所有的关于布局 ...
- javaweb学习总结(三十三)——使用JDBC对数据库进行CRUD
javaweb学习总结(三十三)--使用JDBC对数据库进行CRUD 一.statement对象介绍 Jdbc中的statement对象用于向数据库发送SQL语句,想完成对数据库的增删改查,只需要通过 ...
- Juniper 210 密码清不掉_三分钟学会如何找回mysql密码
一.在测试工作中我们肯定会写一些sq查询语句方便我们验证数据是否正确,从而判断当前软件是否存在缺陷,但是查询的过程中肯定需要我们先连接数据库,如果数据库密码忘记我们就无法完成工作,这里就教会大家如何快 ...
- 三分钟学会PS小清新调色教程-萧蕊冰
今天的PS小教程教你三分钟学会PS小清新调色教程.夏天到了,夏天的阳光很大,拍出的照片都会有一种暖色的感觉,那么我们怎么把一张照片调成日式小清新呢?今天我们就来学一个PS小清新调色教程,让你体验一下日 ...
- 三小时学会css(菜鸟教程精华版)【中】
三小时学会css 上期传送门 CSS 盒子模型(Box Model) CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际内容. 盒模型允许我们在其它元素和周围元素边 ...
- 三小时学会css(菜鸟教程精华版)【上】
三小时学会css 三小时学会HTML传送门 <!DOCTYPE html> <html> <head> <meta charset="utf-8&q ...
- 仅需三步学会使用低代码ThingJS与森数据DIX数据对接
森数据DIX拥有强大的数据处理能力,内置主流集成插件,分钟级集成IT运维场景和IoT管理场景数据,提升效率.针对非主流系统,支持在线JS脚本编辑,提供灵活.规范的接口,满足低代码个性化需求,轻松实现物 ...
- 三天学会网络爬虫之Day03
三天学会网络爬虫之Day03 第一章 课程计划 第二章 案例扩展 2.1.定时任务. 2.1.1.Cron表达式 2.1.2.Cron测试 2.2.网页去重 2.2.1.去重方案介绍 2.2.2. S ...
最新文章
- 异步I/O 设备内核对象,事件内核对象,可提醒I/O 接收I/O通知
- poj 3090 Visible Lattice Points(离线打表)
- application.properties引用其他文件_金橙智能 | C语言头文件组织与包含原则,你知道吗?...
- 怎么把分钟转化成秒_怎么利用抖音短视频引流,手把手教你如何玩转抖音流量...
- 强制html元素不随窗口缩小而换行
- 【正在完善】CSS 计数器
- hive数据库无主键进行去重SQL
- SecureCRT连接不成功彻底解决方案
- mysql本机ip一般是多少_localhost简介、localhost与 127.0.0.1 及 本机IP 的区别
- 基于LayUI使用FullCalendar实现日程管理
- 我是怎样把工资从400-4000
- 刚写完的 基于微信的房产中介预约看房小程序 毕业设计毕设源码
- 抖音创作者信用分:如何提升信用等级,获取更多机会
- HotSpot垃圾回收器分类
- 校验组织机构代码 合法性
- linux 右键没有终端,ubuntu鼠标右键没有打开终端选项解决方法
- PowerBI实用技巧:案例一(动态切换坐标轴列值,例如交叉表头、列,图表坐标轴等)
- LaTeX之公式及编号
- IP第十天笔记 - - - BGP
- leetcode每日一题 911在线选举