Java 通过JDBC连接Mysql数据库的方法和实例

2023-11-01

  之前有两篇文章讲了安装mysql(ubuntu和windows)和可视化工具workbench的使用,这篇文章就讲一下java程序是如何连接MySQL数据库的。

 Java是通过JDBC连接Mysql数据库的。JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序

如果要使用数据库就要添加数据库的驱动,不同的数据库有不用的驱动,这里就不一一说明,添加jar程序驱动包的方法就不在这里解释,

另一个文章里面有介绍http://blog.csdn.net/huluedeai/article/details/50414400


下面是一个实例去介绍mysql数据库的连接,其它数据库的方法也是差不多的。

import java.sql.*;
public class MysqlTest {
	public static void main(String[] args){
               // 驱动程序名      
		String driver = "com.mysql.jdbc.Driver";
               // URL指向要访问的数据库名world      
		String url = "jdbc:mysql://127.0.0.1:3306/world";
               // MySQL配置时的用户名         
		String user = "root";         
		// MySQL配置时的密码        
		String password = "123456";
		String name;
                try {             
        	     // 加载驱动程序      
        	    Class.forName(driver);
                    // 连续数据库     
        	   Connection conn = DriverManager.getConnection(url, user, password);
                   if(!conn.isClosed())        
        	      System.out.println("Succeeded connecting to the Database!");
                  // statement用来执行SQL语句           
                     Statement statement = conn.createStatement();
                 // 要执行的SQL语句         
                   String sql = "select * from city";
                // 结果集     
                  ResultSet rs = statement.executeQuery(sql);
                while(rs.next())  {       
        	   // 选择Name这列数据   
        	   name = rs.getString("Name");
                  // 输出结果            
                  System.out.println(rs.getString("CountryCode") + "\t" + name);         
             }
         rs.close();       conn.close();  } 
        catch(ClassNotFoundException e) {
         System.out.println("Sorry,can`t find the Driver!");            
         e.printStackTrace();
        } catch(SQLException e) {
         e.printStackTrace();
        } catch(Exception e) {
         e.printStackTrace();
        } 
        }
}
 
 

Note:如果你没有添加jar程序驱动包的话编译的时候发现以下问题:

Sorry,can`t find the Driver!

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

    atjava.net.URLClassLoader$1.run(Unknown Source)

    atjava.net.URLClassLoader$1.run(Unknown Source)

    atjava.security.AccessController.doPrivileged(Native Method)

    atjava.net.URLClassLoader.findClass(Unknown Source)

    atjava.lang.ClassLoader.loadClass(Unknown Source)

    atsun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)

    atjava.lang.ClassLoader.loadClass(Unknown Source)

    atjava.lang.Class.forName0(Native Method)

     atjava.lang.Class.forName(Unknown Source)


这时,你只需要按照http://blog.csdn.net/huluedeai/article/details/50414400里的方法就可以解决。


但是编译运行虽然成功,但是有以下的warning信息:

Thu Dec 24 00:08:37 CST 2015WARN: Establishing SSL connection without server's identity verification is notrecommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSLconnection must be established by default if explicit option isn't set. Forcompliance with existing applications not using SSL the verifyServerCertificateproperty is set to 'false'. You need either to explicitly disable SSL bysetting useSSL=false, or set useSSL=true and provide truststore for servercertificate verification.

Succeeded connecting to theDatabase!

AFG Kabul

AFG Qandahar

AFG Herat

AFG Mazar-e-Sharif

NLD Amsterdam

NLD Rotterdam

NLD Haag

这时只需要把url字符串改为以下:

改之前:String url ="jdbc:mysql://127.0.0.1:3306/world";

改之后:String url = "jdbc:mysql://127.0.0.1:3306/world?useUnicode=true&characterEncoding=utf-8&useSSL=false";


就发现warning没了,程序运行成功。

Succeeded connecting to theDatabase!

AFG Kabul

AFG Qandahar

AFG Herat

AFG Mazar-e-Sharif

NLD Amsterdam

NLD Rotterdam

NLD Haag

NLD                                 Utrecht



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

Java 通过JDBC连接Mysql数据库的方法和实例 的相关文章

随机推荐

  • 华为上机题7(四则运算)

    题目 输入一个只包含个位数字的简单四则运算表达式字符串 计算该表达式的值 注 3 1 表达式只含 四则运算符 不含括号 3 2 表达式数值只包含个位整数 0 9 且不会出现0作为除数的情况 3 3 要考虑加减乘除按通常四则运算规定的计算优先
  • C语言中从键盘输入字符串时的一些问题

    C语言中从键盘输入字符串时的一些问题 1 scanf scanf 在输入字符串时有很大的弊端 例如 1 scanf 在从键盘读入字符时并不会根据所定义的字符数组的大小来控制读入多少个 而是从scanf 中传入的地址开始一直访问下一个元素的内
  • HTTPS原理 如何实现安全通信

    目录 HTTP存在的问题 HTTPS原理 数字证书 CA可不可以用公钥加密服务器的公钥 参考 HTTPS理论基础及其在Android中的最佳实践 孙群的博客 CSDN博客 android httpshttps blog csdn net i
  • wazuh all in one 一步步部署

    Wazuh 是一个免费 开源和企业级的安全监控解决方案 用于威胁检测 完整性监控 事件响应和合规性 Adding the Wazuh repository yum install curl unzip wget libcap y rpm i
  • Java开发技巧!网上java培训师

    01 JAVA基础 1 1 java知识点 Hashmap 源码级掌握 扩容 红黑树 最小树化容量 hash冲突解决 有些面试官会提出发自灵魂的审问 比如为什么是红黑树 别的树不可以吗 为什么8的时候树化 4不可以吗 等等 concuree
  • 判断单链表是否有环,如何寻找环的入口结点

    今天我们来讨论一个有趣的链表问题 判断链表是否有环 如果有环 环的入口结点如何寻找 文章目录 1 如何判断一个单链表是否有环呢 2 如何找到环的入口结点 1 如何判断一个单链表是否有环呢 一个单链表如果有环 那它只可能是这样的 如下图所示
  • vue实现注册界面

    p 在 Vue 中实现注册界面可以分为以下几步 p ol li p 在组件中创建一个表单 用来输入用户名 密码 电子邮件等信息 p li li p 使用 Vue 的表单绑定特性 将表单中的输入绑定到组件的数据中 p li li p 创建一个
  • acc 蓝牙_蓝牙音频传输格式:ACC,SBC,APTX和LDAC

    ACC Advanced Audio Coding 高级音频编码 ACC是杜比实验室为音乐社区提供的技术 是一种高压缩比的编码算法 实际体验上都认为同样的码率下面 ACC的听感比MP3好 apple上面ACC的音频很多 所以现在的iphon
  • Qt之事件处理机制

    目录 一 事件简介 二 事件的处理 1 重写notify处理函数 2 事件过滤器 3 重写event处理函数 4 重写特定事件处理函数 三 事件的发送 一 事件简介 Qt 是一个基于 C 的框架 主要用来开发带窗口的应用程序 使用的基于窗口
  • SMP,NUMA,MPP

    一 概念介绍 SMP Symmetric Multi Processor 对称多处理器 NUMA Non Uniform Memory Access 非一致存储访问结构 MPP Massive Parallel Processing 海量并
  • exynos5410 TMU系统的critical情况处理方法

    根据TMU 将CPU的温升分为四种情况来处理 分别是下述情况 THERMAL TRIP HOT THERMAL TRIP ACTIVE THERMAL TRIP PASSIVE THERMAL TRIP CRITICAL THERMAL T
  • PhotoShop 快捷键及技巧

    复制图层 图层 新建 复制图层 图层上右键 点击复制图层 ctrl J 删除图层 选中图层 按del键删除图层 对图像实现自由变换 ctrl T 同过图像边框八个方块对图像实现大小变化 按回车键确认变换 按住shift键实现等比例变换 勾选
  • Python程序报错:TypeError: read() missing 1 required positional argument: ‘self‘

    文章目录 问题描述 问题定位 解决方法 总结 问题描述 最近在学习python面向对象执行调用方法时程序报错 TypeError read missing 1 required positional argument self 一看这个报错
  • 阿里Esay-excel解析复杂表头方案实际应用

    目录 我遇到的场景 思路 一 观察表格整体结构 二 设计数据结构 三 引入依赖 四 建立实体 五 实现自定义解析逻辑 六 业务调用 七 其他代码段 可以参考的链接 我遇到的场景 业务上需要读取表格中的所有数据 接着入库保存 思路 一 观察表
  • 获取地址栏url参数

    获取url携带参数 getUrlParams url var arr url split var params arr 1 split var obj for var i 0 i lt params length i var param p
  • 8. unity脚本参数输入、键盘控制、组件脚本调用

    1 脚本参数 在脚本文件中可以定义一些公开的属性 这时对应的属性也会在编辑器中显示出来 可以在编辑器中直接改动属性的值 如下代码 将 rotateSpeed 属性使用 public 修饰后 using System Collections
  • ChatGPT引发的人机交互发展历程与升级思考

    ChatGPT自从去年12月火爆以来一直热度不减 最近正好研读了科技之巅 书中详细阐述了人机交互 人工智能 算力算法等技术的发展历史 本文主要围绕ChatGPT引发的人机交互方面的思考 在讨论人机交互之前 首先需要说明的一点 目前计算机发展
  • AndroidStudio启动模拟器 Emulator: emulator: ERROR: x86 emulation currently requires hardware acceleration

    配置完Androidstudio 第一次启动模拟器 启动不了报错 错误 Emulator emulator ERROR x86 emulation currently requires hardware acceleration 错误原因
  • Windows Vista介绍概要

    正文 Windows Vista介绍概要 关键日程表 Beta 1 2005年7月27日 1 CTP 由2005年12月20日 Build 5270 開始 每兩至三個月推出新版本 Beta 2 2006年5月23日 Build 5384 4
  • Java 通过JDBC连接Mysql数据库的方法和实例

    之前有两篇文章讲了安装mysql ubuntu和windows 和可视化工具workbench的使用 这篇文章就讲一下java程序是如何连接MySQL数据库的 Java是通过JDBC连接Mysql数据库的 JDBC Java Data Ba