1. 程式人生 > 程式設計 >原生Java操作mysql資料庫過程解析

原生Java操作mysql資料庫過程解析

這篇文章主要介紹了原生Java操作mysql資料庫過程解析,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

1.引入資料庫驅動的jar包 以通過maven引入mysql driver為例

1.1 到http://mvnrepository.com 搜尋 mysql

1.2 複製所需maven配置檔案到工程的 pom.xml

<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
 <groupId>mysql</groupId>
 <artifactId>mysql-connector-java</artifactId>
 <version>6.0.6</version>
</dependency>

2.建立資料庫連線類DBUtil.java用以連線與關閉資料庫

//檔名:DBUtil.java

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

public class DBUtil {

 static String user = "root";
 static String password = "root";
 static String url = "jdbc:mysql://localhost【資料庫地址】:3306【埠】/【資料庫名稱】?serverTimezone=UTC";

 static {
  try {
   Class.forName("com.mysql.cj.jdbc.Driver");
  } catch (ClassNotFoundException e) {
   e.printStackTrace();
  }
 }

 public static Connection getConnection() {
  Connection conn = null;
  try {
   conn = DriverManager.getConnection(url,user,password);
  } catch (SQLException e) {
   e.printStackTrace();
  }
  return conn;
 }

 public static void closeJDBC(ResultSet rs,Statement stmt,Connection conn) {
  if (rs != null) {
   try {
    rs.close();
   } catch (SQLException e) {
    e.printStackTrace();
   }
  }
  if (stmt != null) {
   try {
    stmt.close();
   } catch (SQLException e) {
    e.printStackTrace();
   }
  }
  if (conn != null) {
   try {
    conn.close();
   } catch (SQLException e) {
    e.printStackTrace();
   }
  }
 }
}

3.在java程式碼中對錶進行操作

3.1 查,刪,改類似

//查詢table表重的 id和name
String sql = "select id,name from table";
Connection conn = DBUtil.getConnection();
PreparedStatement pstmt = null;
try {
  conn.setAutoCommit(false);
  pstmt = conn.prepareStatement(sql);
  ResultSet rs = pstmt.executeQuery();
  json = ResultSetToJson.ResultSetToJsonArray(rs);
  }catch (SQLException e){
  try {
   conn.rollback();
  }catch (SQLException e1){
   e1.printStackTrace();
  }
}finally {
 DBUtil.closeJDBC(null,pstmt,conn);
}
  return json;

3.1 增

int basicinfoID = 0;
String sql = "INSERT INTO tb_resume_basicinfo("
    + "basicinfo_id,realname,gender,birthday,current_loc,"
    + "resident_loc,telephone,email,job_intension,job_experience,head_shot,applicant_id) "
    +"VALUES(SEQ_ITOFFER_RESUMEBASICINFO.NEXTVAL,?,?)";
Connection conn = DBUtil.getConnection();
PreparedStatement pstmt = null;
  try {
   // 關閉自動提交
   conn.setAutoCommit(false);
   pstmt = conn.prepareStatement(sql);
   pstmt.setString(1,basicinfo.getRealName());
   pstmt.setString(2,basicinfo.getGender());
   pstmt.setTimestamp(3,basicinfo.getBirthday() == null ? null
     : new Timestamp(basicinfo.getBirthday().getTime()));
   pstmt.setString(4,basicinfo.getCurrentLoc());
   pstmt.setString(5,basicinfo.getResidentLoc());
   pstmt.setString(6,basicinfo.getTelephone());
   pstmt.setString(7,basicinfo.getEmail());
   pstmt.setString(8,basicinfo.getJobIntension());
   pstmt.setString(9,basicinfo.getJobExperience());
   pstmt.setString(10,basicinfo.getHeadShot());
   pstmt.setInt(11,applicantID);
   pstmt.executeUpdate();
} catch (SQLException e) {
   try {
    // 事務回滾
    conn.rollback();
   } catch (SQLException e1) {
    e1.printStackTrace();
   }
   e.printStackTrace();
  } finally {
   DBUtil.closeJDBC(null,conn);
  }

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