欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JDBC實(shí)現(xiàn)數(shù)據(jù)庫增刪改查功能

 更新時(shí)間:2021年07月04日 14:23:40   作者:跑起來要帶風(fēng)!  
這篇文章主要為大家詳細(xì)介紹了JDBC實(shí)現(xiàn)數(shù)據(jù)庫增刪改查功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

JDBC,簡(jiǎn)單點(diǎn)來說,就是用Java操作數(shù)據(jù)庫,下面簡(jiǎn)單介紹怎么實(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、注冊(cè)驅(qū)動(dòng)
            Class.forName("com.mysql.jdbc.Driver");
            //2、定義sql
            String sql = "insert into course values(?,?,?)";
            //3、獲取Connection對(duì)象
            //student表示你要操作的數(shù)據(jù)庫
            //如果是locakhost:3306,也可以簡(jiǎn)寫為"jdbc:mysql:///student"
            connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/student","root","root");
            //4、獲取執(zhí)行sql的對(duì)象
            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、注冊(cè)驅(qū)動(dòng)
            Class.forName("com.mysql.jdbc.Driver");

            //2、獲取連接對(duì)象
            connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/student","root","root");

            //3、定義sql
            String sql = "delete from course where cno = ?";

            //4、獲取執(zhí)行sql對(duì)象
            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、注冊(cè)驅(qū)動(dòng)
            Class.forName("com.mysql.jdbc.Driver");

            //2、獲取連接對(duì)象
            connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/student", "root", "root");

            //3、定義sql
            String sql = "update course set period = ? where cno = ?";

            //4、獲取執(zhí)行sql對(duì)象
            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對(duì)象
     * @return
     */
    public static void main(String[] args) {
        Connection connection = null;
        PreparedStatement preparedStatement = null;
        ResultSet resultSet = null;
        List<Course> list = null;
        try {
            //1、注冊(cè)驅(qū)動(dòng)
            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的對(duì)象
            preparedStatement = connection.prepareStatement(sql);
            //5、執(zhí)行sql
            resultSet = preparedStatement.executeQuery();
            //6、遍歷結(jié)果集,封裝對(duì)象,裝載集合
            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對(duì)象并賦值
                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()。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java中不定參數(shù)用法小結(jié)

    Java中不定參數(shù)用法小結(jié)

    在Java中,不定參數(shù)是指方法的參數(shù)數(shù)量可以變化的情況,本文主要介紹了Java中不定參數(shù)用法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-12-12
  • 關(guān)于RocketMQ使用事務(wù)消息

    關(guān)于RocketMQ使用事務(wù)消息

    RocketMQ是一種提供消息隊(duì)列服務(wù)的中間件,也稱為消息中間件,是一套提供了消息生產(chǎn)、存儲(chǔ)、消費(fèi)全過程API的軟件系統(tǒng)。消息即數(shù)據(jù)。一般消息的體量不會(huì)很大,需要的朋友可以參考下
    2023-05-05
  • Java使用Freemarker頁面靜態(tài)化生成的實(shí)現(xiàn)

    Java使用Freemarker頁面靜態(tài)化生成的實(shí)現(xiàn)

    這篇文章主要介紹了Java使用Freemarker頁面靜態(tài)化生成的實(shí)現(xiàn),頁面靜態(tài)化是將原來的動(dòng)態(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源碼詳解

    這篇文章主要介紹了Netty進(jìn)階之EventExecutorGroup源碼詳解,EventExecutorGroup繼承了JDK的ScheduledExecutroService,那么它就擁有了執(zhí)行定時(shí)任務(wù),執(zhí)行提交的普通任務(wù),需要的朋友可以參考下
    2023-11-11
  • JUnit中獲取測(cè)試類及方法的名稱實(shí)現(xiàn)方法

    JUnit中獲取測(cè)試類及方法的名稱實(shí)現(xiàn)方法

    這篇文章主要介紹了JUnit中獲取測(cè)試類及方法的名稱實(shí)現(xiàn)方法,本文使用了JUnit中提供的TestName實(shí)現(xiàn),不過還有一些編程細(xì)節(jié)需要注意,需要的朋友可以參考下
    2015-06-06
  • Java中的靜態(tài)內(nèi)部類詳解及代碼示例

    Java中的靜態(tài)內(nèi)部類詳解及代碼示例

    這篇文章主要介紹了Java中的靜態(tài)內(nèi)部類詳解及代碼示例,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-10-10
  • java中Path和ClassPath用法比較

    java中Path和ClassPath用法比較

    在本篇文章里小編給大家分享了關(guān)于java中Path和ClassPath用法比較內(nèi)容,有需要的朋友們學(xué)習(xí)下。
    2019-01-01
  • 解決JAVA8 Collectors.toMap value為null報(bào)錯(cuò)的問題

    解決JAVA8 Collectors.toMap value為null報(bào)錯(cuò)的問題

    這篇文章主要介紹了解決JAVA8 Collectors.toMap value為null報(bào)錯(cuò)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • Java?靜態(tài)代理與動(dòng)態(tài)代理解析

    Java?靜態(tài)代理與動(dòng)態(tài)代理解析

    這篇文章主要介紹了Java?靜態(tài)代理與動(dòng)態(tài)代理解析,關(guān)于靜態(tài)代理與動(dòng)態(tài)代理,一直是比較困擾很多新人開發(fā),但實(shí)際我們開發(fā)中,小到寫的某個(gè)工具類,大到經(jīng)常使用的Retrofit?其內(nèi)部都使用了動(dòng)態(tài)代理,所以這篇文章從基礎(chǔ)到源碼解析,以便簡(jiǎn)單理解靜態(tài)代理與Jdk中的動(dòng)態(tài)代理
    2022-02-02
  • JVM知識(shí)總結(jié)之垃圾收集算法

    JVM知識(shí)總結(jié)之垃圾收集算法

    本博客為讀書筆記,讀的是《深入理解Java虛擬機(jī)》一書,在看這個(gè)書的時(shí)候,最大的一個(gè)感受便是“當(dāng)初怎么就沒有好好學(xué)習(xí)操作系統(tǒng)呢,不然也不會(huì)有這么多看的云里霧里的地方了”,不過那都是過去的事了,學(xué)習(xí)最好的時(shí)刻便是現(xiàn)在,需要的朋友可以參考下
    2021-06-06

最新評(píng)論