JDBC實現(xiàn)數(shù)據(jù)庫增刪改查功能
JDBC,簡單點來說,就是用Java操作數(shù)據(jù)庫,下面簡單介紹怎么實現(xiàn)數(shù)據(jù)庫的增刪改查功能。
1、添加數(shù)據(jù)
package cn.itcast.jdbc;
import java.sql.*;
public class JdbcDemo2 {
public static void main(String[] args) {
Connection connection = null;
PreparedStatement preparedStatement = null;
try {
//1、注冊驅(qū)動
Class.forName("com.mysql.jdbc.Driver");
//2、定義sql
String sql = "insert into course values(?,?,?)";
//3、獲取Connection對象
//student表示你要操作的數(shù)據(jù)庫
//如果是locakhost:3306,也可以簡寫為"jdbc:mysql:///student"
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/student","root","root");
//4、獲取執(zhí)行sql的對象
preparedStatement = connection.prepareStatement(sql);
//傳入?yún)?shù)
preparedStatement.setInt(1,5);
preparedStatement.setString(2,"JavaWeb");
preparedStatement.setInt(3,88);
//5、執(zhí)行sql
int count = preparedStatement.executeUpdate();
//6、處理結(jié)果
System.out.println(count);
if (count > 0) {
System.out.println("添加成功");
} else {
System.out.println("添加失敗");
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
//7、釋放資源
//避免空指針異常
if (preparedStatement != null) {
try {
preparedStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
2、刪除數(shù)據(jù)
package cn.itcast.jdbc;
import java.sql.*;
public class JdbcDemo4 {
public static void main(String[] args) {
Connection connection = null;
PreparedStatement preparedStatement = null;
try {
//1、注冊驅(qū)動
Class.forName("com.mysql.jdbc.Driver");
//2、獲取連接對象
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/student","root","root");
//3、定義sql
String sql = "delete from course where cno = ?";
//4、獲取執(zhí)行sql對象
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setInt(1,5);
//5、執(zhí)行sql
int count = preparedStatement.executeUpdate();
//6、處理結(jié)果
System.out.println(count);
if (count > 0) {
System.out.println("刪除成功");
} else {
System.out.println("刪除失敗");
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
//7、釋放資源
if (preparedStatement != null) {
try {
preparedStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
3、修改數(shù)據(jù)
package cn.itcast.jdbc;
import java.sql.*;
public class JdbcDemo3 {
public static void main(String[] args) {
Connection connection = null;
PreparedStatement preparedStatement = null;
try {
//1、注冊驅(qū)動
Class.forName("com.mysql.jdbc.Driver");
//2、獲取連接對象
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/student", "root", "root");
//3、定義sql
String sql = "update course set period = ? where cno = ?";
//4、獲取執(zhí)行sql對象
preparedStatement = connection.prepareStatement(sql);
//設置參數(shù)
preparedStatement.setInt(1,90);
preparedStatement.setInt(2,1);
//5、執(zhí)行sql
int count = preparedStatement.executeUpdate();
//6、處理結(jié)果
System.out.println(count);
if (count > 0) {
System.out.println("修改成功!");
} else {
System.out.println("修改失?。?);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
//7、釋放資源
if (preparedStatement != null) {
try {
preparedStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
4、查詢數(shù)據(jù)
package cn.itcast.jdbc;
import cn.itcast.domain.Course;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class JDBCDemo5 {
/**
* 查詢所有Course對象
* @return
*/
public static void main(String[] args) {
Connection connection = null;
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
List<Course> list = null;
try {
//1、注冊驅(qū)動
Class.forName("com.mysql.jdbc.Driver");
//2、獲取連接
connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/student", "root", "root");
//3、定義sql
String sql = "select * from course";
//4、獲取執(zhí)行sql的對象
preparedStatement = connection.prepareStatement(sql);
//5、執(zhí)行sql
resultSet = preparedStatement.executeQuery();
//6、遍歷結(jié)果集,封裝對象,裝載集合
Course course = null;
list = new ArrayList<Course>();
while (resultSet.next()) {
//獲取數(shù)據(jù)
int cno = resultSet.getInt("cno");
String cname = resultSet.getString("cname");
int period = resultSet.getInt("period");
//創(chuàng)建Course對象并賦值
course = new Course();
course.setCno(cno);
course.setCname(cname);
course.setPeriod(period);
//裝載集合
list.add(course);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (resultSet != null) {
try {
resultSet.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (preparedStatement != null) {
try {
preparedStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
System.out.println(list);
}
}
我們可以發(fā)現(xiàn),增刪改的操作基本都是差不多的語句,且執(zhí)行sql的語句都是一樣的,都是preparedStatement.executeUpdate()。但查詢操作就有所不同了,返回的是一個結(jié)果集,且執(zhí)行sql的語句就是preparedStatement.executeQuery()。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Springboot?jpa使用sum()函數(shù)返回結(jié)果如何被接收
這篇文章主要介紹了Springboot?jpa使用sum()函數(shù)返回結(jié)果如何接收,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02
MyBatis批量插入/修改/刪除MySql數(shù)據(jù)
這篇文章主要給大家介紹了關(guān)于MyBatis批量插入/修改/刪除MySql數(shù)據(jù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-05-05
springboot3.x版本集成log4j遇到Logging?system?failed?to?initial
使用Springboot?3.x集成Log4j時可能會遇到版本沖突的問題,這通常可以通過檢查Maven依賴樹來識別,一旦發(fā)現(xiàn)沖突,將Log4j的版本統(tǒng)一更新到最新的兼容版本,例如2.21.1,即可解決問題,此方法有效解決了日志打印錯誤,是處理類似問題的一個實用參考2024-09-09
java 利用java反射機制動態(tài)加載類的簡單實現(xiàn)
下面小編就為大家?guī)硪黄猨ava 利用java反射機制動態(tài)加載類的簡單實現(xiàn)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-09-09

