JAVA连接JDBC的步骤

版权声明:未经本人允许,不得转载本博客,转载请注明地址 https://blog.csdn.net/qq_34691713/article/details/82468430
  1. 加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Class类的静态方法forName(String className)实现。
  2. 提供JDBC连接的URL 。 
  3. 创建数据库的连接 ,需要向java.sql.DriverManager请求并获得Connection对象, 该对象就代表一个数据库的连接。
  4. 创建一个Statement •要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下3 种类型:
    1. 执行静态SQL语句。通常通过Statement实例实现。 Statement stmt = con.createStatement() ;
    2. 执行动态SQL语句。通常通过PreparedStatement实例实现。 PreparedStatement pstmt = con.prepareStatement(sql) ;
    3. 执行数据库存储过程。通常通过CallableStatement实例实现。CallableStatement cstmt = con.prepareCall("{CALL demoSp(? , ?)}") ;
  5. 执行SQL语句 Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate 和execute
    1. ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句 ,返回一个结果集(ResultSet)对象。
    2. int executeUpdate(String sqlString):用于执行INSERT、UPDATE或 DELETE语句以及SQL DDL语句,如:CREATE TABLE和DROP TABLE等
    3. execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的 语句。 具体实现的代码: ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ; int rows = stmt.executeUpdate("INSERT INTO ...") ; boolean flag = stmt.execute(String sql) ;
  6. 处理结果 两种情况:
    1. 执行更新返回的是本次操作影响到的记录数。
    2. 执行查询返回的结果是一个ResultSet对象。  ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些 行中数据的访问。
      1.  使用结果集(ResultSet)对象的访问方法获取数据: while(rs.next()){ String name = rs.getString("name") ; String pass = rs.getString(1) ; // 此方法比较高效 } 
  7. 关闭JDBC对象 操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声 明顺序相反:
    1. 关闭记录集
    2. 关闭声明
    3. 关闭连接对象
  8. 代码实例
    1. public static void main(String[] args) {
      		//声明Connection对象
      		Connection con;
      		//驱动程序名
      		String driver = "com.mysql.jdbc.Driver";
      		//URL指向要访问的数据库名mydata
      		String url = "jdbc:mysql://localhost:3306/mydata";
      		//MySQL配置时的用户名
      		String user = "root";
      		//MySQL配置时的密码
      		String password = "root";
      		//遍历查询结果集
      		try {
      			//加载驱动程序
      			Class.forName(driver);
      			//1.getConnection()方法,连接MySQL数据库!!
      			con = DriverManager.getConnection(url,user,password);
      			if(!con.isClosed())
      				System.out.println("Succeeded connecting to the Database!");
      			//2.创建statement类对象,用来执行SQL语句!!
      			Statement statement = con.createStatement();
      			//要执行的SQL语句
      			String sql = "select * from student";
      			//3.ResultSet类,用来存放获取的结果集!!
      			ResultSet rs = statement.executeQuery(sql);
      			System.out.println("-----------------");
      			System.out.println("执行结果如下所示:");  
      			System.out.println("-----------------");  
      			System.out.println(" 学号" + "\t" + " 姓名");  
      			System.out.println("-----------------");  
      			
      			String name = null;
      			String id = null;
      			while(rs.next()){
      				//获取stuname这列数据
      				name = rs.getString("stuname");
      				//获取stuid这列数据
      				id = rs.getString("stuid");
      				//首先使用ISO-8859-1字符集将name解码为字节序列并将结果存储新的字节数组中。
      				//然后使用GB2312字符集解码指定的字节数组。
      				name = new String(name.getBytes("ISO-8859-1"),"gb2312");
      				//输出结果
      				System.out.println(id + "\t" + name);
      			}
      			rs.close();
      			con.close();
      		} catch(ClassNotFoundException e) {   
      			//数据库驱动类异常处理
      			System.out.println("Sorry,can`t find the Driver!");   
      			e.printStackTrace();   
      			} catch(SQLException e) {
      			//数据库连接失败异常处理
      			e.printStackTrace();  
      			}catch (Exception e) {
      			// TODO: handle exception
      			e.printStackTrace();
      		}finally{
      			System.out.println("数据库数据成功获取!!");
      		}
      	}
      

猜你喜欢

转载自blog.csdn.net/qq_34691713/article/details/82468430