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( ...
随机推荐
- C# OWC11
public void OcwChart(int[] Data,string[] DataName,string Yname,string Xname,string ChartName,string ...
- 【已学完】UGUI Schedule
章节 内容 签到 Unity4.6 New UI(UGUI) 1.UGUI概述与Canvas画布介绍(一) 5月14日 2.Canvas画布介绍(二) 5月14日 3.Text控件 5月14日 4.I ...
- 深入Spring Security-获取认证机制核心原理讲解
文/朱季谦 本文基于Springboot+Vue+Spring Security框架而写的原创笔记,demo代码参考<Spring Boot+Spring Cloud+Vue+Element项目 ...
- 20190925-05Redis五大数据类型之String 000 026
- meta生成器 —— 表单元素组件
手写代码? meta(json)需要手写吗?别闹,手写多麻烦呀,我这么懒怎么可能手写,这辈子都别想,所以要弄个工具出来,咱们说干就干. 这个工具,说白了本身就是一个表单,一个meta属性对应一个met ...
- 没有修改getModel()方法的返回值导致的Hibernate接收不到页面数据
异常1.通过id进行查询,但id为null,就出现这个异常!java.lang.IllegalArgumentException: id to load is required for loading ...
- SpringMVC-08-SpringMVC层编写
SpringMVC层编写 web.xml DispatcherServlet <!--DispatcherServlet--> <servlet> <servlet-na ...
- .NET Core原理(不知道怎么命名合适)
作者:cmliu:.NET Core启动都做了什么 .NET Core默认启动时的流程,您可以将图片另存为,在本地放大查看 .NET Core默认模板都做了些什么,首先贴出模板里面的Program.c ...
- IIS实现Nginx功能:转发
这个标题本身是不合理的,但是基于目前公司有一份系统是外部代理商贴牌使用,有一个老的站点是部署在IIS上,好多代理商自己的域名绑定在这个上面,而近期新版本的系统已经上线,那么需要将这些域名也转发到新的站 ...
- Robotframework自动化5-基础关键字介绍2
一:时间 1.获取当前时间 Get time 2.获取当月时间 ${yyyy} ${mm} ${day} Get Time year,month,day${time} Catenate SE ...