Java连接MySQL数据库(多种连接方法)

2023-11-05

当我们掌握Java的基础知识后就可以学习一些Java的高级技术(或特性)了,例如:集合、多线程、网络编程、数据库技术、并发等等。其中数据库技术在Java的学习中也是相当重要的,今天就简单介绍一下Java与MySQL数据类的

1.提前准备
- 下载并安装MySQL数据库

- 下载并在eclipse中导入Java--MySQL连接器(ODBC)

(两个连接器导入其中任意一个即可)

2.连接数据库

2.1在main方法中连接

package test_connect;
import java.sql.*;
public class test_1_connect {
	private static String driver = "com.mysql.jdbc.Driver";
	private static String url = "jdbc:mysql://127.0.0.1:3306/student_db?useSSL=false";
	private static String user = "root";
	private static String password = "123123";
	
	public static void main(String[] args) {
		Connection conn = null;
		Statement stamt = null;
		ResultSet rs = null;

		try {
			Class.forName(driver);//载入驱动器(即Java-connector-Mysql-bin.jar文件)
			conn = DriverManager.getConnection(url,user, password);
			stamt = conn.createStatement();
			System.out.println("the dataBase connext successful.");
			
			String sql = "SELECT id,name FROM student";
			rs = stamt.executeQuery(sql);
			while(rs.next()) {
				System.out.println(rs.getString("id")+"  "+rs.getString("name"));
			}
			
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}catch (SQLException e1) {
			e1.printStackTrace();
		}finally {//程序结束关闭连接
			try {
				if(rs != null)rs.close();
				if(stamt != null)stamt.close();
				if(conn != null)conn.close();
			}catch(Exception e2) {
				e2.printStackTrace();
			}
		}		
	}

}

2.2把连接的类当做一个工具类,此处使用单例模式

package tool;

import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;

import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;

public class Connect {
	private static String driver;
	private static String url;
	private static String user;
	private static String password;
	private static String db;
	
	private Connection conn;
	private Statement stamt;
	private ResultSet rs;
	
	private static final Connect c = new Connect();
	
	private Connect() {
		driver = "com.mysql.jdbc.Driver";
		url = "jdbc:mysql://127.0.0.1:3306/"+db+"?useSSL=false";
		user = "root";
		password = "123123";
		db="";
	}
	
	public static final Connect getC() {
		return c;
	}
	
	public final void buildConnect() {
		try {
			Class.forName(driver);
			url = "jdbc:mysql://127.0.0.1:3306/"+db+"?useSSL=false";
			password = getPassword();
			c.conn = (Connection) DriverManager.getConnection(url, user, password);
			c.stamt = (Statement) conn.createStatement();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}catch(SQLException e2) {
			e2.printStackTrace();
		}
		System.out.println("buildConnect");
	}
	
	public  final void closeConnect() {
			try {
				if(conn != null)conn.close();
				if(stamt != null)stamt.close();
				if(rs != null)rs.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		System.out.println("closeConnect");
	}
	
	public static String getDb() {
		return db;
	}
	
	public static void setDb(String db) {
		Connect.db = db;
	}
	
	public static String getPassword() {
		return password;
	}
	
	public static void setPassword(String password) {
		Connect.password = password;
	}
	
	public Connection getConn() {
		return conn;
	}

	public Statement getStamt() {
		return stamt;
	}

	public ResultSet getRs() {
		return rs;
	}
}

总结:Java连接数据库至少设置四项即driver(驱动器),url,user和password,若想在连接后进行操作则必须创建Connection对象,再利用Connection对象创建对话Statement,ResultSet对象通过Statement对象执行SQL语句得到

ps:一分耕耘一分收获,你付出的努力终有一天会给你回报。


想了解作者更多,请移步我的个人网站,欢迎交流、留言~
极客技术空间:https://elltor.com/

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java连接MySQL数据库(多种连接方法) 的相关文章

  • Java EE:如何获取我的应用程序的 URL?

    在 Java EE 中 如何动态检索应用程序的完整 URL 例如 如果 URL 是 localhost 8080 myapplication 我想要一个可以简单地将其作为字符串或其他形式返回给我的方法 我正在运行 GlassFish 作为应
  • 如何在 Play java 中创建数据库线程池并使用该池进行数据库查询

    我目前正在使用 play java 并使用默认线程池进行数据库查询 但了解使用数据库线程池进行数据库查询可以使我的系统更加高效 目前我的代码是 import play libs Akka import scala concurrent Ex
  • Java - 将节点添加到列表的末尾?

    这是我所拥有的 public class Node Object data Node next Node Object data Node next this data data this next next public Object g
  • 如何找到给定字符串的最长重复子串

    我是java新手 我被分配寻找字符串的最长子字符串 我在网上研究 似乎解决这个问题的好方法是实现后缀树 请告诉我如何做到这一点或者您是否有任何其他解决方案 请记住 这应该是在 Java 知识水平较低的情况下完成的 提前致谢 附 测试仪字符串
  • 在 PHP 字符串中格式化 MySQL 代码

    是否有任何程序 IDE 可以在 PHP 字符串中格式化 MySQL 代码 例如 我使用 PHPStorm IDE 但它无法做到这一点 它对 PHP 和 MYSQL 执行此操作 但不适用于 php 字符串内的 MYSQL 我已准备好使用新的
  • 同一配置文件上的两个不同提供程序

    我在用着实体框架 6 1 0 I have 2 家提供者 MysqlClient 和 SQLServerCE 我需要创建2个不同的DBContext 这迫使我创造2个配置类因为mysql有一些不同的东西 但是当我初始化应用程序时 Datab
  • 多个 Maven 配置文件激活多个 Spring 配置文件

    我想在 Maven 中构建一个环境 在其中我想根据哪些 Maven 配置文件处于活动状态来累积激活多个 spring 配置文件 目前我的 pom xml 的相关部分如下所示
  • Spark 1.3.1 上的 Apache Phoenix(4.3.1 和 4.4.0-HBase-0.98)ClassNotFoundException

    我正在尝试通过 Spark 连接到 Phoenix 并且在通过 JDBC 驱动程序打开连接时不断收到以下异常 为简洁起见 下面是完整的堆栈跟踪 Caused by java lang ClassNotFoundException org a
  • 控制Android的前置LED灯

    我试图在用户按下某个按钮时在前面的 LED 上实现 1 秒红色闪烁 但我很难找到有关如何访问和使用前置 LED 的文档 教程甚至代码示例 我的意思是位于 自拍 相机和触摸屏附近的 LED 我已经看到了使用手电筒和相机类 已弃用 的示例 但我
  • 磁模拟

    假设我在 n m 像素的 2D 表面上有 p 个节点 我希望这些节点相互吸引 使得它们相距越远吸引力就越强 但是 如果两个节点之间的距离 比如 d A B 小于某个阈值 比如 k 那么它们就会开始排斥 谁能让我开始编写一些关于如何随时间更新
  • 一次从多个表中删除行

    我正在尝试将 2 个查询合并为一个这样的查询 result db gt query DELETE FROM menu WHERE name new or die db gt error result db gt query DELETE F
  • 如何在PreferenceActivity中添加工具栏

    我已经使用首选项创建了应用程序设置 但我注意到 我的 PreferenceActivity 中没有工具栏 如何将工具栏添加到我的 PreferenceActivity 中 My code 我的 pref xml
  • 十进制到八进制的转换[重复]

    这个问题在这里已经有答案了 可能的重复 十进制转换错误 https stackoverflow com questions 13142977 decimal conversion error 我正在为一个类编写一个程序 并且在计算如何将八进
  • 在两个活动之间传输数据[重复]

    这个问题在这里已经有答案了 我正在尝试在两个不同的活动之间发送和接收数据 我在这个网站上看到了一些其他问题 但没有任何问题涉及保留头等舱的状态 例如 如果我想从 A 类发送一个整数 X 到 B 类 然后对整数 X 进行一些操作 然后将其发送
  • SQL不允许表中有重复记录

    如何使其不添加重复项 我想让它通过 ID 之外的所有其他列进行检查 我希望这个无效 ID col1 col2 col3 1 first middle last ID col1 col2 col3 2 first middle last 我希
  • getResourceAsStream() 可以找到 jar 文件之外的文件吗?

    我正在开发一个应用程序 该应用程序使用一个加载配置文件的库 InputStream in getClass getResourceAsStream resource 然后我的应用程序打包在一个 jar文件 如果resource是在里面 ja
  • 如何从终端运行处理应用程序

    我目前正在使用加工 http processing org对于一个小项目 但是我不喜欢它附带的文本编辑器 我使用 vim 编写所有代码 我找到了 pde 文件的位置 并且我一直在从 vim 中编辑它们 然后重新打开它们并运行它们 重新加载脚
  • 有没有办法为Java的字符集名称添加别名

    我收到一个异常 埋藏在第 3 方库中 消息如下 java io UnsupportedEncodingException BIG 5 我认为发生这种情况是因为 Java 没有定义这个名称java nio charset Charset Ch
  • 如何修改现有表以添加时区

    我有一个包含 500 多个表的大型应用程序 我必须将应用程序转换为时区感知 当前应用程序使用new java util Date GETDATE 与服务器的时区 即没有任何时区支持 我已将这项任务分为几个步骤 以便于开发 我确定的第一个步骤
  • 如何实现仅当可用内存较低时才将数据交换到磁盘的写缓存

    我想将应用程序生成的数据缓存在内存中 但如果内存变得稀缺 我想将数据交换到磁盘 理想情况下 我希望虚拟机通知它需要内存并将我的数据写入磁盘并以这种方式释放一些内存 但我没有看到任何方法以通知我的方式将自己挂接到虚拟机中before an O

随机推荐

  • Eclipse关于搭建JSP运行环境(超级详细过程附带网页地址)

    1 下载jdk 2 配置环境变量 3 下载安装Tomcat 4 下载安装Eclipse 5 配置Eclipse运行第一个JSP程序 一 下载jdk 百度地址栏搜索https www oracle com java technologies
  • js替换字符串中的空格,换行符\r\n或\n替换成

    为了让回车换行符正确显示 需要将 n 或 r n 替换成 br 同样地 将空格替换存 nbsp 这里我们通过正则表达式来替换 一 替换所有的空格 回车换行符 原始字符串 var string 欢迎访问 r nhangge com 做最好的开
  • Linux_8_磁盘存储和文件系统

    1 磁盘结构 1 1 设备文件 一切皆文件 open read write close 设备文件 关联至一个设备驱动程序 进而能够跟与之对应硬件设备进行通信 设备号码 主设备号 major number 标识设备类型 次设备号 minor
  • A*寻路算法浅析

    最近刚接触A 寻路算法 听说是一种比较高效的自动寻路的算法 当然 事实也正是如此 这么好的东西 自然是要收入囊中的 说不定什么时候也能派上用场呢 为了学习这个 也是上网找了好多资料 看了好多博客 但是貌似有些关键点没有具体说明 所以自己也是
  • understand - 笔记

    术语 Terminology Architecture 层级 An architecture is a hierarchical aggregation of source code units entities An architectu
  • 用vb语言编写一个抄底的源代码程序实例

    以下是一个基于通达信软件编写的简单抄底源代码程序 用于自动识别股票的底部形态并发出买入信号 vbs 复制 导入通达信软件自带的股票数据接口 Dim TdxApi Set TdxApi CreateObject TdxApi TdxLocal
  • Winform自定义控件 —— 指示灯

    在开始阅读本文之前 如果您有学习创建自定义控件库并在其他项目中引用的需求 请参考 在Visual Studio中创建自定义Winform控件库并在其他解决方案中引用https blog csdn net YMGogre article de
  • Rx Java 异步编程框架

    Rx Java 文章目录 Rx Java 名词定义 举个例子 基本概念 Backpressure Upstream Downstream Objects in motion Assembly time Subscription time R
  • Cocos2d-x使用Luajit将Lua脚本编译为bytecode,从而实现加密

    项目要求对lua脚本进行加密 查了一下相关的资料 得知lua本身可以使用luac将脚本编译为字节码 bytecode 从而实现加密 试了一下 确实可行 下面是使用原生的lua解释器编译字节码 1 新建一个名为1 lua的文件 里面只有一句话
  • 带宽与码元的关系_带宽、速率(波特率、比特率)和码元宽度简述

    首先弄清楚带宽和速率的关系 信道带宽与数据传输速率的关系可以奈奎斯特 Nyquist 准则与香农 Shanon 定律描述 奈奎斯特准则指出 如果间隔为 2 f 通过理想通信信道传输窄脉冲信号 则前后码元之间不产生相互窜扰 因此 对于二进制数
  • 【云原生之Docker实战】使用Docker部署web端vscode

    云原生之Docker实战 使用Docker部署web端vscode 一 vscode server介绍 二 检查本地docke环境 1 检查系统版本 2 检查docker版本 3 检查docker状态 三 下载vscode镜像 四 部署vs
  • 北京理工大学:《Python语言程序设计》详细笔记

    第一章 程序设计基本方法 计算机与程序设计 计算机是根据指令操作数据的设备 计算机发展参照摩尔定律 表现为指数形式 编译和解释 计算机执行源程序两种方式 编译和解释 编译 将源代码一次性转换成目标代码的过程 执行编译过程的程序叫编译器 co
  • C#是不是不能把基类对象强转成它派生类对象

    转载请标明是引用于 http blog csdn net chenyujing1234 有补充的 请大家指出 最近在论坛上看到有网友问到C 中对象强转的问题 自己虽然接触过C 但对这个特性还是第一次接触 所以这里找到一些资料与大家一起分享
  • unity 模仿原神的人物移动和镜头变换

    unity 模仿原神人物移动和镜头转换 自学了几周unity了 感觉还是要做点什么上手才快 所以先做个简单的RPG游戏吧 然后很快就做出了CS那种第一人称视觉的人物操控 不过感觉体验不太好 不能边走边看周围 所以重新模仿了原神那种可以环绕人
  • 3D建模教程分享

    全套3D建模教程让你从小白到大神 工欲善其事必先利其器 目前主流的3D建模软件当然是3DMAX MAYA还有ZBrush了 开始学习之路前这三个软件肯定是必备的 欢迎大家加入Q裙 939901947 领取各种学习资料和软件 迈出成为大神的第
  • linux系统创建新用户

    一般情况下linux系统创建 删除新用户主要有以下几种方式 1 创建新用户 useradd 用户名 删除用户 userdel 用户名 2 sudo useradd m 用户名 删除用户 sudo userdel r 用户名 可以直接删掉用户
  • 联想笔记本插入耳机仍外放--解决方式

    1 打开控制面板 2 点击硬件和声音 3 点击realtek音频管理器 4 点击设备高级设置 5 选中第二项 6 点击确定 关闭所有窗口即可解决该问题
  • 数学在机器学习中的重要性

    数学在机器学习中的重要性 by Dahua Lin Linear Algebra 线性代数 和 Statistics 统计学 是最重要和不可缺少的 这代表了Machine Learning中最主流的两大类方法的基础 一种是以研究函数和变换为
  • 使用BOTO进行S3各种操作

    使用BOTO进行S3各种操作 BOTO是一个开源的PYTHON发布包 是AWS AMAZON WEBSERVICE 的PYTHON封装 近期 我们公司用到国内某知名公司的S3云存储服务 需要调用该公司提供的S3 PYTHON SDK 鉴于该
  • Java连接MySQL数据库(多种连接方法)

    当我们掌握Java的基础知识后就可以学习一些Java的高级技术 或特性 了 例如 集合 多线程 网络编程 数据库技术 并发等等 其中数据库技术在Java的学习中也是相当重要的 今天就简单介绍一下Java与MySQL数据类的 1 提前准备 下