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

       笔者最近开始学习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()函数,以释放资源。

 

 

参考资料:

 

2019.12.02

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值