一、得到Connection
1. 准备四大连接参数
String driverClassName = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/exam";
String username = "root";
String password = "123";
2. 加载驱动类
Class.forName(driverClassName);
3. 通过省下的三个参数调用DriverManger的getConnection(),得到连接
Connection con = DriverManager.getConnection(url, username, password);
二、得到Statement,发送select语句
1. 得到Statement对象:Connection的createStatement()方法
Statement stmt = con.createStatement();
2. 调用Statement的ResultSet rs = executeQuery(String querySql)
ResultSet rs = stmt.executeQuery("select * from emp");
三、对查询返回的“表格”进行解析!
1. 把行光标移动到第一行,可以调用next()方法完成!
ResultSet就是一张二维的表格,它内部有一个“行光标”,光标默认的位置在“第一行上方”,我们可以调用rs对象的next()方法把“行光标”向下移动一行,当第一次调 用next()方法时,“行光标”就到了第一行记录的位置,这时就可以使用ResultSet提供的getXXX(intcol)方法来获取指定列的数据了:
rs.next();//光标移动到第一行
rs.getInt(1);//获取第一行第一列的数据
当你使用rs.getInt(1)方法时,你必须可以肯定第1列的数据类型就是int类型,如果你不能肯定,那么最好使用rs.getObject(1)。在ResultSet类中提供了一系列的getXXX ()方法,比较常用的方法有:
ObjectgetObject(int col)
String getString(intcol)
int getInt(intcol)
doublegetDouble(int col)
四、关闭
与IO流一样,使用后的东西都需要关闭!关闭的顺序是先得到的后关闭,后得到的先关闭。
rs.close();
stmt.close();
con.close();
package cn.wyh.demo2;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import org.junit.Test;
public class Demo2 {
/**
* 执行查询
* @throws ClassNotFoundException
* @throws SQLException
*/
@Test
public void fun2() throws ClassNotFoundException, SQLException {
/*
* 一、得到Connection
* 二、得到Statement,发送select语句
* 三、对查询返回的“表格”进行解析!
*/
/*
* 一、得到连接
* 1. 准备四大连接参数
*/
String driverClassName = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/exam";
String username = "root";
String password = "123";
/*
* 2. 加载驱动类
*/
Class.forName(driverClassName);
/*
* 3. 通过省下的三个参数调用DriverManger的getConnection(),得到连接
*/
Connection con = DriverManager.getConnection(url, username, password);
/*
* 二、得到Statement,执行select语句
* 1. 得到Statement对象:Connection的createStatement()方法
*/
Statement stmt = con.createStatement();
/*
* 2. 调用Statement的ResultSet rs = executeQuery(String querySql)
*/
ResultSet rs = stmt.executeQuery("select * from emp");
/*
* 三、解析ResultSet
* 1. 把行光标移动到第一行,可以调用next()方法完成!
*/
while(rs.next()) {//把光标向下移动一行,并判断下一行是否存在!
int empno = rs.getInt(1);//通过列编号来获取该列的值!
String ename = rs.getString("ename");//通过列名称来获取该列的值
double sal = rs.getDouble("sal");
System.out.println(empno + ", " + ename + ", " + sal);
}
/*
* 四、关闭资源
* 倒关
*/
rs.close();
stmt.close();
con.close();//这个东东,必须要关,不关就死!
}
}