Java连接数据库实现增删改;查。

一、首先需要先下载数据库。

数据库的好处

1.持久化数据到本地
2.可以实现结构化查询,方便管理

数据库相关概念

1、DB:数据库,保存一组有组织的数据的容器
2、DBMS:数据库管理系统,又称为数据库软件(产品),用于管理DB中的数据
3、SQL:结构化查询语言,用于和DBMS通信的语言

存储数据的特点

1、将数据放到表中,表再放到库中
2、一个数据库中可以有多个表,每个表都有一个的名字,用来标识自己。表名具有唯一性。
3、表具有一些特性,这些特性定义了数据在表中如何存储,类似java中 “类”的设计。
4、表由列组成,我们也称为字段。所有表都是由一个或多个列组成的,每一列类似java 中的”属性”
5、表中的数据是按行存储的,每一行类似于java中的“对象”。

常见的数据库管理系统(DBMS)

MySQL、Oracle、DB2、SqlServer等

Sql的优点:

1、不是某个特定数据库供应商专有的语言,几乎所有DBMS都支持SQL
2、简单易学
3、虽然简单,但实际上是一种强有力的语言,灵活使用其语言元素,可以进行非常复杂和高级的数据库操作。

SQL语言的分类(也可以其他样式的分,分类大致相同)

    DQL(Data Query Language):数据查询语言
		select 
	DML(Data Manipulate Language):数据操作语言
		insert 、update、delete
	DDL(Data Define Languge):数据定义语言
		create、drop、alter
	TCL(Transaction Control Language):事务控制语言
		commit、rollback

数据库的安装

0、说明
由于MySQL是免费的数据库管理系统,且适用于中小型企业的使用,故在此安装此数据库管理系统。
需要先进行MySQL的安装(可以选择免费版进行安装),接着安装图形化用户界面,这个是收费的,建议支持正版。
1、安装MySQL数据库
概述:
	1、在官网下载合适版本
	2、进行安装
	3、配置环境变量
	4、通过cmd命令行,检测是否安装成功

官网如下:https://www.mysql.com/
安装具体细节可以参照尚硅谷–>MySQL篇宋红康老师基础篇P7

2、安装图形化用户界面

MySQL图形化管理工具极大地方便了数据库的操作与管理,常用的图形化管理工具有:MySQL Workbench、phpMyAdmin、Navicat Preminum、MySQLDumper、SQLyog、dbeaver、MySQL ODBC Connector。
Mysql图形化管理工具极大地方便了数据库的操作与管理,常用的图形化管理工具有:MySQLWorkbench、phpMyAdmin、Navicat preminum、MySQLDumper、SQLyog、daver、MySQL ODBC连接器。
详细安装课参照尚硅谷–>MySQL篇宋红康老师基础篇P10

二、在JAVA中进行操作建立与数据库的连接

1、在工程类下建一个名为lib的Floder,用于存放jar包

在这里插入图片描述

2、前往MySQL官网将自己下载的MySQL对应版本的jar包下载下来粘贴到本lib包下

jar包的获取与MySQL官网:https://downloads.mysql.com/archives/c-j/在这里插入图片描述
下载完成后将文件直接复制粘贴即可导入到lib包下

3、在src项目下建一个名为jdbc.properties(名字自定)的File,用于填写获取连接的四个基本信息。


注:密码需要填写自己安装MySQL时的密码

4、编写连接数据库的代码

package connectionshow;

import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.util.Properties;

public class ConnectionTestShow {
	public void getConnection5() throws Exception {
		//1.读取配置文件中的4个基本信息
		InputStream is = ConnectionTestShow.class.getClassLoader().getResourceAsStream("jdbc.properties");
		
		Properties pros = new Properties();
		pros.load(is);
		
		String user = pros.getProperty("user");
		String password = pros.getProperty("password");
		String url = pros.getProperty("url");
		String driverClass = pros.getProperty("driverClass");
		
		//2.加载驱动
		Class.forName(driverClass);
		
		//3.获取连接
		Connection conn = DriverManager.getConnection(url, user, password);
		System.err.println(conn);
		
	}
}
若运行结束后下面出现红色字体Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
不用担心,已经成功连接了。原因是自己的java版本过高

三、JAVA已经成功连接数据库,现在编写增删改的代码

建立实现最终的运行类

package connectionshow;

import java.sql.Connection;
import java.sql.PreparedStatement;

public class PreparedStatementUpdateTest {
	public void testCommonUpdate() {		
		String sql = "update `order` set order_name = ? where order_id = ?";
		update(sql,"DD","2");
		
	}
	//这里只写了删除操作,其余操作类似,可以自行补全增和删。
	
	//通用的增删改操作
	public void update(String sql,Object ...args){//sql中占位符的个数与可变形参的长度相同!
		Connection conn = null;
		PreparedStatement ps = null;
		try {
			//1.获取数据库的连接
			conn = JDBCUtils.getConnection();
			//2.预编译sql语句,返回PreparedStatement的实例
			ps = conn.prepareStatement(sql);
			//3.填充占位符
			for(int i = 0;i < args.length;i++) {
				ps.setObject(i+1, args[i]);
			}
			//4.执行
			ps.execute();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally {
			//5.资源的关闭
			JDBCUtils.closeResource(conn, ps);			
		}
	}
	
}

为了增加代码的封装性,将1.获取数据库的连接与5.资源的关闭封装在JDBCUtils类下

package com.atguigu3.util;
/*
 * 操作数据库的工具类
 * 
 */

import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Properties;

import com.atguigu1.connection.ConnectionTest;

public class JDBCUtils {
	
	//获取数据库的连接
	public static Connection getConnection() throws Exception {
		// 1.读取配置文件中的4个基本信息
		InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("jdbc.properties");

		Properties pros = new Properties();
		pros.load(is);

		String user = pros.getProperty("user");
		String password = pros.getProperty("password");
		String url = pros.getProperty("url");
		String driverClass = pros.getProperty("driverClass");

		// 2.加载驱动
		Class.forName(driverClass);

		// 3.获取连接
		Connection conn = DriverManager.getConnection(url, user, password);
		return conn;
	}
	
	//关闭连接和Statement的操作
	public static void closeResource(Connection conn,PreparedStatement ps) {
		//7.资源的关闭
		try {
			if(ps != null)
				ps.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		try {
			if(conn != null)
				conn.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

综上:希望能给予你帮助,也可直接去尚硅谷官网学习MySQL与JDBC课程完成。
尚硅谷官网:http://www.atguigu.com/

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值