JDBC的CRUD(通过工具类和 PreparedStatement)

- 配置文件:db.properties

//驱动名
driverClass=com.mysql.jdbc.Driver
//homework为数据库名
url=jdbc:mysql://localhost:3306/homework
//mysql账号
username=root
//密码
password=1997

- 工具类:JDBCUtil

package jdbc;

import java.io.FileInputStream;
import java.io.IOException;
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 JDBCUtil {
	//定义需要的常量
	private static final String driverClassName;
	private static final String url;
	private static final String username;
	private static final String password;
	
	//通过静态代码块加载配置文件中的数据
	static {
		Properties pp = new Properties();
		try {
			pp.load(new FileInputStream("src/db.properties"));
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		driverClassName=pp.getProperty("driverClass");
		url = pp.getProperty("url");
		username =pp.getProperty("username");
		password = pp.getProperty("password");
		
	}
	
	/*
	 * 加载驱动的方法
	 */
	public static void loadDriver() {
		try {
			Class.forName(driverClassName);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}
	
	
	/*
	  *  获取连接的方法
	 */
	public static Connection getConnection(){
		//加载驱动
		loadDriver();
		Connection conn = null;
		try {
			conn = DriverManager.getConnection(url, username, password);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return conn;	
	}
	
	/*
	 * 释放增删改资源的方法:
	 */
	public static void release(PreparedStatement ps,Connection conn) {
		if(ps!=null) {
			try {
				ps.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
			//加速资源回收
			ps = null;
		}
		
		if(conn!=null) {
			try {
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
			//加速资源回收
			conn = null;
		}
	}
	
	/*
	 * 释放查资源的方法:
	 */
	public static void release(ResultSet rs,Statement stmt,Connection conn) {
		if(rs!=null) {
			try {
				rs.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
			//加速资源回收
			rs = null;
		}
		
		if(stmt!=null) {
			try {
				stmt.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
			//加速资源回收
			stmt = null;
		}
		
		if(conn!=null) {
			try {
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
			//加速资源回收
			conn = null;
		}
	}
}

- CRUD_Create 增数据

package jdbc;

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

import org.junit.Test;

public class CRUD_Create {
	@Test
	public void  create() {
		Connection conn = null;
		PreparedStatement ps = null;
		try {
			//获得连接
			conn = JDBCUtil.getConnection();
			//编写SQL
			String sql = "insert into time values(?,?,?)";
			//预编译sql
			ps = conn.prepareStatement(sql);
			//设置参数
			ps.setInt(1, 4);
			ps.setDouble(2, 15.00);
			ps.setInt(3, 50);
			int num = ps.executeUpdate();
			if(num>0) {
				System.out.println("插入成功");
			}else {
				System.out.println("插入失败");
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}finally {
			//释放资源
			JDBCUtil.release(ps, conn);
		}
	}
}

- CRUD_Retrieve 查数据

package jdbc;

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

import org.junit.Test;

public class CRUD_Retrieve {
	@Test
	public void Retrieve() {
		Connection conn = null;
		PreparedStatement ps = null;
		ResultSet rs = null;
		try {
				conn = JDBCUtil.getConnection();
				String sql = "select * from time";
				ps = conn.prepareStatement(sql);
				rs = ps.executeQuery();
				while(rs.next()) {
					System.out.println(rs.getInt("id")+" "+rs.getDouble("time")+" "+rs.getInt("values"));
				}
		}catch(Exception e) {
			e.printStackTrace();
		}finally {
			JDBCUtil.release(rs, ps, conn);
		}
	}
}

- CRUD_Updata 改数据

package jdbc;

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

import org.junit.Test;

public class CRUD_Updata {
	@Test
	public void updata() {
		Connection conn = null;
		PreparedStatement ps = null;
		try{
			conn = JDBCUtil.getConnection();
			String sql = "update time set time = ? where id = ?";
			ps = conn.prepareStatement(sql);
			ps.setDouble(1, 15.55);
			ps.setInt(2, 3);
			int num = ps.executeUpdate();
			if(num>0) {
				System.out.println("修改成功");
			}else {
				System.out.println("修改失败");
			}
		}catch(Exception e) {
			e.printStackTrace();
		}finally {
			JDBCUtil.release(ps, conn);
		}
	}
}

-CRUD_Delete 删数据

package jdbc;

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

import org.junit.Test;

public class CRUD_Delete {
	@Test
	public void delete() {
		 Connection conn = null;
		 PreparedStatement ps = null;
		 try {
			 conn = JDBCUtil.getConnection();
			 String sql = "delete from time where id = ?";
			 ps = conn.prepareStatement(sql);
			 ps.setInt(1, 4);
			 int num = ps.executeUpdate();
			 if(num>0) {
				 System.out.println("删除成功");
			 }else {
				 System.out.println("删除失败");
			 }
		 }catch(Exception e) {
			 e.printStackTrace();
		 }finally {
			 JDBCUtil.release(ps, conn);
		 }
	}
}

你可能感兴趣的:(工具类)