java 操作数据库(JDBC)

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ResourceBundle;

public class DBUtils {
	
	private static String driverClass;
	private static String url;
	private static String user;
	private static String password;

	static{
		ResourceBundle rb = ResourceBundle.getBundle("dbinfo");//读取配置文件
		//给上面4个变量赋值
		driverClass = rb.getString("driverClass");
		url = rb.getString("url");
		user = rb.getString("user");
		password = rb.getString("password");
		try {
			Class.forName(driverClass);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}
	
	//得到连接
	public static Connection getConnection() throws SQLException{
		return DriverManager.getConnection(url, user, password);
	}
	public static void closeAll(ResultSet rs,Statement stmt,Connection conn){
		if(rs!=null){
			try {
				rs.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
			rs = null;
		}
		if(stmt!=null){
			try {
				stmt.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
			stmt = null;
		}
		if(conn!=null){
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
			conn = null;
		}
	}
}
/*dbinfo.properties*/
driverClass=com.mysql.jdbc.Driver
url=jdbc:mysql:///day06
username=root
password=abc

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import org.junit.Test;

import com.itheima.entity.User;
import com.itheima.util.DBUtils;

public class TestCRUD {
	@Test
	public void testSelect(){
		Connection conn = null;
		Statement stmt = null;
		ResultSet rs = null;
		
		try {
			conn = DBUtils.getConnection();
			stmt = conn.createStatement();
			rs = stmt.executeQuery("select * from users");
			List<User> list = new ArrayList<User>();
			while(rs.next()){
				User u = new User();
				u.setId(rs.getInt(1));
				u.setName(rs.getString(2));
				u.setPassword(rs.getString(3));
				u.setEmail(rs.getString(4));
				u.setBirthday(rs.getDate(5));
				list.add(u);
			}
			
			for (User user : list) {
				System.out.println(user);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			DBUtils.closeAll(rs, stmt, conn);
		}
	}
	
	@Test
	public void testInsert(){//插入操作
		Connection conn = null;
		PreparedStatement stmt = null;
	
		try {
			conn = DBUtils.getConnection();
			stmt = conn.prepareStatement("INSERT INTO users VALUES(?,?,?,?,?)");
			stmt.setInt(1, 5);
			stmt.setString(2, "tom"); 
			stmt.setString(3, "333");
			stmt.setString(4, "tom@163.com");
			//stmt.setDate(5, new java.sql.Date(System.currentTimeMillis()));
			stmt.setString(5, "2015-09-11");
			
			int i = stmt.executeUpdate();
			if(i>0){
				System.out.println("success");
			}
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			DBUtils.closeAll(null, stmt, conn);
		}
	}
	
	@Test
	public void testUpdate(){//更新操作
		Connection conn = null;
		PreparedStatement stmt = null;
	
		try {
			conn = DBUtils.getConnection();
			stmt = conn.prepareStatement("UPDATE users SET NAME=?,PASSWORD=?,email=? WHERE id=?");
			stmt.setString(1, "jerry123");
			stmt.setString(2, "123");
			stmt.setString(3, "jerry@163.com");
			stmt.setInt(4, 5);
			
			int i = stmt.executeUpdate();
			if(i>0){
				System.out.println("success");
			}
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			DBUtils.closeAll(null, stmt, conn);
		}
	}
	
	@Test
	public void testDelete(){//删除操作
		Connection conn = null;
		PreparedStatement stmt = null;
	
		try {
			conn = DBUtils.getConnection();
		    stmt = conn.prepareStatement("DELETE FROM users WHERE id=?");
		    stmt.setInt(1, 4);
			int i = stmt.executeUpdate();
			if(i>0){
				System.out.println("success");
			}
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			DBUtils.closeAll(null, stmt, conn);
		}
	}
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值