JDBC连接数据库(增删改查)

JDBC连接数据库(增删改查)

如果连接数据库有问题可以观看上一篇文章,这里不在多说。项目目录如图所示:
在这里插入图片描述在这里插入图片描述

1、首先看一下工具类:

跟上一篇文章唯不同的是closeRs变成了closePs方法,release方法也对应的变化,建立一个新表。最后给看全部代码。

2、先看Main类:

此次代码将Statement类换成了PrepareStatement类,因为后者的安全系数高。
(1)主函数:

public static void main(String[] args){
		Connection conn = null;
		try {
			//从工具类中获取conn,连接数据库,具体原理看上一篇文章
			conn = Tool.getConnection();
			//调用查找方法
			Select(conn);
			//调用添加方法
//			Insert(conn,"zhangchong","555555");
			//调用删除方法
//			Delete(conn,4);
			//调用更新方法
//			Update(conn,1,"dai");
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			Tool.closeConn(conn);
		}
	}

(2)‘增’方法

public static void Insert(Connection conn,String username,String password) {
		//定义sql语句,?为占位符
		String sql = "insert into login values(null,?,?)";
		PreparedStatement ps = null;
		try {
			//在数据库中对sql进行预处理
			ps = conn.prepareStatement(sql);
			//对sql语句中的?进行添加具体值,其中第一个?为1,第二个?为2
			ps.setString(1,username);
			ps.setString(2, password);
			//将在数据库中执行的结果返回,result值为添加成功了result行
			int result = ps.executeUpdate();
			if(result > 0)
				System.out.println("添加成功!!!");
			else
				System.out.println("添加失败!!!");
		} catch (SQLException e) {
			e.printStackTrace();
		}finally {
			Tool.closePs(ps);
		}
	}

(2)'删’方法

public static void Delete(Connection conn,int id) {
		String sql = "delete from login where id = ?";
		PreparedStatement ps = null;
		try {
			ps = conn.prepareStatement(sql);
			//添加整型数值
			ps.setInt(1, id);
			int result = ps.executeUpdate();
			if(result > 0)
				System.out.println("删除成功!!!");
			else
				System.out.println("删除失败!!!");
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}

(3)'改’方法

public static void Update(Connection conn,int id,String username) {
		String sql = "update login set username=? where id = ?";
		PreparedStatement ps = null;
		try {
			ps = conn.prepareStatement(sql);
			ps.setString(1, username);
			ps.setInt(2, id);
			int result = ps.executeUpdate();
			if(result > 0)
				System.out.println("更新成功!!!");
			else
				System.out.println("更新失败!!!");
		} catch (SQLException e) {
			
			e.printStackTrace();
		}
	}

(4)'查’方法

public static void Select(Connection conn) {
		String sql = "select * from login";
		PreparedStatement ps = null;
		ResultSet rs = null;
		try {
			ps = conn.prepareStatement(sql);
			//返回查询结果给ResultSet对象
			rs = ps.executeQuery();
			while(rs.next()) {
				int id = rs.getInt("id");
				String username = rs.getString("username");
				String password = rs.getString("password");
				System.out.println("id = " + id + ",username = " + username + ",password= " + password) ;
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally {
			Tool.closeRs(rs);
		}
	}

3、完整代码

(1)Main类:

package JDBC;

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

import Util.Tool;

public class Main {

	public static void main(String[] args){
		Connection conn = null;
		try {
			conn = Tool.getConnection();
			Select(conn);
//			Insert(conn,"zhangchong","555555");
//			Delete(conn,4);
//			Update(conn,1,"dai");
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			Tool.closeConn(conn);
		}
	}
	public static void Select(Connection conn) {
		String sql = "select * from login";
		PreparedStatement ps = null;
		ResultSet rs = null;
		try {
			ps = conn.prepareStatement(sql);
			rs = ps.executeQuery();
			while(rs.next()) {
				int id = rs.getInt("id");
				String username = rs.getString("username");
				String password = rs.getString("password");
				System.out.println("id = " + id + ",username = " + username + ",password= " + password) ;
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally {
			Tool.closeRs(rs);
		}
	}
	public static void Insert(Connection conn,String username,String password) {
		String sql = "insert into login values(null,?,?)";
		PreparedStatement ps = null;
		try {
			ps = conn.prepareStatement(sql);
			ps.setString(1,username);
			ps.setString(2, password);
			int result = ps.executeUpdate();
			if(result > 0)
				System.out.println("添加成功!!!");
			else
				System.out.println("添加失败!!!");
		} catch (SQLException e) {
			
			e.printStackTrace();
		}finally {
			Tool.closePs(ps);
		}
	}
	public static void Delete(Connection conn,int id) {
		String sql = "delete from login where id = ?";
		PreparedStatement ps = null;
		try {
			ps = conn.prepareStatement(sql);
			ps.setInt(1, id);
			int result = ps.executeUpdate();
			if(result > 0)
				System.out.println("删除成功!!!");
			else
				System.out.println("删除失败!!!");
		} catch (SQLException e) {
			e.printStackTrace();
		}
	}
	public static void Update(Connection conn,int id,String username) {
		String sql = "update login set username=? where id = ?";
		PreparedStatement ps = null;
		try {
			ps = conn.prepareStatement(sql);
			ps.setString(1, username);
			ps.setInt(2, id);
			int result = ps.executeUpdate();
			if(result > 0)
				System.out.println("更新成功!!!");
			else
				System.out.println("更新失败!!!");
		} catch (SQLException e) {
			
			e.printStackTrace();
		}
	}
}

(2)Tool类:

package Util;

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

public class Tool {
	private static String driverClass = null;
	private static String url = null;
	private static String username = null;
	private static String password = null;
	
	static {
		try {
//			创建一个文件配置对象
			Properties properties = new Properties();
//			对应文件位于工程根目录下
//			InputStream is = new FileInputStream("jdbc.properties");
//			加载字节码文件时候直接加载,使用类加载器,去读取src底下的源文件。后面再servlet,对应文件位于的工程根目录
			InputStream is = Tool.class.getClassLoader().getResourceAsStream("jdbc.properties");
//			导入输入流
			properties.load(is);
//			读取属性
			driverClass = properties.getProperty("driverClass");
			url = properties.getProperty("url");
			username = properties.getProperty("username");
			password = properties.getProperty("password");
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
//	连接对象
	public static Connection getConnection() {
		Connection conn = null;
		try {
			//注册驱动,jdbc4.0后自动加载驱动
			Class.forName("com.mysql.jdbc.Driver");
//			连接数据库
			conn = DriverManager.getConnection(url,username,password);
		} catch (Exception e) {
			e.printStackTrace();
		}
		return conn;
	}
//	释放资源,关闭流
	
	public static void release(Connection conn,ResultSet rs,PreparedStatement ps) {
		closeRs(rs);
		closeConn(conn);
		closePs(ps);
	}
	public static void closeRs(ResultSet rs) {
		try {
			if(rs != null)
				rs.close();
		}catch(SQLException e) {
			e.printStackTrace();
		}finally {
			rs = null;
		}
	}
	public static void closeConn(Connection conn) {
		try {
			if( conn != null)
				conn.close();
		}catch(SQLException e) {
			e.printStackTrace();
		}finally {
			conn = null;
		}
	}
	public static void closePs(PreparedStatement ps) {
		try {
			if(ps != null)
				ps.close();
		}catch(SQLException e) {
			e.printStackTrace();
		}finally {
			ps = null;
		}
	}
}

(3)配置文件

 driveClass=com.mysql.jdbc.Driver
 url=jdbc:mysql://localhost/jdbc_test
 username=root
 password=111111

猜你喜欢

转载自blog.csdn.net/weixin_44588495/article/details/89193765