JDBC Java 连接 MySQL 数据库
MySQL 版本:Server version: 5.7.17-log MySQL Community Server (GPL)
用于测试的 MySQL 数据库:game
查看数据库中的表
mysql> SHOW TABLES;
+----------------+
| Tables_in_game |
+----------------+
| user |
+----------------+
1 row in set (0.00 sec)
查看表的定义
mysql> DESC user;
+----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+----------------+
| id | int(8) | NO | PRI | NULL | auto_increment |
| username | varchar(16) | NO | | NULL | |
| password | varchar(16) | NO | | NULL | |
+----------+-------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)
查看表中的数据
mysql> SELECT * FROM user;
+----+----------+----------+
| id | username | password |
+----+----------+----------+
| 1 | mk | 123 |
| 2 | seven | 456 |
+----+----------+----------+
2 rows in set (0.00 sec)
使用 Java 连接 MySQL 数据库,查询表中的数据。
Java 工程结构:
Demo.java 文件中的内容:
1 package com.mk;
2
3 import java.sql.Connection;
4 import java.sql.DriverManager;
5 import java.sql.PreparedStatement;
6 import java.sql.ResultSet;
7 import java.sql.SQLException;
8
9 public class Demo {
10
11 public static void main(String[] args) {
12 Connection connection = null;
13 PreparedStatement ps = null;
14 ResultSet rs = null;
15 try {
16 // 加载 MySQL JDBC 驱动类
17 Class.forName("com.mysql.jdbc.Driver");
18 // 建立连接(连接对象内部其实包含了Socket对象,是一个远程的连接,比较耗时!这是Connection对象管理的一个要点!)
19 // 真正开发中,为了提高效率,都会使用连接池来管理连接对象!
20 connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/game", "root", "123456");
21 // 查询语句
22 String sql = "SELECT * FROM user WHERE username=?"; // ? 占位符
23 // 使用 PreparedStatement,防止 SQL 注入
24 ps = connection.prepareStatement(sql);
25 // 设置占位符参数
26 ps.setString(1, "mk");
27 // 返回查询结果
28 rs = ps.executeQuery();
29 while (rs.next()) {
30 System.out.println("id: " + rs.getInt("id"));
31 System.out.println("username: " + rs.getString("username"));
32 System.out.println("password: " + rs.getString("password"));
33 }
34 } catch (ClassNotFoundException e) {
35 e.printStackTrace();
36 } catch (SQLException e) {
37 e.printStackTrace();
38 } finally {
39 if (rs != null) {
40 try {
41 rs.close();
42 } catch (SQLException e) {
43 e.printStackTrace();
44 }
45 }
46 if (ps != null) {
47 try {
48 ps.close();
49 } catch (SQLException e) {
50 e.printStackTrace();
51 }
52 }
53 if (connection != null) {
54 try {
55 connection.close();
56 } catch (SQLException e) {
57 e.printStackTrace();
58 }
59 }
60 }
61 }
62 }
查询结果通过控制台输出:
id: 1
username: mk
password: 123
相关参考:Java 从资源文件(.properties)中读取数据
改进一下上面的例子,将连接 MySQL 数据库的 url、user、password 等参数放置在一个资源文件中,通过 Java 程序读取资源文件,获取相关信息。这样可以提高程序的灵活性,如果 url、user、password 等参数发生变更,只需修改资源文件即可。
在 Java 工程目录 src 下,添加一个文件:db.properties
db.properties 文件中的内容:
mysqlDriver=com.mysql.jdbc.Driver
mysqlUrl=jdbc\:mysql\://localhost\:3306/game
mysqlUser=root
mysqlPassword=123456
修改 Demo.java 文件中的内容:
1 package com.mk;
2
3 import java.io.IOException;
4 import java.sql.Connection;
5 import java.sql.DriverManager;
6 import java.sql.PreparedStatement;
7 import java.sql.ResultSet;
8 import java.sql.SQLException;
9 import java.util.Properties;
10
11 public class Demo {
12 static Properties properties = null; // 用于读取和处理资源文件中的信息
13 static { // 类加载的时候被执行一次
14 properties = new Properties();
15 try {
16 properties.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("db.properties"));
17 // System.out.println(properties.getProperty("mysqlDriver")); // 根据提供的键找到值
18 // System.out.println(properties.getProperty("mysqlUrl"));
19 // System.out.println(properties.getProperty("mysqlUser"));
20 // System.out.println(properties.getProperty("mysqlPassword"));
21 } catch (IOException e) {
22 e.printStackTrace();
23 }
24 }
25
26 public static void main(String[] args) {
27 Connection connection = null;
28 PreparedStatement ps = null;
29 ResultSet rs = null;
30 try {
31 // 加载 MySQL JDBC 驱动类
32 Class.forName(properties.getProperty("mysqlDriver"));
33 // 建立连接(连接对象内部其实包含了Socket对象,是一个远程的连接,比较耗时!这是Connection对象管理的一个要点!)
34 // 真正开发中,为了提高效率,都会使用连接池来管理连接对象!
35 String mysqlUrl = properties.getProperty("mysqlUrl");
36 String mysqlUser = properties.getProperty("mysqlUser");
37 String mysqlPassword = properties.getProperty("mysqlPassword");
38 connection = DriverManager.getConnection(mysqlUrl, mysqlUser, mysqlPassword);
39 // 查询语句
40 String sql = "SELECT * FROM user WHERE username=?"; // ? 占位符
41 // 使用 PreparedStatement,防止 SQL 注入
42 ps = connection.prepareStatement(sql);
43 // 设置占位符参数
44 ps.setString(1, "mk");
45 // 返回查询结果
46 rs = ps.executeQuery();
47 while (rs.next()) {
48 System.out.println("id: " + rs.getInt("id"));
49 System.out.println("username: " + rs.getString("username"));
50 System.out.println("password: " + rs.getString("password"));
51 }
52 } catch (ClassNotFoundException e) {
53 e.printStackTrace();
54 } catch (SQLException e) {
55 e.printStackTrace();
56 } finally {
57 if (rs != null) {
58 try {
59 rs.close();
60 } catch (SQLException e) {
61 e.printStackTrace();
62 }
63 }
64 if (ps != null) {
65 try {
66 ps.close();
67 } catch (SQLException e) {
68 e.printStackTrace();
69 }
70 }
71 if (connection != null) {
72 try {
73 connection.close();
74 } catch (SQLException e) {
75 e.printStackTrace();
76 }
77 }
78 }
79 }
80 }
JDBC Java 连接 MySQL 数据库的更多相关文章
- java连接mysql数据库详细步骤解析
java连接mysql数据库详细步骤解析 第一步:下载一个JDBC驱动包,例如我用的是:mysql-connector-java-5.1.17-bin.jar 第二步:导入下载的J ...
- Ubuntu jsp平台使用JDBC来连接MySQL数据库
Ubuntu 7.04 搭建Ubuntu jsp平台开发环境MySQL+tomcat+apache+j2sdk1.6在所有安装开始前先在Terminal中输入 rpm -q -a查看是否安装过rpm ...
- Java连接MySQL数据库及简单操作代码
1.Java连接MySQL数据库 Java连接MySql需要下载JDBC驱动MySQL-connector-java-5.0.5.zip(举例,现有新版本).然后将其解压缩到任一目录.我是解压到D盘, ...
- 转载:Java连接MySQL 数据库的正确操作流程
转载网址:http://www.bitscn.com/pdb/mysql/201005/186551.html 以下的文章主要介绍的是Java连接MySQL 数据库(以MySQL数据库为例 ...
- Java连接MySQL数据库增删改查通用方法
版权声明:本文为博主原创文章,未经博主允许不得转载. Java连接MySQL数据库增删改查通用方法 运行环境:eclipse+MySQL 以前我们Java连接MySQL数据库都是一个数据库写一个类,类 ...
- Java进阶(二十五)Java连接mysql数据库(底层实现)
Java进阶(二十五)Java连接mysql数据库(底层实现) 前言 很长时间没有系统的使用java做项目了.现在需要使用java完成一个实验,其中涉及到java连接数据库.让自己来写,记忆中已无从搜 ...
- Java 连接 MySQL 数据库
最近想学习一下 Java 连接 MySQL 数据库,于是有了这样的一些问题&解决办法. 首先是解决 JDBC(Java Data Base Connectivity)驱动问题,因为默认安装的J ...
- java连接MySql数据库 zeroDateTimeBehavior
JAVA连接MySQL数据库,在操作值为0的timestamp类型时不能正确的处理,而是默认抛出一个异常, 就是所见的:java.sql.SQLException: Cannot convert va ...
- MySQL学习(一)——Java连接MySql数据库
MySQL学习(一)——Java连接MySql数据库 API详解: 获得语句执行 String sql = "Insert into category(cid, cname) values( ...
随机推荐
- Hacker101 CTF 学习记录(一)
前言 苦力挖洞,靠运气赚点小钱.看着大佬严重,高危,再看看自己手上的低危,无危害默默流下了菜鸡的泪水 思路受局限,之前听学长推荐和同事聊到hacker101,因此通过hacker101拓展下漏洞利用思 ...
- P1004 方格取数(四维动态规划)
题目描述 设有N \times NN×N的方格图(N \le 9)(N≤9),我们将其中的某些方格中填入正整数,而其他的方格中则放入数字00.如下图所示(见样例): A 0 0 0 0 0 0 0 0 ...
- WinMTR 网络测试工具-九五小庞
WinMTR(建议优先使用) 百度下载工具 链接:https://pan.baidu.com/s/19ArKSTA2amsa4p6vHegDIQ 提取码:cy4y WinMTR是mtr工具在Windo ...
- 解决Oracle在win10 64使用plsql 无法显示表
将当前用户切换至所有用户,然后再切换至当前用户,问题解决 图中sql也可查询出当前库中存在的表: select object_name from user_objects where lower(ob ...
- Git 实用操作:重写 Commit 历史
当我们修改完代码,提交了一个 commit,然后发现改错了,怎么修正?下面分两种情况来讨论:修正最近一次提交,和修正历史多个提交. 修正最近一次提交 如果发现刚刚提交的内容有错误,当场再修改一下再提交 ...
- 为商务办公赋能,TOM商务邮箱,塑造职场新形象
转眼已至2020年,互联网的这10年发生了翻天覆地的改变.短视频红利崛起.人脸识别支付.AI智能机器人对话...很多产品从默默无闻到一夜崛起.而对于商务邮箱领域,邮箱已成为一种习惯,却往往忽略了它的点 ...
- Kubernetes-5:搭建企业级私有仓库Harbor
搭建企业级私有仓库Harbor 安装需求 python版本 >= 2.7 Docker引擎版本 >= 1.10 docker-compose版本 >= 1.6.0 安装环境 一.Py ...
- 如何编写一个简单的Linux驱动(二)——设备操作集file_operations
前期知识 如何编写一个简单的Linux驱动(一)--驱动的基本框架 前言 在上一篇文章中,我们学习了驱动的基本框架.这一章,我们会在上一章代码的基础上,继续对驱动的框架进行完善.要下载上一篇文章的全部 ...
- git远程仓库创建及代码提交
git仓库创建:1. mkdir project-repertory2. cd project-repertory3. git init --bare 此时,git仓库已成功创建. 本地要提交的代码在 ...
- 记录openssl和openssh升级中遇到的问题以及解决方法
本文档讲述的升级操作是基于操作系统centos6.5,使用的openssl版本是openssl-1.0.2l.tar.gz,openssh版本是openssh-7.6p1.tar.gz. 1. 依赖检 ...