一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java語言實現對MySql數據庫中數據的增刪改查操作的代碼

Java語言實現對MySql數據庫中數據的增刪改查操作的代碼

2020-07-19 12:34i逆天耗子丶 Java教程

這篇文章主要介紹了Java語言實現對MySql數據庫中數據的增刪改查操作的代碼,實現了連接數據庫,和數據庫的增刪改查操作,有興趣的可以了解一下。

簡單說操作的步驟:

1.連接數據庫

2.將SQL語句發送到數據庫

3.執行SQL語句

這里舉個例子:

在一個數據庫中有個students表,表中有學號(Id),姓名(Name),性別(Sex),地址(Address),電話(Phone),專業(Dept)。

這里把這個表寫成一個學生信息類(Info_student)

(請先確??戳死诱f明,不然代碼有的地方可能看不明白)

要實現操縱我們首先得連接數據庫,因為每個操作都要進行連接操作,所以我們直接把連接的操作封裝在一個類中,需要連接的時候直接調用可。

數據庫連接類:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import java.sql.Connection;
import java.sql.DriverManager;
 
public class DB_Helper {
 
  public static Connection connect = null;
 
  static {
    try {
      Class.forName("com.mysql.jdbc.Driver"); // 加載MYSQL JDBC驅動程序
      // 觀察以下2個語句的差別,
      // connect =
      // DriverManager.getConnection("jdbc:mysql://localhost:3306/students", "root", "");
      connect = DriverManager.getConnection(
          "jdbc:mysql://localhost:3306/students?useUnicode=true&characterEncoding=utf-8", "root", "");
 
      System.out.println("Success loading Mysql Driver!");
    } catch (Exception e) {
      System.out.print("Error loading Mysql Driver!");
      e.printStackTrace();
    }
  }
 
  public static Connection getConnection() {
    return connect;
  }
}

數據庫已經連接了,那么接下來就是要發送SQL語句和執行語句。

發送語句用到了PreparedStatement對象和Connection對象的操作prepareStatement()

執行語句用到PreparedStatement對象的操作execute()

提示:以下是一些對象的說明,可以先看代碼,遇到的時候再回來看。

************************

PreparedStatement

表示預編譯的 SQL 語句的對象。

SQL 語句被預編譯并存儲在 PreparedStatement 對象中。然后可以使用此對象多次高效地執行該語句。

*************************

Connection

與特定數據庫的連接(會話)。在連接上下文中執行 SQL 語句并返回結果。

Connection 對象的數據庫能夠提供描述其表、所支持的 SQL 語法、存儲過程、此連接功能等等的信息。

**********************

以下代碼是要實現在數據庫中實現學生信息的增刪改查操作。

一、增

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public void add(Info_student student) throws SQLException{
  // 與特定數據庫的連接(會話)。
  Connection conn = (Connection) DB_Helper.getConnection();
   
  String sql = "insert into student(Sno,Sname,Ssex,Saddress,Sphone,Sdept) values(?,?,?,?,?,?)";
   
  // 創建一個 PreparedStatement 對象來將參數化的 SQL 語句發送到數據庫。
  PreparedStatement ptmt = (PreparedStatement) conn.prepareStatement(sql);
  /*
   * void setBigDecimal(int parameterIndex,BigDecimal x)throws SQLException
   * 將指定參數設置為給定 Java String 值。在將此值發送給數據庫時,驅動程序將它轉換成一個 SQL VARCHAR
   * 或 LONGVARCHAR 值(取決于該參數相對于驅動程序在 VARCHAR 值上的限制的大?。?。
   */
  ptmt.setString(1, student.getId());
  ptmt.setString(2, student.getName());
  ptmt.setString(3, student.getSex());
  ptmt.setString(4, student.getAddress());
  ptmt.setString(5, student.getPhone());
  ptmt.setString(6, student.getDept());
   
  // 在此 PreparedStatement 對象中執行 SQL 語句
  ptmt.execute();
}

二、刪

?
1
2
3
4
5
6
7
8
9
public void delete(String id) throws SQLException{
  Connection conn = (Connection) DB_Helper.getConnection();
  String sql = "delete from student where Sno=?";
  PreparedStatement ptmt = (PreparedStatement) conn.prepareStatement(sql);
   
  ptmt.setString(1, id);
   
  ptmt.execute();
}

三、改

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public void update(Info_student student) throws SQLException{
  Connection conn = (Connection) DB_Helper.getConnection();
  String sql = "update student set Sname=?,Ssex=?,Saddress=?,Sphone=?,Sdept=? where Sno=?";
 
  PreparedStatement ptmt = (PreparedStatement) conn.prepareStatement(sql);
  ptmt.setString(1, student.getName());
  ptmt.setString(2, student.getSex());
  ptmt.setString(3, student.getAddress());
  ptmt.setString(4, student.getPhone());
  ptmt.setString(5, student.getDept());
  ptmt.setString(6, student.getId());
 
  ptmt.execute();
}

四、查

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
public Info_student search(String id) throws SQLException{
  Info_student student = null;
   
  Connection conn = (Connection) DB_Helper.getConnection();
  String sql = "select * from student where Sno=?";
  PreparedStatement ptmt = (PreparedStatement) conn.prepareStatement(sql);
   
  ptmt.setString(1, id);
   
  /*
   * ResultSet executeQuery()throws SQLException
   * 在此 PreparedStatement 對象中執行 SQL 查詢,并返回該查詢生成的 ResultSet 對象。
   */
   
  /*
   * public interface ResultSet extends Wrapper
   * 表示數據庫結果集的數據表,通常通過執行查詢數據庫的語句生成。 ResultSet 對象具有指向其當前數據行的光標。
   * 最初,光標被置于第一行之前。next 方法將光標移動到下一行;因為該方法在 ResultSet 對象沒有下一行時
   * 返回 false,所以可以在 while 循環中使用它來迭代結果集。
   *
   */
  ResultSet rs = ptmt.executeQuery();
 
  /*
   * boolean next()throws SQLException
   * 將光標從當前位置向前移一行。
   * ResultSet 光標最初位于第一行之前;
   * 第一次調用 next 方法使第一行成為當前行;
   * 第二次調用使第二行成為當前行,依此類推。
   */
 
  while(rs.next()){
    student = new Info_student();
    student.setId(rs.getString("Sno"));
    student.setName(rs.getString("Sname"));
    student.setSex(rs.getString("Ssex"));
    student.setAddress(rs.getString("Saddress"));
   
    student.setPhone(rs.getString("Sphone"));
    student.setDept(rs.getString("Sdept"));
  }
  return student;
   
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://blog.csdn.net/qq_34594236/article/details/53894905

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日韩精品在线一区二区 | 男人的天堂久久爱 | 亚洲h片 | 亚洲国产天堂久久综合网站 | 国产综合欧美日韩视频一区 | 美女扒开两腿露出尿口的视频 | 99精品视频在线观看re | 久久久免费观成人影院 | 四虎永久在线精品国产馆v视影院 | 亚洲一区二区三区久久精品 | 国产免费一区二区三区 | 欧美日韩专区国产精品 | 亚洲伦理视频 | 别停好爽好深好大好舒服视频 | 狠狠色96视频 | 动漫美女被褥吸奶漫画漫画 | 午夜桃色剧场 | 青青国产成人久久激情91麻豆 | 韩国女主播一区二区视频 | 九九爱这里只有精品 | 成人午夜剧场 | 日本高清在线观看天码888 | 欧美一级精品 | 男人插曲女人身体 | 午夜福利理论片高清在线 | 欧美精品国产一区二区 | 男人的j插入女人的p | 猫扑俩性 | 女女宿舍互慰h文小说 | 236zz宅宅最新伦理 | 免费一级欧美大片在线观看 | 欧美综合另类 | 欧美精品国产一区二区三区 | 2012在线观看免费视频大全 | 国产成人精品福利色多多 | 国产欧美日韩精品高清二区综合区 | 欧美一区二区三区四区视频 | 日韩精品视频在线观看免费 | 性关系视频网站 | 国产亚洲精品久久yy5099 | 久久精品国产免费播高清无卡 |