当前位置: 首页 > news >正文

jdbc连接mysql的步骤_JDBC链接数据库的几个步骤

此文列出了JDBC链接数据库的4个步骤,供大家参考下:

JDBC:JAVA访问数据库的解决方案。

几个步骤:1.加载驱动类;

2.与数据库建立连接;

3.执行SQL语句

4.处理结果集

5.关闭连接

1. 第一步:加载驱动类:

需要注意:不同的数据库,参照的字符串不同,ORACLE的连接为:Class.forName("oracle.jdbc.driver.OracleDriver"); 这一步执行后,程序可能会抛出: ClassNotFoundException,原因一般有:

a. 数据库的驱动jar包没有导入到环境变量中

b. Class.forName中的字符串拼写不正确

2. 第二步:通过DriverManager与数据库建立连接:

其静态方法getConnection用来获取连接。通常需要传入三个参数

参数1:数据库的地址及端口(不同数据库字符串内容不相同)

oracle的地址:jdbc:oracle:thin:@host:port:sid

参数2:数据库的用户名

参数3:数据库对应用户名的密码

Connection conn = DriverManager.getConnect

("jdbc:oracle:thin:@host:port:oracle","user", "psd");

3.第三步:java.sql.Statement 执行SQL语句并获取结果

Statement state = conn.createStatement();

String sql="/*这里面是SQL语句*/  ";

Statement针对不同的SQL语句提供了不同的执行方法:

ResultSet executeQuery(String sql)

* 该方法专门用来执行DQL语句,返回的ResultSet表示查询出来的结果集

int executeUpdate(String sql)

* 该方法专门用来执行DML语句,返回的数字表示执行该语句影响了表中多少条数据

boolean execute(String sql)

* 该方法理论上什么语句都可以执行了,但是由于DQL,DML都有专门的方法执行了,所以该方法通常用来执行DDL语句

ResultSet rs = state.executeQuery(sql);

输出查询结果:while(rs.next())

{  输出语句  }

ResultSet提供用于遍历结果集的方法:

boolean next()

*该方法有两个作用,首先当我们查询出结果集后rs的指针指向第一条数据之上,所以我们需要先调用一次next()使其指针移动到第一条数据上并表示该条数据。

第二个作用是看返回值,若指针向下移动后,发现没有数据了,会返回false,若有则返回true,所以我们只有在该方法返回true的情况下才获取当前记录的各个字段对应的值RS还提供了若干个getXXX(String fieldName)方法:

*这一系列方法是用来获取RS表示的当前记录中给定字段对应的值。不同的字段由于类型不同需要调用相对应的方法

第4步:关闭连接,写在finally块中

finally{

if(conn!=null){

try {

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

}

将数据库的连接放在一个工具类里面,达到重用的效果

由于访问数据库是经常要用到的操作,所以在工程中,通常编写一个访问数据库的工具类,此后所有访问数据库的操作,都从工具类中获取连接,实现工具类的两种方式:

1.直接把数据配置写在工具类DBUtil中

2.把数据库配置写在一个properties属性文件里,工具类读入属性文件,逐行获取数据库参数(一般使用第二种)

若使用第一种方法,在后期需要修改所使用的数据库或者说修改host、端口、数据库连接名、密码等等时,就需要修改源代码里面的数据,不便于系统的维护,故一般使用第二种方法数据库连接工具类DBUtil.java以及连接池的主要步骤:

Properties prop = new Properties();

prop.load(new FileInputStream("config.properties"));

//根据配置项初始化

String driverName = prop.getProperty("driverName");

String url = prop.getProperty("url");

String username = prop.getProperty("username");

String password = prop.getProperty("password");

//最大连接数

int maxActive = Integer.parseInt(prop.getProperty("maxActive"));

//最大等待时间

int maxWait = Integer.parseInt(prop.getProperty("maxWait"));

//初始化连接池

cp = new BasicDataSource();

//相当与是Class.forName()中的内容

cp.setDriverClassName(driverName);

cp.setUrl(url);

cp.setUsername(username);

cp.setPassword(password);

cp.setMaxActive(maxActive);

cp.setMaxWait(maxWait);

public static Connection getConnection() throws Exception{

return cp.getConnection();

}

以上内容是针对JDBC链接数据库的步骤做讲解,希望能够帮助到大家!

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 介绍一种全新的哲学思想
  • linux mysql 导入数据库脚本_思维导图学 Linux Shell攻略之干货篇 mysql数据库脚本管理系统...
  • 哲学作为一门学说的可能
  • 批处理修改mysql密码_批处理脚本一键重置mysql的root密码
  • mysql 存储过程查询条数_mysql存储过程,查询多个重复的数据数据出现次数
  • 哲学与哲学的未来
  • 电脑命令执行mysql sql文件路径_MySQL命令执行sql文件的两种方法
  • 解 冻 哲 学
  • html网页内容和打印预览不同_分享8款网站开发中最好用的打印页面插件
  • 链接mysql 504_phpMyAdmin错误代码:504 MySQL查询
  • 做网络安全为啥非要抓服务器
  • js字符串最大长度_JS 实现两个大数相加?
  • 获取网站的实时股票数据
  • python3 自定义函数无法被调用_Access查询中如何调用自定义函数
  • excel hutool 增加标题_Hutool Java 工具类库导出 Excel,超级简单!
  • 【刷算法】从上往下打印二叉树
  • Angular数据绑定机制
  • DOM的那些事
  • Electron入门介绍
  • gcc介绍及安装
  • IDEA 插件开发入门教程
  • Java 23种设计模式 之单例模式 7种实现方式
  • overflow: hidden IE7无效
  • Python实现BT种子转化为磁力链接【实战】
  • Yii源码解读-服务定位器(Service Locator)
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 前端路由实现-history
  • 如何利用MongoDB打造TOP榜小程序
  • 通信类
  • 我这样减少了26.5M Java内存!
  • RDS-Mysql 物理备份恢复到本地数据库上
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • ​直流电和交流电有什么区别为什么这个时候又要变成直流电呢?交流转换到直流(整流器)直流变交流(逆变器)​
  • #define 用法
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • (9)STL算法之逆转旋转
  • (ros//EnvironmentVariables)ros环境变量
  • (二)Kafka离线安装 - Zookeeper下载及安装
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • (四)汇编语言——简单程序
  • (原创)可支持最大高度的NestedScrollView
  • (转)C#调用WebService 基础
  • (转)IOS中获取各种文件的目录路径的方法
  • (转)LINQ之路
  • (转)编辑寄语:因为爱心,所以美丽
  • (转载)OpenStack Hacker养成指南
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .NET Core WebAPI中封装Swagger配置
  • .net core 依赖注入的基本用发
  • .NET I/O 学习笔记:对文件和目录进行解压缩操作
  • .NET NPOI导出Excel详解
  • .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞)
  • .NET企业级应用架构设计系列之应用服务器