欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

数据库(MySQL)复习整理(二)

程序员文章站 2022-05-09 15:24:24
...

       笔者最近开始学习Java后端的知识,故对之前所学的数据库知识进行一个复习整理,为后续学习打下良好基础。由于写这篇文章主要是复习巩固方便自己理解,文章侧重在一些自己认为的重点和自己不足的地方,所以所涉及的知识点并不完善,有些描述并不那么专业,也并不深入,就是一些基本的操作,请多多包涵。文章仅供参考,谢谢。

        在上一篇文章https://blog.csdn.net/ataraxy_/article/details/103339171中介绍了MySQL的一些很简单的知识,接下来主要介绍在Java中使用MySQL(用JDBC)。

一、JDBC概述

       Java数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。在使用JDBC之前,需安装相应的驱动程序,具体过程可参考https://jingyan.baidu.com/article/3aed632e1a4ceb70108091f6.html   、https://blog.csdn.net/upup1006/article/details/95470945

二、JDBC的使用

        下面是一个简单的实例:


import java.sql.*;
import java.util.ArrayList;

import user_information.User;

public class DataHandling {
	
	private static void Init() throws ClassNotFoundException{
		try {
			Class.forName("com.mysql.jdbc.Driver");
		}catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}
	
	private static Connection con() throws SQLException, ClassNotFoundException{
		Init();
		String url = "jdbc:mysql://localhost:3306/teaching_system11.27?characterEncoding=utf8&useSSL=false";
		String user = "root";
		String password = "123456";
		Connection connection = null;
		try {
			connection = DriverManager.getConnection(url, user, password);
		}catch (SQLException e) {
			e.printStackTrace();
		}
		return connection;
	}
	
	public static void modifyPassword(String id,String oldPassword,String newPassword) throws ClassNotFoundException, SQLException {
		Connection connection=con();
		Statement statement=connection.createStatement();
		String sql="select * from user where user_id='"+id+"'and user_password='"+oldPassword+"'";
		ResultSet resultSet=statement.executeQuery(sql);
		
		if(resultSet.next()) {
			resultSet.close();
			sql="update user set user_password='"+newPassword+"' where user_id='"+id+"'";
			statement.executeUpdate(sql);			
		}	
		statement.close();
		connection.close();
	}	
	
}

在程序中使用数据库时,一般是单独创建一个Java文件来处理数据库有关内容,然后在里面写上相应的函数,在程序需要数据库的地方调用相关函数即可。在上面的例子中有Init()、con()两个函数,前者是用来加载JDBC驱动类的,后者是用来获取数据库连接的。也可以将这两个函数写在一起,当然还有其他写法,但是一定要完成加载JDBC驱动类和获取数据库连接的操作。另外这里涉及到异常的处理,不用深究,编码时会有提示的,记住要有异常的处理即可。

  • 加载驱动类
Class.forName("com.mysql.jdbc.Driver");
  • 获取数据库连接
String url = "jdbc:mysql://localhost:3306/teaching_system11.27?characterEncoding=utf8&useSSL=false";
tring user = "root";
String password = "123456";
Connection connection = null;
try {
	connection = DriverManager.getConnection(url, user, password);
}catch (SQLException e) {
	e.printStackTrace();
}

关于url这个格式记住就好。localhost表示本地,3306是默认端口号,3306斜杠后面的是数据库名,数据库名的问号后面紧跟的是一些对数据库的特性描述,注意这些描述要跟在问好后面并且个描述之间要加上&。

        user和password就是你电脑上安装MySQL设定的账户和密码了,默认是root和123456,如果学习的话倒不用去修改,但是若做实际项目时一定修改,要保证数据库的安全性。

       调用DriverManager.getConnection()以获得数据库连接,连接成功后便可开始使用。

  • 执行SQL语句
Statement statement=connection.createStatement();
String sql="select * from user where user_id='"+id+"'and user_password='"+oldPassword+"'";
ResultSet resultSet=statement.executeQuery(sql);
if(resultSet.next()) {
    resultSet.close();
    sql="update user set user_password='"+newPassword+"' where user_id='"+id+"'";
    statement.executeUpdate(sql);			

}	
statement.close();
connection.close();

       JDBC的Statement,CallableStatement和PreparedStatement接口定义的方法和属性,可以发送SQL命令或PL/SQL命令到数据库,并从数据库接收数据。

        这里借助connection.createStatement()生成Statement对象,再使用executeQuery(String SQL) 生成一个ResultSet对象,ResultSet对象便是我们数据库操作的结果集。

       在这里使用的SQL语句与正常的一样没什么区别,但需要注意的时将SQL语句转换为字符串时要注意字符串的拼接,首先整条语句是一个字符串,用一对双引号引起来;然后对于不是固定的元素,例如上面的实例中的id,这是用参数传递进去的,字符串拼接用“+字符串+”的形式,用一对双引号引上+字符串+表示这是一个字符串,再用一对单引号引上被双引号引上的+字符串+(用单引号是为了方便与双引号区分)就可以了。

       结束的时候注意使用close()函数,以释放资源。

 

 

参考资料:

 

数据库(MySQL)复习整理(二)

2019.12.02