我的Java学习之路(14)-- Java JDBC数据库操作,实现简易用户注册登录等功能

本文介绍了Java使用JDBC连接MySQL数据库的基本步骤,并详细讲解了如何实现用户注册和登录功能。通过创建数据库连接工具类、User实体类、UserDao操作类以及UserController控制类,展示了完整的代码实现过程,最后给出了运行效果的展示。
摘要由CSDN通过智能技术生成

一、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数据库操作基本步骤

  1. 获取数据库连接
// 这里调用了自己封装好的方法,后面具体代码会给出
Connection conn = DBUtil.connect(); // 数据库连接
PreparedStatement pst = null; // SQL预编译器
ResultSet rs = null; // 查询结果集(只有查询语句会用到)
  1. 编写SQL语句
// 编写SQL,?为占位符
String sql = "SELECT * FROM `user` WHERE `username`=? AND `password`=?";
  1. 预编译SQL
// 预编译SQL
pst = conn.prepareStatement(sql);
  1. 配置对应字段占位符的值
// 配置对应字段占位符的值
pst.setString(1, username);
pst.setString(2, password);
  1. 执行SQL,返回执行结果
// 执行SQL查询语句,返回结果集
rs = pst.executeQuery();
  1. 关闭数据流
// 关闭流
// 这里调用了自己封装好的方法,后面具体代码会给出
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 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值