Java基础学习记录之JDBC完成CRUD

这是JDBC进行单表的CRUD,为了减少代码的重复度,添加jdbcUtil工具类,完成Connection的获取和资源的释放。为了方便数据库相关的修改,添加jdbc.cfg.properties文件,

1.数据库:

create database basketball;

use basketball;

create table star(
	id int primary key auto_increment,
	name varchar(40),
	password varchar(40),
	email varchar(60),
	birthday date
);

insert into users(name,password,email,birthday) values('James','LeBron','LeBron@sina.com','1984-12-30');
insert into users(name,password,email,birthday) values('Wede','Dwyane','Dwyane@sina.com','1982-1-17');
insert into users(name,password,email,birthday) values('Bosh','Chris','Chris@sina.com','1984-3-24');
insert into users(name,password,email,birthday) values('Bryant','Kobe','Kobe@sina.com','1978-08-23');

2.jdbc.cfg.properties:

root:是数据库的用户名,hello:是数据库的密码。

driverClass=com.mysql.jdbc.Driver
url=jdbc:mysql:///basketball
user=root
password=hello
3.jdbcUtil.java:

可以获取connection和释放资源。

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

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

	static{
		try {
			
			InputStream is = JdbcUtil.class.getClassLoader().getResourceAsStream("jdbc.cfg.properties");
			Properties pro = new Properties();
			pro.load(is);
			
			driverClass = pro.getProperty("driverClass");
			url = pro.getProperty("url");
			user = pro.getProperty("user");
			password = pro.getProperty("password");
			Class.forName(driverClass);
		} catch (Exception e) {
			throw new ExceptionInInitializerError(e);
		}	
	}
	
	public static Connection getConnection() throws Exception{
		Connection con = DriverManager.getConnection(url,user,password);
		return con;
	}
	
	public static void release(ResultSet rs,Statement stt,Connection con){
		if(rs!=null){
			try{
				rs.close();
			}catch(SQLException e){
				e.printStackTrace();
			}
			rs = null;
		}
		if(stt != null){
			try{
				stt.close();
			}catch(SQLException e){
				e.printStackTrace();
			}
			stt = null;
		}
		if(con != null){
			try{
				con.close();
			}catch(SQLException e){
				e.printStackTrace();
			}
			con = null;
		}
	}
}


4.User.java:

import java.util.Date;
public class User {
	private int id;
	private String name;
	private String password;
	private String email;
	private Date birthday;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public Date getBirthday() {
		return birthday;
	}
	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}
	@Override
	public String toString() {
		return "User [id=" + id + ", name=" + name + ", password=" + password
				+ ", email=" + email + ", birthday=" + birthday + "]";
	}
	
	
}

5.CRUD:

测试时可以单独放开测试方法。

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

import test.domain.User;
import test.jdbcUtil.JdbcUtil;
public class JdbcCRUD {

	public static void main(String[] args) {
//		添加
//		testAdd();
		
//		修改
//		testUpdate();
		
//		删除
//		testDelete();
		
//		查找
//		testFind();
		
		
	}

	public static void testAdd(){
		Connection con = null;
		Statement stt = null;
		ResultSet rs = null;
		
		try {
			con = JdbcUtil.getConnection();
			stt = con.createStatement();
			int num = stt.executeUpdate("insert into users(name,password,email,birthday) values('Irving','Kyrie','Kyrie@sina.com','1992-3-23')");
			if(num != 0){
				System.out.println("添加数据成功");
			}
		} catch (Exception e) {
			
			throw new RuntimeException(e);
			
		}finally{
			
			JdbcUtil.release(rs, stt, con);
		}
	}
	
	public static void testUpdate() {
		Connection con = null;
		Statement stt = null;
		ResultSet rs = null;
		try {
			con = JdbcUtil.getConnection();
			stt = con.createStatement();
			int num = stt.executeUpdate("update users set email='lakers@126.com' where id=4");
			if(num != 0){
				System.out.println("修改数据成功");
			}
		} catch (Exception e) {
			throw new RuntimeException();
		}finally{
			JdbcUtil.release(rs, stt, con);
		}
		
	}
	
	public static void testDelete() {
		Connection con = null;
		Statement stt = null;
		ResultSet rs = null;
		
		try {
			con = JdbcUtil.getConnection();
			stt = con.createStatement();
			int num = stt.executeUpdate("delete from users where id = 2");
			if(num != 0){
				System.out.println("删除数据成功");
			}
		} catch (Exception e) {
			throw new RuntimeException();
		}finally{
			JdbcUtil.release(rs, stt, con);
		}
		
	}
	
	public static void testFind() {
		Connection con = null;
		Statement stt = null;
		ResultSet rs = null;
		
		try {
			con = JdbcUtil.getConnection();
			stt = con.createStatement();
			rs = stt.executeQuery("select * from users");
			if(rs.next()){
				System.out.println(rs.getString("name"));
			}
		} catch (Exception e) {
			throw new RuntimeException();
		}finally{
			JdbcUtil.release(rs, stt, con);
		}
	}

	
}




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值