[轉載] 1.1Java使用JDBC原生方式連線MySql資料庫
前言:今天有朋友問我原生的java連線資料庫,因為框架的使用,如果基礎不牢固的人,是很容易遺忘原生的連線方式。今天正好趁此做一下回顧:
這裡只考慮原生方式,框架就不在這裡細說。 一、先大體搞清楚連線時,常用元素都是什麼作用: 在MySQL的官方文件中,這樣解釋說到:
java.sql.Driver 它在MySQL Connector / J 中實現的類的名稱 是 com.mysql.jdbc.Driver,也就是驅動程式。你可以把它理解為發動機,沒了它,其他都沒扯。 URL 有了發動機之後,你要開始利用它的力量,也就是為它指明前進的方向,而URL就是它的方向。 值得一提的是,目前連線URL的通用格式是這樣的:
protocol//[hosts][/database][?properties]
protocol:一種連線協議,約定的規則。
hosts:主機名,通常後跟埠號,例如當前主機預設就是localhost:3306,當然也可以多主機連線,這裡暫時不表。
database:資料庫嘛
其實應用測試時也就是這樣的:
jdbc:mysql://localhost:3306/test
username 資料庫連線的使用者名稱 passowrd 連線密碼Connection 與資料庫建立連線關係,通常為 DriverManager.getConnection(url, username, password)。這裡可以很明顯的感覺出來,每個元素所產生的作用。Statement / PreparedStatement ,需要特別注意的是,我們提倡使用後者,也就是預編譯語句。 PreparedStatement好處: 簡化Statement中的操作 提高執行語句的效能 可讀性和可維護性更好 在程式碼示例中,語法會詳細體現。有了PreparedStatement語句之後,我們可以採用以下語句進行執行: executeQuery(String) 查詢 executeUpdate(String SQL) 更新資料 execute(String SQL) 如果你不知道是查詢還是修改,可以使用這個語句
二、示例程式碼及註釋 準備: 首先要匯入mysql-connector-java 的jar包 其次,在資料庫中準備如下格式的表: 之後寫基本的連線程式碼 為了實現程式碼的重用,我對兩個基本方法新增和查詢進行封裝: 這是介面:(User類可自行寫入)
public interface UserDao {
public void add(User user);
public User findByUsername(String username);
}
下面是實現類:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import cn.bang.user.domain.User;
public class JdbcUserDao implements UserDao {
@Override
public void add(User form) {
String driverClassName = "com.mysql.jdbc.Driver"; //啟動驅動
String url = "jdbc:mysql://localhost:3306/test"; //設定連線路徑
String username = "root"; //資料庫使用者名稱
String password = "123"; //資料庫連線密碼
Connection con = null; //連線
PreparedStatement pstmt = null; //使用預編譯語句
ResultSet rs = null; //獲取的結果集
try {
Class.forName(driverClassName); //執行驅動
con = DriverManager.getConnection(url, username, password); //獲取連線
String sql = "INSERT INTO USER VALUES(?,?,?,?)"; //設定的預編譯語句格式
pstmt = con.prepareStatement(sql);
pstmt.setString(1, form.getUsername());
pstmt.setString(2, form.getPassword());
pstmt.setInt(3, form.getAge());
pstmt.setString(4, form.getGender());
pstmt.executeUpdate();
} catch (Exception e) {
throw new RuntimeException(e);
}finally {
//關閉資源,倒關
try {
if(rs != null) rs.close();
if(pstmt != null) pstmt.close();
if(con != null) con.close(); //必須要關
} catch (Exception e) {
}
}
}
@Override
public User findByUsername(String username) {
String driverClassName = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/test";
String mysqlusername = "root";
String password = "123";
Connection con = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
Class.forName(driverClassName);
con = DriverManager.getConnection(url, mysqlusername, password);
String sql = "SELECT * FROM USER WHERE username=?";
pstmt = con.prepareStatement(sql);
pstmt.setNString(1, username);
rs = pstmt.executeQuery();
if(rs == null) {
return null;
}
if(rs.next()) {
User user = new User();
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
user.setAge(rs.getInt("age"));
user.setGender(rs.getString("gender"));
return user;
} else {
return null;
}
} catch (Exception e) {
throw new RuntimeException(e);
}finally {
//關閉資源,倒關
try {
if(rs != null) rs.close();
if(pstmt != null) pstmt.close();
if(con != null) con.close(); //必須要關
} catch (Exception e) {
}
}
}
}
開始進行測試
這時候我們去資料庫中檢視:
其中驗證碼我簡單使用的一個類引入的。
資料引導: MySQL官方文件
相關文章
- MySQL下載安裝配置及JDBC連線資料庫MySqlJDBC資料庫
- JDBC連線資料庫JDBC資料庫
- JDBC連線MySQL資料庫的方法和例項JDBCMySql資料庫
- JDBC之連線sqlserver資料庫JDBCSQLServer資料庫
- Java的JDBC通過SSH Tunnel連線MySQL資料庫JavaJDBCMySql資料庫
- 使用PETAPOCO連線MYSQL資料庫MySql資料庫
- 使用cmd連線mysql資料庫MySql資料庫
- 使用 SSL 加密的 JDBC 連線 SAP HANA 資料庫加密JDBC資料庫
- Django使用pymysql連線MySQL資料庫DjangoMySql資料庫
- 使用ABAP(ADBC)和Java(JDBC)連線SAP HANA資料庫JavaJDBC資料庫
- JDBC連線mysqlJDBCMySql
- 轉:ORACLE的JDBC連線方式:OCI和THINOracleJDBC
- 連線資料庫-mysql資料庫MySql
- JDBC連線批量處理資料入庫JDBC
- 淺談JDBC和資料庫連線池JDBC資料庫
- 用Navicat連線資料庫-資料庫連線(MySQL演示)資料庫MySql
- 使用RMySQL包來連線MySQL資料庫MySql資料庫
- MySQL 8.x 新版本JDBC連線方式MySqlJDBC
- JDBC連結資料庫JDBC資料庫
- JDBC第一篇【介紹JDBC、使用JDBC連線資料庫、簡單的工具類】JDBC資料庫
- 117 遠端連線mysql資料庫的幾種方式MySql資料庫
- 【MySQL】自定義資料庫連線池和開源資料庫連線池的使用MySql資料庫
- Java JDBC連線MYsqlJavaJDBCMySql
- JDBC中連線資料庫的常用jar包JDBC資料庫JAR
- jdbc連線oracle rac資料庫的寫法JDBCOracle資料庫
- 資料庫連線分析(1)-從JDBC到MyBatis資料庫JDBCMyBatis
- openGauss資料庫JDBC環境連線配置(Eclipse)資料庫JDBCEclipse
- 如何連線MySQL資料庫MySql資料庫
- django | 連線mysql資料庫DjangoMySql資料庫
- Python連線MySQL資料庫PythonMySql資料庫
- pycharm連線MySQL資料庫PyCharmMySql資料庫
- java 資料庫程式設計(一)JDBC連線Sql Server資料庫Java資料庫程式設計JDBCSQLServer
- JDBC連線資料庫實現增刪改查JDBC資料庫
- python資料插入連線MySQL資料庫PythonMySql資料庫
- 遠端連線mysql資料庫MySql資料庫
- Django 2連線MySQL資料庫DjangoMySql資料庫
- Spring JPA資料庫連線MySQLSpring資料庫MySql
- mysql資料庫怎麼連線MySql資料庫