JDBC最简单最直接的查询使用方式
话不多说,先上代码,看看写法!
public class Demo06 {
public static void main(String[] args) {
try {
//先加载我们的驱动并注册,这步操作在较新的mysql驱动中可以省略
Class.forName("com.mysql.jdbc.Driver");
//通过DiverManager类的静态方法获取Connection连接接口
Connection connection = DriverManager.getConnection("jdbc:mysql://localhost/db3","root","root");
//通过connection获取我们的执行sql语句的Satement接口
Statement statement = connection.createStatement();
//创建需要执行的sql语句
String sql = "SELECT * FROM user ";
//调用satement接口中的executeQuery方法执行sql语句,并返回一个resultSet接口
ResultSet resultSet = statement.executeQuery(sql);
//遍历resultSet获取值
while (resultSet.next()) {
//通过resultSet的getXxx的方法,传递sql中的字段名来获取对应的结果集
String username = resultSet.getString("username");
String password = resultSet.getString("password");
//拼接字符串进行输出
System.out.println("username="+username+";password="+password);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
其实这个代码写的非常的少,很多的方法也都没有去具体的一一写出。这里的代码只是简单的进行了JDBC连接MYSQL的一个获取结果集的一个方式。当然,后期的我们肯定不会这样写,这个只是帮助我们了解底层的实现问题。首先我们需要导入一个包,那么就是mysql写的一个实现类,里面是以JDBC接口实现的具体方法,这就是我们平常说的面向接口编程。只要对我们的接口进行编写,然后具体的类实现由各大厂商进行编写,即统一了规范。这样不管是我们使用的是mysql不是orcale都是可以使用一套接口,完成我们的代码。这里我们首先是使用了Class.forname()的方式加载并注册了我们的驱动,这个其实在后期的新版本的mysql中,已经不需要再去加载注册了,但是以往的程序员们,都是写的,我们不仅是为了遵循规范,更是为了代码能向下兼容。然后使用到了DiverManager类中的一个静态方法,获取到我们与数据库连接的一个对象。里面的三个参数分别是:连接mysql的协议、mysql账号、mysql密码;然后我们通过获取的连接对象拿到我们可以执行sql语句的satement对象,只有获取到这个对象,我们才可以执行ExecuteUpdate和executeQuery,前者是负责sql的DML语句,即增删改,返回的是int类型,代表的是sql中影响的行数。后者是负责sql的DQL语句,即查询语句,返回的是一个ResultSet接口,需要调用next的方法,获取到我们的每一行数据,有下一条数据返回true,没有的话返回的是false,所以我们使用while来遍历我们的结果!