Java连接MySQL数据库及简单的增删查操作

Java连接MySQL数据库及简单的增删查操作 增删查各一个类

首先需要在project文件中添加jar包。用来连接MySQL数据库和eclipse。
jar包下载网址:https://dev.mysql.com/downloads/connector/j/
选择操作系统:平台无关。
然后选择第二个zip压缩包下载。解压获得jar包。

右击project项目–> Build Path --> Configure Build Path -->Library -->Add external jars -->选择下好的jar包。

建立连接类 Conn.java
这是一个较完整的连接类。

package test3;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class Conn {		
		private static final String DRIVER= "com.mysql.cj.jdbc.Driver";									//驱动程序名
		private static final String URL = "jdbc:mysql://localhost:3308/test3?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false";					//URL指向要访问的数据库名 
		//我的数据库名是test3 
		private static final String USER = "root";														//MySQL配置时的用户名
		private static final String PASSWORD = null; 												//MySQL配置时的密码
	 
		public static Connection getConnection(){
			Connection conn = null;													//声明一个连接对象
			try {
				Class.forName(DRIVER);											//注册驱动
				conn = DriverManager.getConnection(URL,USER,PASSWORD);		//获得连接对象
			} catch (ClassNotFoundException e) {									//捕获驱动类无法找到异常
				e.printStackTrace();										
			} catch (SQLException e) {												//捕获SQL异常
				e.printStackTrace();
			}
			return conn;
		}
		
		public static void close(Connection conn) {//关闭连接对象
			if(conn != null) {				//如果conn连接对象不为空
				try {
					conn.close();			//关闭conn连接对象对象
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}
		
		public static void close(PreparedStatement pstmt) {//关闭预处理对象
			if(pstmt != null) {				//如果pstmt预处理对象不为空
				try {
					pstmt.close();			//关闭pstmt预处理对象
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}
		
		public static void close(Statement stmt) {//关闭预处理对象
			if(stmt != null) {				//如果pstmt预处理对象不为空
				try {
					stmt.close();			//关闭pstmt预处理对象
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}
	 
		public static void close(ResultSet rs) {//关闭结果集对象
			if(rs != null) {				//如果rs结果集对象不为null
				try {
					rs.close();				//关闭rs结果集对象
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}


}

在一开始建立连接的时候发生了一些错误一堆红码
是因为我的URL只写了
"jdbc:mysql://localhost:3308/test3"
后来询问了朋友发现需要在后面加上一段

?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false

加上以后就能成功连接了。

然后是增加商品的类ProAdd.java

package test3;

import java.sql.Connection;
import java.sql.Statement;

public class ProAdd {
	public void Add(String[] product) {
		Connection con;//声明一个连接对象
		//遍历查询结果集
		try {
			con = Conn.getConnection();//1.调用方法返回连接
			if(!con.isClosed())
				System.out.println("成功与数据库建立连接!");
			Statement statement = con.createStatement(); //2.创建statement类对象,用来执行SQL语句!!
			String sql = "INSERT INTO product(Pname,Price) values('%s','%s')";//要执行的SQL语句
			if(statement.executeUpdate(String.format(sql,product[0],product[1]))!=0)
				System.out.println("插入成功");
			else 
				System.out.println("插入失败");
			Conn.close(statement);
			Conn.close(con);
		}	catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
	}

}

删除商品的类 ProDelete.java

package test3;

import java.sql.Connection;
import java.sql.Statement;

public class ProDelete {
	public void Delete(String Pname) {
		Connection con;//声明一个连接对象
		//遍历查询结果集
		try {
			con = Conn.getConnection();//1.调用方法返回连接
			if(!con.isClosed())
				System.out.println("成功与数据库建立连接!");
			Statement statement = con.createStatement(); //2.创建statement类对象,用来执行SQL语句!!
			String sql = "DELETE FROM product WHERE Pname='%s'";//要执行的SQL语句
			if(statement.executeUpdate(String.format(sql,Pname))!=0)
				System.out.println("删除成功");
			else 
				System.out.println("删除失败");
			Conn.close(statement);
			Conn.close(con);
		}	catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
	}

}

显示商品的类 ProDisplay.java

package test3;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;

public class ProDisplay {

	public  ArrayList<String> Display() {
		Connection con;//声明一个连接对象
		ArrayList<String> pro = new ArrayList<>();
		//遍历查询结果集
		try {
			con = Conn.getConnection();//1.调用方法返回连接
			if(!con.isClosed())
				System.out.println("成功与数据库建立连接!");
			Statement statement = con.createStatement(); //2.创建statement类对象,用来执行SQL语句!!
			String sql = "SELECT * FROM product ";//要执行的SQL语句
			ResultSet rs = statement.executeQuery(sql);
			while(rs.next()){
				pro.add(rs.getString("Pname").trim());
				pro.add(rs.getString("Price").trim());
			}
			Conn.close(rs);
			Conn.close(statement);
			Conn.close(con);
		}	catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}
		return pro;
	}
}

最后是主类 Main.java

package test3;

import java.sql.Connection;
import java.sql.Statement;
import java.util.ArrayList;

import test3.Conn;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ProAdd ADD=new ProAdd();
		String[] Proinfo = {"flag","12"};
		ADD.Add(Proinfo);
		
		ProDelete DEL=new ProDelete();
		DEL.Delete("flag");
		
		ProDisplay DIS=new ProDisplay();
			System.out.println(DIS.Display());
	}
}

添加了一个flag商品,然后又删掉,最后展示所有商品。在这里插入图片描述在这里插入图片描述在这里插入图片描述
粗浅之作,敬请谅解。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值