JDBC
结果集对象(ResultSet)
再进行selsct操作时,需要用到executeQuery()方法,该方法的返回值就是一个结果集对象,该对象封装的是查询对象(列表)。
方法:
- next():游标(默认指向列名行)向下走一行,返回值为boolean类型
- getXxx(参数):获取数据
Xxx代表数据类型,如:getInt()
参数有两种:列的编号(int)从1开始、列的名称(String):如name.
看方法的使用:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class prcatice2 {
public static void main(String[] args){
Statement statement=null;
Connection connection=null;
ResultSet rs=null;
try{
//1.注册驱动
Class.forName("com.mysql.jdbc.Driver");
//2.定义sql
String sql="select * from student";
//3.获取Connection对象 ?useUnicode=true&characterEncoding=utf-8是用来解决乱码的
connection= DriverManager.getConnection("jdbc:mysql://localhost:3306/text?useUnicode=true&characterEncoding=utf-8","root","root");
//4.获取执行sql的对象 Statement
statement=connection.createStatement();
//5.执行sql
rs=statement.executeQuery(sql);
//6.处理结果
while (rs.next()){ //判断是否有数据
//有数据便获取数据然后输出
String name=rs.getString("name");
int id=rs.getInt("id");
int age=rs.getInt("age");
System.out.println(name+" "+id+" "+age);
}
}catch (Exception e){
e.printStackTrace();
}finally {
if (rs!=null){
try {
rs.close();
}catch (Exception e){
e.printStackTrace();
}
}
if(statement!=null){
try {
statement.close();
}catch (Exception e){
e.printStackTrace();
}
}
if (connection!=null) {
try {
connection.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
insert、delete、update、select的使用
1.insert:
先准备号数据库text和一张表student:
表中有如下几个字段:
然后再表中简单的加入一天记录:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
public class practice1 {
public static void main(String[] args){
Statement statement=null;
Connection connection=null;
try{
//1.注册驱动
Class.forName("com.mysql.jdbc.Driver");
//2.定义sql
String sql="insert into student values('张三',12305,18)";
//3.获取Connection对象 ?useUnicode=true&characterEncoding=utf-8是用来解决乱码的
connection= DriverManager.getConnection("jdbc:mysql://localhost:3306/text?useUnicode=true&characterEncoding=utf-8","root","root");//账号和密码同为root
//4.获取执行sql的对象 Statement
statement=connection.createStatement();
//5.执行sql
int count=statement.executeUpdate(sql);
//6.处理结果
System.out.println(count);
}catch (Exception e){
e.printStackTrace();
}finally {//资源的释放
if(statement!=null){
try {
statement.close();
}catch (Exception e){
e.printStackTrace();
}
}
if (connection!=null){
try {
connection.close();
}catch (Exception e){
e.printStackTrace();
}
}
}
}
}
插入之后如图。需要注意的是:sql语句的书写,对语法要求比较严格,还有就是资源的释放,最后根据打印结果判断是否添加成功(大于0就说明成功了)
2.update:
执行前面的代码有很大冗余不同的只有sql语句,只需要将上述代码中的sql语句改为:
String sql="update student set age=20 where id=12305";
即可,修改结果如下:
3.delete:
同样删除操作的sql:
String sql="delete from student where id=12305";
当打印结果为1时代表运行成功,结果如下:
4.select
在使用select语句时除了sql语句的不同之外,调用的方法也不同,使用的时executeQuery()方法,该方法返回一个结果集对象,然后跟循环输出结果即可。