JDBC01 获取数据库连接
概述
Java Database Connectivity(JDBC)直接访问数据库,通用的SQL数据库存取和操作的公共接口,定义访问数据库的标准java类库(java.sql,javax.sql)

JDBC程序编写步骤

说明:
1.创建Connection对象相当于与数据库建立了链接
2.查询与增删改的差别是是否需要结果集,所以查询需要ResultSet对象
获取数据连接
目的:创建Connection对象
buid path
说明:如果只是将jar包复制到Java工程里面去,是无法使用jar包里面的类,因为无法找到jar包,所以build path其实就是添加jar包的路径
1.先导入jar包

File -> Project Structure -> Modules -> 选中要添加build path的项目 -> Dependencies -> 点击右边的小加号 -> 选择JARs or directories -> 选中jar包的目录

Driver注册
获取Driver实现类对象
//注册 JDBC 驱动
Class.forName("com.mysql.cj.jdbc.Driver");
把Driver类加载到内存中,Driver类中有一段静态代码块(随类的加载而加载)
//Driver类中的静态代码块
static{
try{
java.sql.DriverManager.registerDriver(new Driver());
}catch(SQLException E){
throw new RuntimeException("Can't register driver!");
}
}
所以就不需要手动注册驱动了
//获得该类时自动完成了下面的代码
//加载Driver
Class clazz = Class.forName("com.mysql.jdbc.Driver");
// 获得实例
Driver driver =(Driver)clazz.getDeclaredConstructor().newInstance();
DriverManager.registerDriver(driver); //注册驱动
反射知识复习
Class的实例对应一个运行时类
获取Class实例=获取该类=获取运行时类,调用Class的静态方法forName(String classPath) classPath 包名.类名
java.exe命令对某个字节码文件进行解释运行,相当于将某个字节码文件加载到内存中。此过程称为类的加载.加载到内存中的类,就称为运行时类
创建运行时类的对象,要求
1.调用空参构造器,所以该运行时类必须有空参构造器
2.空参构造器的访问权限要足够
Class<Person> clazz = Person.class;
clazz.getDeclaredConstructor().newInstance();
URL
示例:jdbc:mysql://localhost:3306/test
jdbc:mysql 协议
localhost ip地址
3306 默认mysql端口号
test mysql中的test数据库
注意点:
1.MySQL 8.0 以上版本不需要建立 SSL 连接的,需要显示关闭。
2.allowPublicKeyRetrieval=true 允许客户端从服务器获取公钥。
3.最后还需要设置时区Asia/Shanghai
创建Connection对象,使用DriverManager的静态方法
//使用的静态方法
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai","root","password");
获取数据连接
//Mysql8.0以上 - JDBC驱动名
final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";
//数据库url
final String DB_URL = "jdbc:mysql://localhost:3306/test?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC";
final String USER = "root";
final String PASSWORD = "root";
//加载驱动
Class.forName(JDBC_DRIVER); //可以省略
//获取mysql连接
Connection conn = DriverManager.getConnection(DB_URL, USER, PASSWORD);
这里的信息应该都写在配置文件中,不应该写在代码块中。通过读取配置文件的方式,获取连接。
这种方式的好处
1.实现数据与代码的分离,实现了解耦
2.如果需要修改配置文件信息,可以避免程序重新打包

//1.以流的方式获取配置信息,默认路径时src下
InputStream is = ConnectionTest.class.getClassLoader().getResourceAsStream("jdbc.properties");
Properties pros = new Properties();
pros.load(is);
String USER = pros.getProperty("user");
String PASSWORD = pros.getProperty("password");
String DB_URL = pros.getProperty("url");
String JDBC_DRIVER = pros.getProperty("jdbc_driver");
//2.注册驱动
Class.forName(JDBC_DRIVER);
//3.获取mysql连接
Connection conn = DriverManager.getConnection(DB_URL, USER, PASSWORD);
System.out.println(conn);
JDBC01 获取数据库连接的更多相关文章
- <一>获取数据库连接
一.JDBC_通过Driver接口获取数据库连接 1. Driver是一个接口:数据库厂商必须提供实现的接口,可以从其中 获取数据库连接. 2.JDBC URL由三部分组成,各部分用冒号隔开,格式:j ...
- JAVA jdbc获取数据库连接
JDBC获取数据库连接的帮助类 import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManage ...
- 使用DriverManager获取数据库连接的一个小改进
由于使用DriverManager获取数据库连接时,由于DriverManager实现类中有一段静态代码块,可以直接注册驱动,且可以同时管理多个驱动程序 所以当换数据库连接时需要指定不同的数据库,那么 ...
- 使用DriverManager获取数据库连接
DriverManager 是驱动的管理类 * 1).可以通过重载的getConnection() 方法获取数据库连接,较为方便 * 2).可以同时管理多个驱动程序,若注册了多个数据库连接,则调用ge ...
- 通过Driver获取数据库连接
先看一下文件,在当前包下有一个properties配置文件,在根目录下有一个lib文件夹,里面放的是mySql的驱动jar包 Driver :是一个接口,数据库厂商必须提供实现的接口,能从其中获取数据 ...
- JDBC_获取数据库连接
<span style="font-size:24px;">package src.com.jdbc.java; import java.io.IOException; ...
- 获取数据库连接对象Connection
2018-11-04 19:50:52 开始写 public Connection getConn() {//返回类型为Connection try { Class.forName("co ...
- JDBC编程:获取数据库连接
JDBC(Java Database Connectivity),即Java数据库连接.通过JDBC编程,可以使Java应用程序和数据库进行交互. JDBC驱动的方式有很多种,我们常用的驱动方式为:本 ...
- JDBC 学习笔记(四)—— JDBC 加载数据库驱动,获取数据库连接
1. 加载数据库驱动 通常来说,JDBC 使用 Class 类的 forName() 静态方法来加载驱动,需要输入数据库驱动代表的字符串. 例如: 加载 MySQL 驱动: Class.forName ...
随机推荐
- 在Ubuntu下安装Solr
使用wget命令去官网下载solr的压缩包. 1 wget https://mirrors.bfsu.edu.cn/apache/lucene/solr/8.6.3/solr-8.6.3.tgz 使用 ...
- 彻底搞通TCP滑动窗口
在我们当初学习网络编程的时候,都接触过TCP,在TCP中,对于数据传输有各种策略,比如滑动窗口.拥塞窗口机制,又比如慢启动.快速恢复.拥塞避免等.通过本文,我们将了解滑动窗口在TCP中是如何使用的. ...
- 『学了就忘』Linux基础 — 14、Linux系统的设备文件名和挂载
目录 1.设备文件名 (1)为什么需要设备文件名 (2)硬件设备文件名命名规则 2.挂载点 3.挂载 (1)什么是挂载 (2)挂载前的分区要求 (3)小结(重点) 1.设备文件名 (1)为什么需要设备 ...
- mongoDB 的一般使用
理解 mongodb 也是nosql 的一种.他的数据存储类型是一种和json格式比较像的数据类型,可以看作就是json. mongodb 里的数据库都是一个单独的库.一般需要用的库都会设置自己的us ...
- (一)lamp 环境搭建之编译安装apache
apache的编译安装: 安装步骤大概参考:http://www.cnblogs.com/iyoule/archive/2013/10/24/3385540.html 简单的将分为三步: (1)安装a ...
- dns+nginx实现多虚拟主机
借鉴于朋友的需求,公司需要启用域名访问内部的业务系统,现实情况是内部的业务系统目前使用的是单主机,单nginx多端口的方式再运行,朋友最终想实现启用域名方式问题,且域名不需要用户手工输入端口号 两种思 ...
- Linux配置2个Tomcat同时运行
先说一下怎么遇到的这个问题,在练习linux中部署web项目时,linux系统安装了两个tomcat. 操作步骤: 1.配置profile#vi /etc/profile 输入以下内容: 这是两个to ...
- java中lamda表达式用法
map-> list Map<String, Object> map = new HashMap<>(); List<String> list = new A ...
- (一)初识MySQL
JavaEE:企业级Java开发 Web 前端(页面:展示,数据) 后台(连接点,连接数据库JDBC,链接前端(控制,控制视图跳转和给前端传递数据)) 数据库(存数据,Txt,Excel,word) ...
- Java学习(十五)
下棋又被暴打 所以心态有点爆炸,学完习又去打云顶,忘记写博客了... 所以今天也有点水了,这下棋真是搞崩我心态了. Java学了函数重载 大概的要点在这 还有Web的学习,否定伪类. 如 p:not( ...