杂记——25.eclipse如何连接并实现对数据库的操作

这篇文章我们来讲一下eclipse(即编辑器)如何连接并实现对数据库的操作,这里以eclipse为主连讲解演示一下。

第一步:

查看我们本机安装的数据库的版本,即查看我们本机是否安装了数据库

在命令提示窗口输入:mysql --help

第二步:

打开eclipse,创建一个普通的java项目:

 

第三步:

在src下创建一个包(包名随便命名),在项目下,创建一个文件夹,命名为lib,然后在lib中导入jar包(这个jar包可以在CSDN上或者是Mysql官网上下载)

如下图所示:

扫描二维码关注公众号,回复: 15383419 查看本文章

 

 第五步:

右击项目,点击Properties,选择java Build Path,点击Add JARs...,选择相应的文件,如下图所示:

第六步:

在包下面创建.java的类,并书写代码:

代码如下:

package com.qcby.db;

import java.sql.*;

import com.mysql.jdbc.Statement;

public class Dbutil {
	
	static {
		try {
			System.out.println("开始加载驱动======");
			Class.forName("com.mysql.jdbc.Driver");
			System.out.println("加载驱动成功======");
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.out.println("加载驱动失败!!!!!!");
		}
	}
	
	private static Connection con;
	private static String url = "jdbc:mysql://localhost:3306/hbu0516?useUnicode=true&characterEncoding=utf-8";
	private static String user = "root";
	private static String password = "2020";
	
	public static Connection getConnection()  {
		System.out.println("连接获取开始======");
		if(con==null) {
			try {
				System.out.println("连接为空,开始构建连接======");
				con = DriverManager.getConnection(url,user,password);
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
				System.out.println("连接构建失败,请查看原因!!!!!!");
			}
			System.out.println("连接构建成功======");
		}
		System.out.println("连接获取成功======");
		return con;
	}
	
	public static void execQuery(String sql) {
		Connection connection = getConnection();
		
		try {
			Statement statement = (Statement) connection.createStatement();
			ResultSet rs = statement.executeQuery(sql);
			while(rs.next()) {
				int id = rs.getInt("id");
				String userName = rs.getString("user_name");
				int userage = rs.getInt("user_age");
				System.out.print(id+"  ");
				System.out.print(userName+"  ");
				System.out.println(userage);
			}
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	public static void execUpadte() {
		Connection connection = getConnection();
		String Updatesql = "update t_user set user_name=? where id = ?";
		try {
			PreparedStatement statement = connection.prepareStatement(Updatesql);
			statement.setString(1,"wangwu");
			statement.setInt(2, 2);
			int eu = statement.executeUpdate();
			System.out.println(eu);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	public static void main(String[] args) {
		String sql1 = "select * from t_user";
		execQuery(sql1);
		execUpadte();
	}

}

下面通过截图来讲一下:

解析:

我们知道,数据是存储在硬盘上的,这与硬件有关,数据库是在操作系统之上的,可以调用操作系统来管理硬件,从而实现对数据的管理。我们用户和程序是无法直接操作硬件的,我们要实现某些功能必须要通过操作系统来调用硬件来实现。所以,我们要实现对数据库中的数据的管理,就必须调用可以操作数据库的jar包,也就是驱动程序,这个就是我们在lib文件夹中导入的包

然后,我们对项目进行设置,使得我们项目在运行的时候,可以加载那个jar包,这就是我们第五步做的事情。

然后,我们开始写代码。

首先,我们写了一个静态代码块(第9-19行),静态代码块的特点是在程序执行的时候就会执行,并且只执行一次。然后,我们来看静态代码块中的内容,其实关键的就一句——第11行,这句话的作用是利用反射获取这个类的字节码文件,我们可以理解为加载这个类,而这个类就是我们的mysql的驱动程序,通过反射,我们调用了这个文件,然后加载了mysql的驱动,可以实现对mysql的操作了,其余的就是打印信息了,这个就不是重点了。

其实到这里,我们就可以运行一下,看是否是正确的。这里说两个运行类的方法。第一个就是在类里面写一个空的主方法,这样类就可以运行了,那么这个静态代码块也就可以运行了;第二个就是在方法上面加上@Test注解,不过这个是有要求的,@Test注解只能放在方法的上面,也就是说只能运行方法,而不能运行类,并且我们还要注意这个方法是否是独立的,即是否可以独立的运行。

我们前面调用了数据库的驱动程序,也就是说我们可以操作数据库了,但是,我们还没有与数据库建立连接,只有在我们与数据库建立连接之后,我们才能运行数据库。

java的sql类库里面,封装了一个Connection类,是专门用来建立与数据库的连接的。所以,我们在第21行创建了一个Connection类对象con,然后,我们继续思考,我们要与数据库建立连接,就必须知道数据库的一些信息,什么信息?至少应该知道url,用户名,密码;所以我们在第22,23,24分别定义了变量来存储数据库的url,用户名,密码。

然后,我们继续思考。我们java用一个类来承担与数据建立连接的功能,那么也就是说,我们所有与连接有关的内容都是放在这个类里面的,或而言之,这个类承担了与数据库连接的一切功能。那么就好理解了,我们调用Connection类里面的方法,传入数据库的url,用户名,密码等参数,然后这个类就帮我们完成了数据库的连接,然后我们把这个类返回回来,这样我们在别处要用的时候,就直接调用这个方法,利用这个返回回来的类,就能建立与数据库的连接啦。这就是第26——第41行的逻辑。当然,里面还有一些打印输出和抛异常等内容,这些都不是主要的东西。

然后,我们继续思考。此时此刻,我们可以驱动数据库了,然后与数据库的连接也建立了,那么我们就可以对数据库进行操作了,即对数据进行增删改查。怎么做?利用我们前面说的那个类Connection对象,我们利用这个类里面的方法来做。statement:报表,清单;我们利用Connection类里面的方法,创建一个statement类对象,我们用这个对象里面的具体方法来实现具体的SQL语句的执行。就比如,我们要执行查询所有人的信息,我们就用statement类里面的executeQuery方法,我们需要传入的就仅仅是SQL语句了。执行完成之后,肯定有返回值,它返回的是我们这个表里面的所有数据,我们用一个ResultSet类的对象来接收。接收完成之后呢,我们肯定就是要打印了,怎么打印呢?这个其实与我们接收数据的类型ResultSet的格式有关,这个具体的我也不是很清楚。反正,就是我们要把它打印出来。这个就是第43——第61行的主要逻辑。

然后后面的逻辑和上面的是类似的。主要的区别就在于类里面的方法的调用不同,但是主体逻辑和上面是一样的。

至此,我们通过eclipse连接到数据库,实现了对数据库中数据的操作,实现了通过程序才操作数据的功能。

其实后面的内容还比较多,比如SQL语句的拼接,比如如何实现动态SQL,比如前后端交互等等,都是比较麻烦的,但是,我们这个是基础。要能够理解。

猜你喜欢

转载自blog.csdn.net/m0_52096593/article/details/130705789
今日推荐