JDBC基础:操作流程

JDBC基础:操作流程

1、jdbc操作流程

package com.xuedao.jdbc;


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


//添加数据

public class JdbcTest {
	
	private static final String URL = "jdbc:mysql://localhost:3306/new_test";//数据库地址
	private static final String DRIVER = "com.mysql.jdbc.Driver";//驱动类的类路径
	private static final String USER = "root";
	private static final String PASSWORD = "1814949561";
	
	private static Connection conn;
	private static PreparedStatement sta;

	public static void main(String[] args) {
		
		try {
			//1. 加载驱动类
			Class.forName(DRIVER);
			//2. 获取数据库连接
			conn = DriverManager.getConnection(URL, USER, PASSWORD);
			//3. 构建SQL语句
			String sql = "insert into student values (4,\"王彪\",'女',100)";
			//4. 获取SQL语句的执行对象
			sta = conn.prepareStatement(sql);
			//5. 执行SQL
			int i = sta.executeUpdate();
			//6. 处理结果
			if(i != -1) {
				System.out.println("操作成功");
			}
			
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			//7. 关闭相关资源
			try {
			if(sta != null) {
				sta.close();
			}
			if(conn != null) {
				conn.close();
			}
			}catch (Exception e) {
				e.printStackTrace();
			}
		}
	

	}

}

2、一个示例----操作student表

package com.xuedao.pojo;

public class Student {

	private String username;
	private String sex;
	private int id;
	private int score;
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public int getScore() {
		return score;
	}
	public void setScore(int score) {
		this.score = score;
	}
	@Override
	public String toString() {
		return "Student [username=" + username + ", sex=" + sex + ", id=" + id + ", score=" + score + "]";
	}
	
	
}

package com.xuedao.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.xuedao.pojo.Student;

public class JdbcUpdate {

	private static final String URL = "jdbc:mysql://localhost:3306/new_test";//数据库地址
	private static final String DRIVER = "com.mysql.jdbc.Driver";//驱动类的类路径
	private static final String USER = "root";
	private static final String PASSWORD = "1814949561";
	
	private static Connection conn;
	private static PreparedStatement sta;
	private static String sql = "";
	
	public static void main(String[] args) throws ClassNotFoundException, SQLException {
		Student s = new Student();
		s.setId(4);
		s.setUsername("白素贞");
		s.setSex("女");
		s.setScore(101);		
		update(s);
		//select();
		
//封装后用此语句进行增删改查  		
//		String sql = "";
//		execute(sql, null);
	}
	/**
	 * 修改数据
	 * @param s
	 * @throws ClassNotFoundException
	 * @throws SQLException
	 */
	public static void update(Student s){
		try {
			Class.forName(DRIVER);
			conn = DriverManager.getConnection(URL, USER, PASSWORD);
			//关闭自动提交事务
			conn.setAutoCommit(false);
			sql = "update student set username = ?, sex = ?, score = ? where id = ?";
			sta = conn.prepareStatement(sql); 
			//Statement sta = conn.createStatement();
			
			//设置参数
			sta.setString(1, s.getUsername());
			sta.setString(2, s.getSex());
			sta.setInt(3, s.getScore());
			sta.setInt(4, s.getId());
			sta.executeUpdate();
			
			//再添加一个数据
			sql = "insert into student(username,sex,score) values(?,?,?)";
			sta = conn.prepareStatement(sql);			
			sta.setString(1, s.getUsername());
			sta.setString(2, s.getSex());
			sta.setInt(3, s.getScore());
			sta.executeUpdate();
			conn.commit();
		
		} catch (Exception e) {
			//执行失败就回滚
			try {
				conn.rollback();
			} catch (SQLException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
			e.printStackTrace();
		}finally {
			
				try {
					if(conn != null) {
					conn.close();
					}
					if( sta != null) {
						sta.close();
					}
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		
	
	}
	
	
	
	/**
	 * 查询数据
	 * @throws ClassNotFoundException 
	 * @throws SQLException 
	 */
	public static void select() throws ClassNotFoundException, SQLException {
		Class.forName(DRIVER);
		conn = DriverManager.getConnection(URL, USER, PASSWORD);
		
	
		
		sql = " select * from student where id = ?";
		sta = conn.prepareStatement(sql); 
		sta.setInt(1, 2);
		
		//查询所有结果
		ResultSet rs = sta.executeQuery();
		List<Student> lis = new ArrayList<>();
		//处理结果
		while (rs.next()) {
			Student s = new Student();
			s.setId(rs.getInt("id"));
			s.setUsername(rs.getString("username"));
			s.setScore(rs.getInt("score"));
			s.setSex(rs.getString("sex"));
			lis.add(s);
		}
		for (Student s : lis) {
			System.out.println(s);
		}
		if( sta != null) {
			sta.close();
		}
		if(conn != null) {
			conn.close();
		}
		if(rs != null) {
			rs.close();
		}
	}
	
	
	//封装dml
	public static boolean execute(String sql,Object...os) {
		try {
			Class.forName(DRIVER);
			conn = DriverManager.getConnection(URL, USER, PASSWORD);
			sta = conn.prepareStatement(sql); 
			int i = 1;
			for (Object o : os) {
				sta.setObject(i++, o);
			}
			sta.executeUpdate();
			return true;
		} catch (Exception e) {
			e.printStackTrace();
			return false;
		}
	}
	
	
	
	
	
	

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值