Java JDBC数据库操作,实现简易用户注册登录等功能
一、JDBC简介
- Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。我们通常说的JDBC是面向关系型数据库的。
- Java利用jdbc连接数据库需要用到
mysql-connector-java
的jar包,根据数据库版本选择不同版本的jar包,我的数据库是MySQL5.7的,所以我选用的是mysql-connector-java-5.1.41-bin.jar
二、Java JDBC数据库操作基本步骤
- 获取数据库连接
// 这里调用了自己封装好的方法,后面具体代码会给出
Connection conn = DBUtil.connect(); // 数据库连接
PreparedStatement pst = null; // SQL预编译器
ResultSet rs = null; // 查询结果集(只有查询语句会用到)
- 编写SQL语句
// 编写SQL,?为占位符
String sql = "SELECT * FROM `user` WHERE `username`=? AND `password`=?";
- 预编译SQL
// 预编译SQL
pst = conn.prepareStatement(sql);
- 配置对应字段占位符的值
// 配置对应字段占位符的值
pst.setString(1, username);
pst.setString(2, password);
- 执行SQL,返回执行结果
// 执行SQL查询语句,返回结果集
rs = pst.executeQuery();
- 关闭数据流
// 关闭流
// 这里调用了自己封装好的方法,后面具体代码会给出
DBUtil.closeStream(rs);
DBUtil.closeStream(pst);
DBUtil.closeStream(conn);
三、具体代码实现
1. 项目目录结构
2.配置文件
db.properties
# jdbc mysql url
url=jdbc:mysql://127.0.0.1:3306/wzry?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC&useSSL=false
# db username
username=root
# db password
password=your db password
# db driver
driver=com.mysql.jdbc.Driver
3. 定义数据库连接工具类
package com.feonix.jdbc.util;
import java.io.FileInputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;
public class DBUtil {
/** 数据库jdbc连接地址 */
private static String url;
/** 数据库用户名 */
private static String username;
/** 数据库密码 */
private static String password;
/** 数据库驱动类 */
private static String driver;
// 实例化properties对象
static Properties prop = new Properties();
static {
try {
// 加载配置文件
prop.load(new FileInputStream("resources/db.properties"));
// 获取url
url = prop.getProperty("url");
// 获取username
username = prop.getProperty("username");
// 获取password
password = prop.getProperty("password");
// 获取driver
driver = prop.getProperty("driver");
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 获取数据库连接
*
* @return
*/
public static Connection connect() {
try {
// 1.加载安装驱动(利用反射)
Class.forName(driver);
// 2.获取数据库的连接(使用驱动管理DriverManager)
return DriverManager.getConnection(url, username, password);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 关闭数据库流
*
* @param stream
*/
public static void closeStream(Object stream) {
if (stream != null) {
try {
if (stream instanceof Connection) {
((Connection) stream).close();
}
if (stream instanceof PreparedStatement) {
((PreparedStatement) stream).close();
}
if (stream instanceof ResultSet) {
((ResultSet) stream).close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
4. 定义User实体类
package com.feonix.jdbc.entity;
public class User {
/** 主键 用户id */
private Integer id;
/** 用户名 */
private String username;
/** 密码 */
private String password;
/** 余额 */
private