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 }

原文地址:https://www.cnblogs.com/Satu/p/10652494.html

时间: 2024-08-29 22:44:24

JDBC Java 连接 MySQL 数据库的相关文章

Linux系统Java连接Mysql数据库

Linux系统下Java连接Mysql数据库方法与Windows下类似,具体步骤如下: 下载JDBC(驱动):mysql-connector-java-5.1.37.tar.gz 解压下载的数据包:tar -zxvf mysql-connector-java-5.1.37.tar.gz 解压后,mysql-connector-java-5.1.29-bin.jar位于mysql-connector-java-5.1.29目录下. 配置解压后,mysql-connector-java-5.1.29

Java连接MySQL数据库实现用户名密码的验证方法 Java语句中sql查询语句'' ""作用

//方法一,可以验证登录,但方法不实用.package com.swift; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.ArrayList; import java.util.List; public class Logi

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

Java连接MySQL数据库增删改查通用方法 运行环境:eclipse+MySQL 以前我们Java连接MySQL数据库都是一个数据库写一个类,类下面写好多方法,要是多个数据库,就要写多个类多个方法,导致代码编写太过于繁琐,所以为了改变这样的繁琐,我将连接数据库的方法进行了一系列的封装,使用户传入一个对象值Object就可以得到想要的. 我在之前写过一篇普通的Java连接MySQL数据库,大家可以看看,以便对比参考之后就知道差距了  数据库--MySQL-->Java篇 接下来我给大家讲讲如何将

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

Java进阶(二十五)Java连接mysql数据库(底层实现) 前言 很长时间没有系统的使用java做项目了.现在需要使用java完成一个实验,其中涉及到java连接数据库.让自己来写,记忆中已无从搜索.特将之前使用的方法做一简单的总结.也能够在底层理解一下连接数据库的具体步骤. 实现 首先需要导入相关的jar包,我使用的为:mysql-connector-java-5.1.7-bin.jar. 下面来看一下我所使用的数据库连接方法类: MysqlUtil.java package cn.edu

Java 连接 MySQL 数据库

下载 MySQL 数据库:http://dev.mysql.com/downloads/mysql/ ,解压到本地即可 下载 jar 包:http://dev.mysql.com/downloads/connector/j/ ,下载 zip 压缩包 创建数据库并插入若干数据: create table mydb; use mydb; create table student(name varchar(8), no char(7)); insert into student values('zha

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

转载网址:http://www.bitscn.com/pdb/mysql/201005/186551.html 以下的文章主要介绍的是Java连接MySQL 数据库(以MySQL数据库为例),我们主要是以MySQL数据库为例讲下Java正确连接MySQL数据库的实际操作流程,以下就是对其详细内容的描述. 当然,首先要安装有JDK(一般是JDK1.5.X).然后安装MySQL,这些都比较简单,具体过程就不说了.配置好这两个环境后,下载JDBC驱动MySQL-connector-java-5.0.5

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

Ubuntu 7.04 搭建Ubuntu jsp平台开发环境MySQL+tomcat+apache+j2sdk1.6在所有安装开始前先在Terminal中输入 rpm -q -a查看是否安装过rpm 和 rpm包的所需软件如果没有安装rpm在Terminal中输入 sudo apt-get install rpm. AD:2014WOT全球软件技术峰会北京站 课程视频发布 你们知道什么是Ubuntu jsp平台么这个非常高深的运用技术将由我来非常讲解,Ubuntu jsp平台NB在哪呢,下面我来

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

1.Java连接MySQL数据库 Java连接MySql需要下载JDBC驱动MySQL-connector-java-5.0.5.zip(举例,现有新版本).然后将其解压缩到任一目录.我是解压到D盘,然后将其目录下的MySQL-connector-java-5.0.5-bin.jar加到classpath里,具体如下: "我的电脑"-> "属性" -> "高级" -> "环境变量",在系统变量那里编辑clas

java 连接MySql数据库

源代码如下: import java.sql.*; public class ConToMySQL {  public static void  main(String[] args) {   //这里"liuyan"是MySql下建立的一个测试数据库   //3306是MySql数据库服务的默认端口   String url="jdbc:mysql://localhost:3306/liuyan";   String userName = "root&q