package com.lesson12.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/*
* 了解JDBC更新与查询
* */
/*
* 总结:
* 1.结果集:ResultSet res=stmt.executeQuery(sql)
* 结果集是一种存储数据的类型,可抽象成一张表,只能逐行进行操作
* 2.Statement接口执行sql语句的方法:
* (1)int rows=stmt.executeUpdate(sql);
* (2)ResultSet res=stmt.executeQuery(sql);
* 3.ResultSet常用方法:
* (1)boolean has=res.next()获取下一行记录
* (2)XXXX values=rs.getXXXX("字段名")
* 获取结果集中某字段的值(XXX表示字段的类型)
* */
public class Query {
public static void main(String args[]){
String url = null;
String user = null;
String password = null;
Connection conn = null;
Statement stmt = null;
try{
//1.加载驱动
Class.forName("com.mysql.jdbc.Driver");
//2.创建连接对象
url = "jdbc:mysql://localhost:3308/test";
conn = DriverManager.getConnection(url,"root","mysql");
//3.创建语句对象
stmt = conn.createStatement();
//4.执行语句:Statement接口提供了多种执行SQL语句的方法(以下只介绍两种)
/*
* 方法:public int executeUpdate(String sql)
* 对象:Statement
* 功能:执行sql更新语句,执行数据库的增加、删除和修改操作
* 参数:String sql 更新语句,如insert、update、delete等
* 返回值:int 被影响的行数,即数据库中被更新的记录数
* */
String insertSql = "insert into student values (5,'孙三',21)";
int rows = stmt.executeUpdate(insertSql);
System.out.println("被影响的行数是" + rows);
/*
* 方法:ResultSet executeQuery(String sql)
* 对象:Statement
* 功能:执行sql查询语句,得到查询结果集合
* 参数:String sql select查询语句
* 返回值:ResultSet 查询结果集合
* */
String selectSql = "select * from student";
ResultSet res = stmt.executeQuery(selectSql);
//ResultSet作为一种类型,用于存储数据库中的记录的集合,只能逐行操作
System.out.println("查询结果是"+res);
//查询结果是com.mysql.jdbc.ResultSet@1bab2a6
/*
* 读取查询后结果集中记录的具体内容(先获取行,再获取列,即可得单元格内容)
* ---------------------------------------
* 方法:boolean next()
* 对象:ResultSet
* 功能:用于获取结果集的下一行(下一个记录)
* 参数:无
* 返回值:boolean 表示是否能够获取到记录
* 【注意】
* 在得到查询结果集res之后,在要查询第一行结果之前,必须先使用rs.next(),
* 因为查询结果集时,res默认不指向结果集第一行,而是第一行之前(默认before
* the first row),如果结果集为空集,没有第一行
* ----------------------------------------
* 方法:XXXX getXXXX(String columnName)
* 对象:ResultSet
* 功能:获取某行记录中的指定字段(即获取列的内容)
* 参数:String columnName 字段名
* 返回值:XXXX 字段的内容
* */
while(res.next()){ //每次next()一次,将获取下一条记录
//根据字段名获取字段值
int Sno = res.getInt("Sno");
String Sname = res.getString("Sname");
int age = res.getInt("age");
System.out.println("获取到记录:Sno="+Sno+";Sname="+Sname+";age="+age);
}
}catch(Exception e){
e.printStackTrace();
}
}
}
Java复习笔记16【JDBC更新与查询】
最新推荐文章于 2019-12-27 17:05:29 发布