JDBC Java 程序从 MySQL 数据库中读取数据,并封装到 Javabean 对象中
MySQL 版本:Server version: 5.7.17-log MySQL Community Server (GPL)
用于测试的 MySQL 数据库:game
查看表的定义
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 |
| 3 | tutu | 789 |
| 4 | lan | 666 |
+----+----------+----------+
4 rows in set (0.00 sec)
Java 工程结构:
db.properties 文件中的内容:
mysqlDriver=com.mysql.jdbc.Driver
mysqlUrl=jdbc\:mysql\://localhost\:3306/game
mysqlUser=root
mysqlPassword=123456
DBUtil.java 文件中的内容:
1 package com.mk.util;
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.sql.Statement;
10 import java.util.Properties;
11
12 public class DBUtil {
13 static Properties properties = null; // 用于读取和处理资源文件中的信息
14 static { // 类加载的时候被执行一次
15 properties = new Properties();
16 try {
17 properties.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("db.properties"));
18 } catch (IOException e) {
19 e.printStackTrace();
20 }
21 }
22
23 public static Connection getConnection() {
24 try {
25 // 加载 MySQL JDBC 驱动类
26 Class.forName(properties.getProperty("mysqlDriver"));
27 // 建立连接(连接对象内部其实包含了Socket对象,是一个远程的连接,比较耗时!这是Connection对象管理的一个要点!)
28 // 真正开发中,为了提高效率,都会使用连接池来管理连接对象!
29 String mysqlUrl = properties.getProperty("mysqlUrl");
30 String mysqlUser = properties.getProperty("mysqlUser");
31 String mysqlPassword = properties.getProperty("mysqlPassword");
32 return DriverManager.getConnection(mysqlUrl, mysqlUser, mysqlPassword);
33 } catch (ClassNotFoundException e) {
34 e.printStackTrace();
35 return null;
36 } catch (SQLException e) {
37 e.printStackTrace();
38 return null;
39 }
40 }
41
42 public static PreparedStatement getPreparedStatement(Connection connection, String sql) {
43 try {
44 // 使用 PreparedStatement,防止 SQL 注入
45 return connection.prepareStatement(sql);
46 } catch (SQLException e) {
47 e.printStackTrace();
48 return null;
49 }
50 }
51
52 public static void close(Connection connection, Statement statement, ResultSet resultSet) {
53 if (resultSet != null) {
54 try {
55 resultSet.close();
56 } catch (SQLException e) {
57 e.printStackTrace();
58 }
59 }
60 if (statement != null) {
61 try {
62 statement.close();
63 } catch (SQLException e) {
64 e.printStackTrace();
65 }
66 }
67 if (connection != null) {
68 try {
69 connection.close();
70 } catch (SQLException e) {
71 e.printStackTrace();
72 }
73 }
74 }
75
76 public static void close(Connection connection) {
77 if (connection != null) {
78 try {
79 connection.close();
80 } catch (SQLException e) {
81 e.printStackTrace();
82 }
83 }
84 }
85
86 public static void close(Statement statement) {
87 if (statement != null) {
88 try {
89 statement.close();
90 } catch (SQLException e) {
91 e.printStackTrace();
92 }
93 }
94 }
95
96 public static void close(ResultSet resultSet) {
97 if (resultSet != null) {
98 try {
99 resultSet.close();
100 } catch (SQLException e) {
101 e.printStackTrace();
102 }
103 }
104 }
105 }
User.java 文件中的内容:
1 package com.mk.pojo;
2
3 import java.io.Serializable;
4
5 public class User implements Serializable {
6 private int id;
7 private String username;
8 private String password;
9
10 public User() {
11
12 }
13
14 public User(int id, String username, String password) {
15 super();
16 this.id = id;
17 this.username = username;
18 this.password = password;
19 }
20
21 @Override
22 public String toString() {
23 return "User [id=" + id + ", username=" + username + ", password=" + password + "]";
24 }
25
26 @Override
27 public int hashCode() {
28 final int prime = 31;
29 int result = 1;
30 result = prime * result + id;
31 result = prime * result + ((password == null) ? 0 : password.hashCode());
32 result = prime * result + ((username == null) ? 0 : username.hashCode());
33 return result;
34 }
35
36 @Override
37 public boolean equals(Object obj) {
38 if (this == obj)
39 return true;
40 if (obj == null)
41 return false;
42 if (getClass() != obj.getClass())
43 return false;
44 User other = (User) obj;
45 if (id != other.id)
46 return false;
47 if (password == null) {
48 if (other.password != null)
49 return false;
50 } else if (!password.equals(other.password))
51 return false;
52 if (username == null) {
53 if (other.username != null)
54 return false;
55 } else if (!username.equals(other.username))
56 return false;
57 return true;
58 }
59
60 public int getId() {
61 return id;
62 }
63
64 public void setId(int id) {
65 this.id = id;
66 }
67
68 public String getUsername() {
69 return username;
70 }
71
72 public void setUsername(String username) {
73 this.username = username;
74 }
75
76 public String getPassword() {
77 return password;
78 }
79
80 public void setPassword(String password) {
81 this.password = password;
82 }
83 }
Demo.java 文件中的内容:
1 package com.mk;
2
3 import java.sql.Connection;
4 import java.sql.PreparedStatement;
5 import java.sql.ResultSet;
6 import java.sql.SQLException;
7 import java.util.ArrayList;
8 import java.util.List;
9
10 import com.mk.pojo.User;
11 import com.mk.util.DBUtil;
12
13 public class Demo {
14
15 public static void main(String[] args) {
16 List<User> list = selectAll();
17 if (list != null) {
18 for (User user : list) {
19 if (user != null) {
20 System.out.print("id: " + user.getId() + "\t\t");
21 System.out.print("username: " + user.getUsername() + "\t\t");
22 System.out.println("password: " + user.getPassword());
23 }
24 }
25 }
26 }
27
28 private static List<User> selectAll() {
29 List<User> list = new ArrayList<>();
30
31 // 查询语句
32 String sql = "SELECT * FROM user";
33 Connection connection = DBUtil.getConnection();
34 PreparedStatement ps = DBUtil.getPreparedStatement(connection, sql);
35 ResultSet rs = null;
36 try {
37 // 返回查询结果
38 rs = ps.executeQuery();
39 while (rs.next()) {
40 User user = new User();
41 // 使用 User 对象封装查询到的数据
42 user.setId(rs.getInt("id"));
43 user.setUsername(rs.getString("username"));
44 user.setPassword(rs.getString("password"));
45 // 将 User 对象加入到 ArrayList 中
46 list.add(user);
47 }
48 } catch (SQLException e) {
49 e.printStackTrace();
50 return null;
51 } finally {
52 DBUtil.close(connection, ps, rs);
53 }
54 return list;
55 }
56 }
JDBC Java 程序从 MySQL 数据库中读取数据,并封装到 Javabean 对象中的更多相关文章
- JDBC Java 程序从 MySQL 数据库中读取数据,并备份到 xml 文档中
MySQL 版本:Server version: 5.7.17-log MySQL Community Server (GPL) 相关内容:JDBC Java 程序从 MySQL 数据库中读取数据,并 ...
- Java程序向MySql数据库中插入的中文数据变成了问号
找到mysql的安装目录,修改my.ini文件 (1)如何找到my.ini文件 如果my.ini文件不在MySQL的安装目录下,可能放在隐藏目录,要先去找到ProgramData,(这里要先打开显示隐 ...
- .NET 5/.NET Core使用EF Core 5连接MySQL数据库写入/读取数据示例教程
本文首发于<.NET 5/.NET Core使用EF Core 5(Entity Framework Core)连接MySQL数据库写入/读取数据示例教程> 前言 在.NET Core/. ...
- java实现连接mysql数据库单元测试查询数据项目分享
1.按照javaweb项目的要求逐步建立搭建起机构,具体的类包有:model .db.dao.test;具体的架构详见下图: 2.根据搭建的项目架构新建数据库test和数据库表t_userinfo并且 ...
- PHP5.5 mysqli如何连接MySQL数据库和读取数据
在学习 1. 开启PHP的API支持 (1)首先修改您的php.ini的配置文件.查找下面的语句:;extension=php_mysqli.dll将其修改为:extension=php_mysqli ...
- 【java】[sql]使用Java程序向MySql数据库插入一千万条记录,各种方式的比较,最后发现insert批量插入方式对效率提升最明显
我的数据库环境是mysql Ver 14.14 Distrib 5.6.45, for Linux (x86_64) using EditLine wrapper 这个数据库是安装在T440p的虚拟机 ...
- jdbc java远程连接mysql数据库服务器
首先,需要注意以下几点: 1.手机需要获得可以访问网络的权限: 2.导入的jdbc驱动的版本需要与mysql服务器的版本相近: 3.mysql默认的访客是只允许本机(localhost),不允许其他主 ...
- struts2中从数据库中读取数据,并在JSP页面中遍历保存有JavaBean对象的List对象
0x1:前言 前面搭建struts就不说了,大家都能成功完毕. 0x2:Model 这里我们须要一个Model类来接收 <span style="font-size:10px;font ...
- JDBC让java程序连上数据库(mysql数据库)
一.小论异常: 其实JDK已经提供了一组API让java程序连上数据库,并执行SQL语句,其实说起来也蛮简单的,但是绝对是一个细致活,因为稍不留神,异常就铺天盖地的来了,下面说说这些异常吧(声明一下: ...
随机推荐
- JavaScript 究竟是怎样去执行的?
摘要: 理解 JS 引擎运行原理. 作者:前端小智 原文:搞懂 JavaScript 引擎运行原理 Fundebug经授权转载,版权归原作者所有. 一些名词 JS 引擎 — 一个读取代码并运行的引擎, ...
- 程序员你的maven多模块项目如何对外输出为一个构件?
上图为常见的台式机,程序员,你看了有啥启发? 台式机生产线 我的maven代码工程 xxx 显示器 xxx-web 主机 xxx-app 键盘 xxx-domian 鼠标 xxx-infrastrat ...
- MAC 上编译安装nginx-rtmp-module 流媒体服务器
MAC 上编译安装nginx-rtmp-module 流媒体服务器 记录踩坑过程 下载nginx和nginx-rtmp-module wget http://nginx.org/download/ng ...
- [BUUOJ记录] [GXYCTF2019]BabyUpload
CTF三大骗局:Baby Easy Funny,本题主要考察.htaccess文件解析文件.文件类型检测绕过 打开题目给了一个上传点,上传一个php文件看看过滤规则 “后缀名不能有ph”直接禁掉了所有 ...
- SpringBoot2.0 配置多数据源
一.简述 配置多数据源意思就是在一个项目中使用多个数据库,在项目使用中可以不用手动切换数据库来实现不同数据库的数据获取和更新. 源码地址: https://github.com/hanguilin/b ...
- get、post请求方式在postman中使用步骤
1.get请求方式:不需要借助任何工具,在浏览器里面就可以发送请求,直接在浏览器里面输入访问 url?参数名=参数值 url?parma=abc&name=abcd 2.post请 ...
- 记tp5.1使用composer PhpOffice的xlsx表格文件导入数据库
在项目环境下composer require phpoffice/phpspreadsheet在项目中引用use PhpOffice\PhpSpreadsheet\IOFactory; 下面是 上传x ...
- win10家庭版启用远程桌面
此电脑右键属性->远程设置->允许远程协助连接这台计算机 勾选 下载RDP Wrapper 地址:https://github.com/stascorp/rdpwrap/releases ...
- JUC使用
1.什么是JUC 源码 + 官方文档 面试高频问! java.util 工具包.包.分类 业务:普通的线程代码 Thread Runnable 没有返回值.效率相比入 Callable 相对较低! 2 ...
- python中圆周率的计算
蒙特卡罗方法计算圆周率 蒙特卡罗方法是一个撒点方法,取一个正圆的四分之一,和一个正方形的四分之一 形成一个单位方形,单位四分之一圆和四分之一正方形之比,就构成了圆周率 向这个区域撒点,如果点落在圆内部 ...