JDBC實(shí)現(xiàn)數(shù)據(jù)庫增刪改查功能
JDBC,簡單點(diǎn)來說,就是用Java操作數(shù)據(jù)庫,下面簡單介紹怎么實(shí)現(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è)置參數(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()。但查詢操作就有所不同了,返回的是一個(gè)結(jié)果集,且執(zhí)行sql的語句就是preparedStatement.executeQuery()。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Java使用Freemarker頁面靜態(tài)化生成的實(shí)現(xiàn)
這篇文章主要介紹了Java使用Freemarker頁面靜態(tài)化生成的實(shí)現(xiàn),頁面靜態(tài)化是將原來的動態(tài)網(wǎng)頁改為通過靜態(tài)化技術(shù)生成的靜態(tài)網(wǎng)頁,FreeMarker?是一個(gè)用?Java?語言編寫的模板引擎,它基于模板來生成文本輸,更多相關(guān)內(nèi)容需要的小伙伴可以參考一下2022-06-06
Netty進(jìn)階之EventExecutorGroup源碼詳解
這篇文章主要介紹了Netty進(jìn)階之EventExecutorGroup源碼詳解,EventExecutorGroup繼承了JDK的ScheduledExecutroService,那么它就擁有了執(zhí)行定時(shí)任務(wù),執(zhí)行提交的普通任務(wù),需要的朋友可以參考下2023-11-11
JUnit中獲取測試類及方法的名稱實(shí)現(xiàn)方法
這篇文章主要介紹了JUnit中獲取測試類及方法的名稱實(shí)現(xiàn)方法,本文使用了JUnit中提供的TestName實(shí)現(xiàn),不過還有一些編程細(xì)節(jié)需要注意,需要的朋友可以參考下2015-06-06
解決JAVA8 Collectors.toMap value為null報(bào)錯的問題
這篇文章主要介紹了解決JAVA8 Collectors.toMap value為null報(bào)錯的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01

