day17-jdbc 8.ResultSet介绍

 

但是这些东西在mysql那里有问题。mysql的驱动不是很完善。getClob()、getBlob()不好使不是因为程序的问题,而是因为mysql驱动的问题,oracle驱动就没有这个问题,证明oracle比mysql高级。类型匹配没问题有这种方案,但是mysql不支持。


做注册登录的时候,表单里面有用户名和密码,一提交,提交到servlet,servlet拿到了,拿着用户名和密码上数据库查那个用户,这个sql语句执行完返回几条记录?必须得返回一条吧,不可能有两个人重名吧。

在遍历结果集时要使用if不要再使用while,而那个while是结果集里面有多条的时候。


package cn.itcast.jdbc;
import com.mysql.jdbc.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
//ResultSet介绍
public class JdbcDemo4 {
   public static void main(String[] args) throws SQLException, ClassNotFoundException {
	  
	   //1.注册驱动	  
	  Class.forName("com.mysql.jdbc.Driver");//优点是加载一次  替换registerDriver()这个方法  这个不耦合,根本就没用mysql驱动的东西 不是意味着那就不用驱动了,只是不依赖jar包

	  String url = "jdbc:mysql:///day17";
	  
	  
	  //2.获取连接对象
	  Connection con = (Connection) DriverManager.getConnection(url, "root", "");

     //3.通过连接对象获取操作sql语句的Statement
    Statement st = con.createStatement();
    //4.操作sql语句
    String sql = "select * from user";
    ResultSet rs =  st.executeQuery(sql);//ResultSet就是查询的结果,可以想象成是集合,但是它不是集合
    
    //5.遍历结果集

    

    while(rs.next()){
    	//int id = rs.getInt("id");
    	String id = rs.getString("id");
    	String username = rs.getString("username");
    	String password = rs.getString("password");
    	String email = rs.getString("email");
    	System.out.println(id+"   "+username+"   "+password+"   "+email);
    }

 //6.释放资源
    rs.close();//结果集得关
    st.close();
    con.close();
    //直接把con关闭了,数据库和程序断开了。但是statement和resultset没有及时释放,它还在内存存着。close()是释放和回收资源。
    //close()的顺序和进门出门是一样的,是进门的时候先进大门,出门的时候是最后才出大门
    //=============
   //Java可以操作数据库
   }
}
原文地址:https://www.cnblogs.com/ZHONGZHENHUA/p/6634369.html