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

java jdbc連接mysql數(shù)據庫實現(xiàn)增刪改查操作

 更新時間:2016年07月10日 10:55:00   作者:Alan丶Lee  
這篇文章主要為大家詳細介紹了java jdbc連接mysql數(shù)據庫實現(xiàn)增刪改查操作,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

jdbc相信大家都不陌生,只要是個搞java的,最初接觸j2ee的時候都是要學習這么個東西的,誰叫程序得和數(shù)據庫打交道呢!而jdbc就是和數(shù)據庫打交道非?;A的一個知識,也是比較接近底層的,在實際的工作中大家用得更多的其實還是比較成熟的框架,例如Hibernate、Mybatis。

但是作為這些成熟框架的底層的jdbc卻也是我們應該去掌握的,只有了解了jdbc的增刪改查,這樣在以后如果有興趣去研究Hibernate或者Mybatis的源代碼的時候才能更好的去理解這些成熟的框架是如何去實現(xiàn)增刪改查的。

回歸正題,先來看看我們的開發(fā)環(huán)境:

Java語言、Eclipse開發(fā)工具、Mysql數(shù)據庫、Navicat數(shù)據庫可視化工具。 

開發(fā)環(huán)境的安裝搭建及使用請自己查閱資料(很簡單的),這里不詳細闡述。 

第一步,創(chuàng)建數(shù)據庫,利用Navicat數(shù)據庫可視化工具隨便建立一個數(shù)據庫,在庫中建立一張表,表里給幾個字段(記得給個id字段,唯一主鍵,自增序列),再隨便給上兩條數(shù)據便好,用來測試功能,如圖: 

第二步,打通數(shù)據庫(這個例子希望大家自己動手敲敲,耽誤不了多少時間,熟悉一下jdbc如何和數(shù)據庫打交道,故以圖示之),如圖:

第三步,改造DBUtil類,方便在dao層獲得數(shù)據庫的連接,代碼如下:

 package com.czgo.db;


import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DBUtil
{
 private static final String URL = "jdbc:mysql://127.0.0.1:3306/imooc";
 private static final String UNAME = "root";
 private static final String PWD = "root";

 private static Connection conn = null;

 static
 {
  try
  {
   // 1.加載驅動程序
   Class.forName("com.mysql.jdbc.Driver");
   // 2.獲得數(shù)據庫的連接
   conn = DriverManager.getConnection(URL, UNAME, PWD);
  }
  catch (ClassNotFoundException e)
  {
   e.printStackTrace();
  }
  catch (SQLException e)
  {
   e.printStackTrace();
  }
 }

 public static Connection getConnection()
 {
  return conn;
 }
}

第四步,創(chuàng)建實體類(如上圖,大家觀察包的分配,我們將采用MVC思想設計本實例,有關于mvc的設計思想,請大家自行學習,這里不多說)代碼如下:

package com.czgo.model;

import java.io.Serializable;

/**
 * 實體類:女神類
 * 
 * @author AlanLee
 * 
 */
public class Goddess implements Serializable
{
 private static final long serialVersionUID = 1L;

 /**
  * 唯一主鍵
  */
 private Integer id;
 /**
  * 姓名
  */
 private String name;
 /**
  * 手機號碼
  */
 private String mobie;
 /**
  * 電子郵件
  */
 private String email;
 /**
  * 家庭住址
  */
 private String address;

 public Integer getId()
 {
  return id;
 }

 public void setId(Integer id)
 {
  this.id = id;
 }

 public String getName()
 {
  return name;
 }

 public void setName(String name)
 {
  this.name = name;
 }

 public String getMobie()
 {
  return mobie;
 }

 public void setMobie(String mobie)
 {
  this.mobie = mobie;
 }

 public String getEmail()
 {
  return email;
 }

 public void setEmail(String email)
 {
  this.email = email;
 }

 public String getAddress()
 {
  return address;
 }

 public void setAddress(String address)
 {
  this.address = address;
 }
}

第五步,dao層的實現(xiàn)(這里由于是小例子沒有寫dao接口,實際工作中大型項目應該是要寫dao接口的,便于程序的維護和擴展),代碼如下:

package com.czgo.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.czgo.db.DBUtil;
import com.czgo.model.Goddess;

/**
 * 數(shù)據層處理類
 * 
 * @author AlanLee
 * 
 */
public class GoddessDao
{
 /**
  * 查詢全部女神
  * 
  * @return
  * @throws SQLException
  */
 public List<Goddess> query() throws SQLException
 {
  List<Goddess> goddessList = new ArrayList<Goddess>();

  // 獲得數(shù)據庫連接
  Connection conn = DBUtil.getConnection();

  StringBuilder sb = new StringBuilder();
  sb.append("select id,name,mobie,email,address from goddess");

  // 通過數(shù)據庫的連接操作數(shù)據庫,實現(xiàn)增刪改查
  PreparedStatement ptmt = conn.prepareStatement(sb.toString());

  ResultSet rs = ptmt.executeQuery();

  Goddess goddess = null;

  while (rs.next())
  {
   goddess = new Goddess();
   goddess.setId(rs.getInt("id"));
   goddess.setName(rs.getString("name"));
   goddess.setMobie(rs.getString("mobie"));
   goddess.setEmail(rs.getString("email"));
   goddess.setAddress(rs.getString("address"));

   goddessList.add(goddess);
  }
  return goddessList;
 }

 /**
  * 查詢單個女神
  * 
  * @return
  * @throws SQLException
  */
 public Goddess queryById(Integer id) throws SQLException
 {
  Goddess g = null;

  Connection conn = DBUtil.getConnection();

  String sql = "" + " select * from imooc_goddess " + " where id=? ";

  PreparedStatement ptmt = conn.prepareStatement(sql);

  ptmt.setInt(1, id);

  ResultSet rs = ptmt.executeQuery();

  while (rs.next())
  {
   g = new Goddess();
   g.setId(rs.getInt("id"));
   g.setName(rs.getString("name"));
   g.setMobie(rs.getString("mobie"));
   g.setEmail(rs.getString("email"));
   g.setAddress(rs.getString("address"));
  }

  return g;
 }

 /**
  * 添加女神
  * 
  * @throws SQLException
  */
 public void addGoddess(Goddess goddess) throws SQLException
 {
  // 獲得數(shù)據庫連接
  Connection conn = DBUtil.getConnection();

  String sql = "insert into goddess(name,mobie,email,address) values(?,?,?,?)";

  PreparedStatement ptmt = conn.prepareStatement(sql);

  ptmt.setString(1, goddess.getName());
  ptmt.setString(2, goddess.getMobie());
  ptmt.setString(3, goddess.getEmail());
  ptmt.setString(4, goddess.getAddress());

  ptmt.execute();
 }

 /**
  * 修改女神資料
  * 
  * @throws SQLException
  */
 public void updateGoddess(Goddess goddess) throws SQLException
 {
  Connection conn = DBUtil.getConnection();

  String sql = "update goddess set name=?,mobie=?,email=?,address=? where id=?";

  PreparedStatement ptmt = conn.prepareStatement(sql);

  ptmt.setString(1, goddess.getName());
  ptmt.setString(2, goddess.getMobie());
  ptmt.setString(3, goddess.getEmail());
  ptmt.setString(4, goddess.getAddress());

  ptmt.execute();
 }

 /**
  * 刪除女神
  * 
  * @throws SQLException
  */
 public void deleteGoddess(Integer id) throws SQLException
 {
  Connection conn = DBUtil.getConnection();

  String sql = "delete from goddess where id=?";

  PreparedStatement ptmt = conn.prepareStatement(sql);

  ptmt.setInt(1, id);

  ptmt.execute();
 }
}

第六步,控制層的實現(xiàn)(控制層在此處用來模仿控制層和界面,直接在這里構建數(shù)據,如果是界面的數(shù)據則通過請求傳遞接收參數(shù)即可,控制層的代碼大家可以根據實際情況去更改完善,這里只是給大家拋磚引玉,做個簡單的測試,時間比較緊,希望大家理解),代碼如下:

package com.czgo.action;

import java.sql.SQLException;
import java.util.List;

import com.czgo.dao.GoddessDao;
import com.czgo.model.Goddess;

/**
 * 控制層,直接在這里構建數(shù)據,界面的數(shù)據則通過請求傳遞接收即可,亦是同理
 * 
 * @author AlanLee
 * 
 */
public class GoddessAction
{
 /**
  * 新增女神
  * 
  * @param goddess
  * @throws Exception
  */
 public void add(Goddess goddess) throws Exception
 {
  GoddessDao dao = new GoddessDao();
  goddess.setName("蒼井空");
  goddess.setMobie("52220000");
  goddess.setEmail("52220000@qq.com");
  goddess.setAddress("北京紅燈區(qū)");
  dao.addGoddess(goddess);
 }

 /**
  * 查詢單個女神
  * 
  * @param id
  * @return
  * @throws SQLException
  */
 public Goddess get(Integer id) throws SQLException
 {
  GoddessDao dao = new GoddessDao();
  return dao.queryById(id);
 }

 /**
  * 修改女神
  * 
  * @param goddess
  * @throws Exception
  */
 public void edit(Goddess goddess) throws Exception
 {
  GoddessDao dao = new GoddessDao();
  dao.updateGoddess(goddess);
 }

 /**
  * 刪除女神
  * 
  * @param id
  * @throws SQLException
  */
 public void del(Integer id) throws SQLException
 {
  GoddessDao dao = new GoddessDao();
  dao.deleteGoddess(id);
 }

 /**
  * 查詢全部女神
  * 
  * @return
  * @throws Exception
  */
 public List<Goddess> query() throws Exception
 {
  GoddessDao dao = new GoddessDao();
  return dao.query();
 }

 /**
  * 測試是否成功
  * 
  * @param args
  * @throws SQLException
  */
 public static void main(String[] args) throws SQLException
 {
  GoddessDao goddessDao = new GoddessDao();

  List<Goddess> goddessList = goddessDao.query();

  for (Goddess goddess : goddessList)
  {
   System.out.println(goddess.getName() + "," + goddess.getMobie() + "," + goddess.getEmail());
  }
 }
}

最后,讓我們看一下main方法的運行結果是否成功:

這樣,一個簡單的java jdbc 連接mysql數(shù)據庫 實現(xiàn)增刪改查便完成了,大家可以在查詢的基礎上試著去做一個高級查詢,也就是多條件查詢來鞏固jdbc的使用。

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

相關文章

  • swagger注解@ApiModelProperty失效情況的解決

    swagger注解@ApiModelProperty失效情況的解決

    這篇文章主要介紹了swagger注解@ApiModelProperty失效情況的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • 用SpringBoot框架來接收multipart/form-data文件方式

    用SpringBoot框架來接收multipart/form-data文件方式

    這篇文章主要介紹了用SpringBoot框架來接收multipart/form-data文件方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Spring擴展點之BeanFactoryPostProcessor詳解

    Spring擴展點之BeanFactoryPostProcessor詳解

    這篇文章主要介紹了Spring擴展點之BeanFactoryPostProcessor詳解,Spring的設計非常優(yōu)雅,有很多的擴展點供我們對項目進行擴展,今天學習一下Spring其中擴展點之一的BeanFactoryPostProcessor,需要的朋友可以參考下
    2023-11-11
  • Jdbc連接數(shù)據庫基本步驟詳解

    Jdbc連接數(shù)據庫基本步驟詳解

    這篇文章主要為大家詳細介紹了Jdbc連接數(shù)據庫的基本步驟,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • SpringBoot2.7.14整合redis7的詳細過程

    SpringBoot2.7.14整合redis7的詳細過程

    這篇文章主要介紹了SpringBoot2.7.14整合redis7的詳細過程,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2023-10-10
  • Java String 和StringBuffer的詳解及區(qū)別

    Java String 和StringBuffer的詳解及區(qū)別

    這篇文章主要介紹了Java String 和StringBuffer的詳解及區(qū)別的相關資料,需要的朋友可以參考下
    2017-05-05
  • 虛擬機linux中jdk安裝配置方法

    虛擬機linux中jdk安裝配置方法

    這篇文章主要為大家詳細介紹了虛擬機linux中jdk安裝配置方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • Java中使用JWT生成Token進行接口鑒權實現(xiàn)方法

    Java中使用JWT生成Token進行接口鑒權實現(xiàn)方法

    這篇文章主要介紹了Java中使用JWT生成Token進行接口鑒權實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • 在springboot中添加mvc功能的正確姿勢講解

    在springboot中添加mvc功能的正確姿勢講解

    這篇文章主要介紹了在springboot中添加mvc功能的正確姿勢,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • Spring事件監(jiān)聽詳解

    Spring事件監(jiān)聽詳解

    這篇文章主要介紹了Spring事件監(jiān)聽詳解,文中有非常詳細的圖文解說及代碼示例,對正在學習java Spring的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-05-05

最新評論