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 数据库的更多相关文章

  1. java连接mysql数据库详细步骤解析

    java连接mysql数据库详细步骤解析      第一步:下载一个JDBC驱动包,例如我用的是:mysql-connector-java-5.1.17-bin.jar      第二步:导入下载的J ...

  2. Ubuntu jsp平台使用JDBC来连接MySQL数据库

    Ubuntu 7.04 搭建Ubuntu jsp平台开发环境MySQL+tomcat+apache+j2sdk1.6在所有安装开始前先在Terminal中输入 rpm -q -a查看是否安装过rpm ...

  3. Java连接MySQL数据库及简单操作代码

    1.Java连接MySQL数据库 Java连接MySql需要下载JDBC驱动MySQL-connector-java-5.0.5.zip(举例,现有新版本).然后将其解压缩到任一目录.我是解压到D盘, ...

  4. 转载:Java连接MySQL 数据库的正确操作流程

    转载网址:http://www.bitscn.com/pdb/mysql/201005/186551.html       以下的文章主要介绍的是Java连接MySQL 数据库(以MySQL数据库为例 ...

  5. Java连接MySQL数据库增删改查通用方法

    版权声明:本文为博主原创文章,未经博主允许不得转载. Java连接MySQL数据库增删改查通用方法 运行环境:eclipse+MySQL 以前我们Java连接MySQL数据库都是一个数据库写一个类,类 ...

  6. Java进阶(二十五)Java连接mysql数据库(底层实现)

    Java进阶(二十五)Java连接mysql数据库(底层实现) 前言 很长时间没有系统的使用java做项目了.现在需要使用java完成一个实验,其中涉及到java连接数据库.让自己来写,记忆中已无从搜 ...

  7. Java 连接 MySQL 数据库

    最近想学习一下 Java 连接 MySQL 数据库,于是有了这样的一些问题&解决办法. 首先是解决 JDBC(Java Data Base Connectivity)驱动问题,因为默认安装的J ...

  8. java连接MySql数据库 zeroDateTimeBehavior

    JAVA连接MySQL数据库,在操作值为0的timestamp类型时不能正确的处理,而是默认抛出一个异常, 就是所见的:java.sql.SQLException: Cannot convert va ...

  9. MySQL学习(一)——Java连接MySql数据库

    MySQL学习(一)——Java连接MySql数据库 API详解: 获得语句执行 String sql = "Insert into category(cid, cname) values( ...

随机推荐

  1. Database4.exe用来导入excel

    从ACCESS数据库导出的EXCEL表格,可以通过database4.exe来连接,并导出sql脚本,再用database4.exe来连接ACCESS并先创建于脚本结构一致的表,然后复制脚本,从新生成 ...

  2. 如何用CMake构建Android C++库

    https://fireflytech.org/2017/11/04/compiling-cc-libraries-for-android/ https://blog.csdn.net/xhp2014 ...

  3. Ocelot+Consul实现微服务架构

    API网关 API 网关一般放到微服务的最前端,并且要让API 网关变成由应用所发起的每个请求的入口.这样就可以明显的简化客户端实现和微服务应用程序之间的沟通方式.以前的话,客户端不得不去请求微服务A ...

  4. mysql排序的问题与获取第几高的分数的信息

    1:先截图看效果 2:完整的SQl语句 SELECT * FROM studentscore; -- ------------------ SET @maxscore=(SELECT MAX(scor ...

  5. H5选择器

    1.标签选择器 注意点:1. 标签选择器选中当前所有的标签,而不能单独选择某个标签 2.标签选择器不无多深都能被选中     3.只要是HTML中的标签就可以作为表亲啊选择器(h/a/img/ul/o ...

  6. 使用Java7提供的WatchService给目录添加新建文件监控

    程序: import java.io.IOException; import java.nio.file.FileSystems; import java.nio.file.Path; import ...

  7. HTML模仿实现京东登录页面

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. 获取JSO字符串的key和value值

    import com.alibaba.fastjson.JSON; import java.util.ArrayList; import java.util.HashMap; import java. ...

  9. SDWebImageInfo

    SDWebImage 简介 iOS中著名的牛逼的网络图片处理框架 包含的功能:图片下载.图片缓存.下载进度监听.gif处理等等 用法极其简单,功能十分强大,大大提高了网络图片的处理效率 国内超过90% ...

  10. vue项目Windows Server服务器部署IIS设置Url重写

    1.将vue项目使用npm run build命令打包后将dist文件夹内的文件全部拷贝到服务器. 2.IIS添加应用程序池,.NET CLR版本选择无托管代码 3.添加网站,应用程序池选择刚刚添加的 ...