需要用到的jar包:mysql-connector-java-5.1.48-bin.jar

用到的数据库表:jdbc库中的users表

package p01_jdbc;

import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import com.mysql.jdbc.Driver;

public class JDBC_test {

	public static void main(String[] args){
		/*
		* 单独拿出来先声明是为了保证finally执行关闭语句的时候语法不出错
		*
		*/
		
		//获取连接的对象
		Connection con = null;
		//获取操作数据的对象
		Statement stmt = null;
		//获取到结果集
		ResultSet rs = null;
		try {
		//===========连接数据库前提准备===========
			//对接mysql厂商给的接口,导入com.mysql.jdbc.Driver
			Driver driver_mysql = new Driver();
			/**
			 * 注册并加载驱动
			 * 一般的写法DriverManager.registerDriver(driver_mysql); 
			 * 但是一般的写法有弊端,因为registerDriver在类静态方法中,加载driver类的时候会加载一次
			 * 所以使用反射来加载,参数是加载驱动的名称。
			 * 
			 * */
			Class.forName("com.mysql.jdbc.Driver");
			//获取连接的对象
				//url写法:全协议+子协议+主机号+端口号+数据库名
				String url = "jdbc:mysql://localhost:3306/jdbc";
				//数据库用户名和密码
				String user = "root";
				String password = "root";
			con = DriverManager.getConnection(url, user, password);
			stmt = con.createStatement();
		//==============操作数据库================
			String sql = "select * from users";
			rs = stmt.executeQuery(sql);
			//遍历结果集
			while(rs.next()) {
				//next()方法:在某一行遍历结束后跳转到下一行,默认位置是第一行之前。
				int id = rs.getInt("id");
				String name = rs.getString("name");
				String ps = rs.getString("password");
				String email = rs.getString("email");
				Date birthday = rs.getDate("birthday");
				System.out.println(id +" " + name + " " + ps + " " + email +" " +birthday+ " ");
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}finally {
			/*
			 * 关闭的顺序要和打开的顺序想反,最先打开的,最后关闭。
			 * 判断是因为避免关流的时候遭到控制异常
			 * 
			*/
			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(con!=null) {
				try {
					con.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}
		
	}

}

输出的结果:

说点什么
暂时没有人评论
Loading...