目录
一.综合上述7个步骤,实现向student表中插入一条数据。
1、注册驱动
2 、获取数据库连接对象
3、获取发送SQL语句对象
4、编写SQL语句,SQL语句最好是先在SQLyog里面写一遍并运行一下,保证SQL语句没有语法
错误,这里sid是自增长,所以不需要写
5、执行SQL语句
DML语句:对于插入数据、修改数据、删除数据操作,都调用executeUpdate()方法,返回受影响
的行数(int类型)
6、处理结果,如果返回的受影响行数不为0,说明数据插入成功
7、释放资源,遵循“先开后关,后开先关”的原则
二.综合上述7个步骤,实现根据学号sid删除数据库表中一条数据。
三.综合上述7个步骤,实现根据学号sid删除数据库表中一条数据。
四.结果集
4.1接受结果集
4.2.遍历ResultSet结果集中的数据
棒棒有言:生活不可能一帆风顺,总会有波折,总会有险阻。生活是个爱开玩笑的孩子,也许今天给你所有,明天又会让你一无所有,无需烦恼,该来的总会来,再黑的夜晚也会有黎明到来的那一刻。不管生活有多么曲折,只要拥有幸福的态度就能挺过漫漫长夜,就能迎来美好的明天。
本章简介:JDBC(Java Data Base Connectivity,java数据库连接),是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC,是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。
有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBC API,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。
简单地说,JDBC 可做三件事:与数据库建立连接、发送 操作数据库的语句并处理结果。
作者:get棒棒给个关注呗
重要:请给个关注哦!
package com.cxyzxc.www.examples01;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
/**
* JDBC连接数据 实现向数据库jdbcdatabase里student表中插入一条数据
*
* @author 程序员张小厨
*
*/
public class Jdbc01InsertStudent {
public static void main(String[] args) {
Connection connection = null;
Statement statement = null;
try {
// 1、注册驱动
Class.forName("com.mysql.jdbc.Driver");
// 2 、获取数据库连接对象
String url = "jdbc:mysql://127.0.0.1:3306/jdbcdatabase";
String user = "root";
String password = "123456";
connection = DriverManager.getConnection(url, user, password);
// 3、获取发送SQL语句对象
statement = connection.createStatement();
// 4、编写SQL语句,SQL语句最好是先在SQLyog里面写一遍并运行一下,保证SQL语句没有语法错误,这里sid是自增长,所以不需要写
String sql = "INSERT INTO `student`(`name`,`age`,`gender`,`phone`,`identitycard`,`address`) VALUES ('王五',21,'男','13825869876','340825200109151928','安徽合肥包河区');";
// 5、执行SQL语句
// DML语句:对于插入数据、修改数据、删除数据操作,都调用executeUpdate()方法,返回受影响的行数(int类型)
// DQL语句:对于查询数据,调用executeQuery()方法,返回一个结果集(ResultSet类型)
int result = statement.executeUpdate(sql);
// 6、处理结果,如果返回的受影响行数不为0,说明数据插入成功
if (result != 0) {
System.out.println("数据插入成功");
} else {
System.out.println("数据插入失败");
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 7、释放资源,遵循“先开后关,后开先关”的原则
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (statement != null) {
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
1、注册驱动
2 、获取数据库连接对象
3、获取发送SQL语句对象
4、编写SQL语句,SQL语句最好是先在SQLyog里面写一遍并运行一下,保证SQL语句没有语法
错误
5、执行SQL语句
DML语句:对于插入数据、修改数据、删除数据操作,都调用executeUpdate()方法,返回受影响
的行数(int类型)DQL语句:对于查询数据,调用executeQuery()方法,返回一个结果集
(ResultSet类型)
6、处理结果,如果返回的受影响行数不为0,说明数据删除成功
7、释放资源,遵循“先开后关,后开先关”的原则
package com.cxyzxc.www.examples01;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
/**
* JDBC连接数据 实现删除数据库jdbcdatabase里student表中的一条数据
*
* @author 程序员张小厨
*
*/
public class Jdbc02DeleteStudent {
public static void main(String[] args) {
Connection connection = null;
Statement statement = null;
try {
// 1、注册驱动
Class.forName("com.mysql.jdbc.Driver");
// 2 、获取数据库连接对象
String url = "jdbc:mysql://127.0.0.1:3306/jdbcdatabase";
String user = "root";
String password = "123456";
connection = DriverManager.getConnection(url, user, password);
// 3、获取发送SQL语句对象
statement = connection.createStatement();
// 4、编写SQL语句,SQL语句最好是先在SQLyog里面写一遍并运行一下,保证SQL语句没有语法错误
String sql = "DELETE FROM `student` WHERE `sid` = 1003;";
// 5、执行SQL语句
// DML语句:对于插入数据、修改数据、删除数据操作,都调用executeUpdate()方法,返回受影响的行数(int类型)
// DQL语句:对于查询数据,调用executeQuery()方法,返回一个结果集(ResultSet类型)
int result = statement.executeUpdate(sql);
// 6、处理结果,如果返回的受影响行数不为0,说明数据删除成功
if (result != 0) {
System.out.println("数据删除成功");
} else {
System.out.println("数据删除失败");
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 7、释放资源,遵循“先开后关,后开先关”的原则
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (statement != null) {
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
1、注册驱动
2 、获取数据库连接对象
3、获取发送SQL语句对象
4、编写SQL语句,SQL语句最好是先在SQLyog里面写一遍并运行一下,保证SQL语句没有语法
错误
5、执行SQL语句
DML语句:对于插入数据、修改数据、删除数据操作,都调用executeUpdate()方法,返回受影响
的行数(int类型)DQL语句:对于查询数据,调用executeQuery()方法,返回一个结果集
(ResultSet类型)
6、处理结果,如果返回的受影响行数不为0,说明数据删除成功
7、释放资源,遵循“先开后关,后开先关”的原则
package com.cxyzxc.www.examples01;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
/**
* JDBC连接数据 实现修改数据库jdbcdatabase里student表中的一条数据
*
* @author 程序员张小厨
*
*/
public class Jdbc03UpdateStudent {
public static void main(String[] args) {
Connection connection = null;
Statement statement = null;
try {
// 1、注册驱动
Class.forName("com.mysql.jdbc.Driver");
// 2 、获取数据库连接对象
String url = "jdbc:mysql://127.0.0.1:3306/jdbcdatabase";
String user = "root";
String password = "123456";
connection = DriverManager.getConnection(url, user, password);
// 3、获取发送SQL语句对象
statement = connection.createStatement();
// 4、编写SQL语句,SQL语句最好是先在SQLyog里面写一遍并运行一下,保证SQL语句没有语法错误
String sql = "UPDATE `student` SET `name`='李红',`age`=19,`gender`='女',`phone`='13111223344',`identitycard`='340825200308151936',`address`='安徽合肥高新区' WHERE `sid`=1002;";
// 5、执行SQL语句
// DML语句:对于插入数据、修改数据、删除数据操作,都调用executeUpdate()方法,返回受影响的行数(int类型)
// DQL语句:对于查询数据,调用executeQuery()方法,返回一个结果集(ResultSet类型)
int result = statement.executeUpdate(sql);
// 6、处理结果,如果返回的受影响行数不为0,说明数据修改成功
if (result != 0) {
System.out.println("数据修改成功");
} else {
System.out.println("数据修改失败");
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 7、释放资源,遵循“先开后关,后开先关”的原则
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (statement != null) {
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
JDBC中执行DQL查询语句后,使用ResultSet存放查询到的结果集数据。
ResultSet resultSet = statement.executeQuery(String sql);
1、注册驱动
2 、获取数据库连接对象
3、获取发送SQL语句对象
4、编写SQL语句,SQL语句最好是先在SQLyog里面写一遍并运行一下,保证SQL语句没有语法
错误String sql = "SELECT * FROM `student` WHERE `sid`= 1002;";
5、执行SQL语句
// DML语句:对于插入数据、修改数据、删除数据操作,都调用executeUpdate()方法,返回受影
响的行数(int类型) DQL语句:对于查询数据,调用executeQuery()方法,返回一个结果集
(ResultSet类型)ResultSet resultSet = statement.executeQuery(sql);
ResultSet以表(table)结构进行临时结果的存储,需要通过JDBC API将其中的数据依次获取。
数据行指针:初始位置在第一行数据前,每调用一次boolean next()方法ResultSet的指针向下移动
一行,结果为true,表示当前行有数据。
*resultSet.getXxx(int columnIndex):根据字段的索引顺序获取表中字段的数据,索引从1开 始,
Xxx表示字段类型
*resultSet.getXxx(String columnLabel):根据字段的名称获取表中字段的数据。
6、处理结果,对返回的resultSet结果集进行处理,需要将结果集中的数据取出来
查询一条数据时,使用if判断resultSet.next()为true,说明resultSet结果集中有一条数据,
如果resultSet.next()为false,说明resultSet结果集中没有数据。
查询所有数据时,使用while循环判断resultSet.next()为true,说明resultSet结果集中还有
一条数据,如果resultSet.next()为false,说明resultSet结果集中没有数据了。
查询一条数据,根据记录中字段的索引获取字段数据
if (resultSet.next()) {
//根据记录中字段的索引获取字段数据,字段索引从1开始
int sid = resultSet.getInt(1);
String name = resultSet.getString(2);
int age = resultSet.getInt(3);
String gender = resultSet.getString(4);
String phone = resultSet.getString(5);
String identitycard = resultSet.getString(6);
String address = resultSet.getString(7);
System.out.println(sid + "-" + name + "-" + age + "-" + gender+ "-" + phone + "-" + identitycard + "-" + address);
}
查询一条数据,根据记录中字段的名称获取字段数据
if (resultSet.next()) {
//根据记录中字段的名称获取字段数据
int sid = resultSet.getInt("sid");
String name = resultSet.getString("name");
int age = resultSet.getInt("age");
String gender = resultSet.getString("gender");
String phone = resultSet.getString("phone");
String identitycard = resultSet.getString("identitycard");
String address = resultSet.getString("address");
System.out.println(sid + "-" + name + "-" + age + "-" + gender+ "-" + phone + "-" + identitycard + "-" + address);
}
查询所有数据,根据记录中字段的索引获取字段数据
while (resultSet.next()) {
//根据记录中字段的索引获取字段数据,字段索引从1开始
int sid = resultSet.getInt(1);
String name = resultSet.getString(2);
int age = resultSet.getInt(3);
String gender = resultSet.getString(4);
String phone = resultSet.getString(5);
String identitycard = resultSet.getString(6);
String address = resultSet.getString(7);
System.out.println(sid + "-" + name + "-" + age + "-" + gender+ "-" + phone + "-" + identitycard + "-" + address);
}
查询所有数据,根据记录中字段的名称获取字段数据
while (resultSet.next()) {
//根据记录中字段的名称获取字段数据
int sid = resultSet.getInt("sid");
String name = resultSet.getString("name");
int age = resultSet.getInt("age");
String gender = resultSet.getString("gender");
String phone = resultSet.getString("phone");
String identitycard = resultSet.getString("identitycard");
String address = resultSet.getString("address");
System.out.println(sid + "-" + name + "-" + age + "-" + gender+ "-" + phone + "-" + identitycard + "-" + address);
}