JavaWeb - JDBC

JDBC

什么是JDBC,Java鏈接數(shù)據(jù)庫

15-1.png

需要jar包的支持:

  • java.sql
  • javax.sql
  • mysql-conneter-java 連接驅(qū)動、

導(dǎo)入數(shù)據(jù)庫依賴

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.48</version>
        </dependency>

JDBC 固定步驟

  1. 加載驅(qū)動
  2. 連接數(shù)據(jù)庫,代表數(shù)據(jù)庫
  3. 向數(shù)據(jù)庫發(fā)送SQL的對象Statement:CRUD
  4. 編寫SQL(不同業(yè)務(wù),不同SQL)
  5. 執(zhí)行SQL
  6. 關(guān)閉連接
public class TestJdbc {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
//        配置東西
//        解決中文亂碼
        String url = "jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=gbk";
        String username = "root";
        String passsword = "123456";

//        1. 加載驅(qū)動
        Class.forName("com.mysql.jdbc.Driver");
//        2. 連接數(shù)據(jù)庫, 代表數(shù)據(jù)庫
        Connection connection = DriverManager.getConnection(url, username, passsword);

//        3. 向數(shù)據(jù)庫發(fā)送SQL的對象statement:CRUD
        Statement statement = connection.createStatement();

//        4. 編寫SQL
        String sql = "select * from users;";

//        5. 執(zhí)行查詢SQL,返回一個ResultSet : 結(jié)果集
        ResultSet rs = statement.executeQuery(sql);

        while (rs.next()){
            System.out.println("id="+rs.getObject("id"));
            System.out.println("name="+rs.getObject("name"));
            System.out.println("password="+rs.getObject("password"));
            System.out.println("email="+rs.getObject("email"));
            System.out.println("birthday="+rs.getObject("birthday"));

        }

//        6. 關(guān)閉連接,釋放資源,先開的后關(guān)
        rs.close();;
        statement.close();
        connection.close();
    }
}

預(yù)編譯SQL

public static void main(String[] args) throws SQLException, ClassNotFoundException {
        //        配置東西
//        解決中文亂碼
        String url = "jdbc:mysql://localhost:3306/jdbc?useUnicode=true&characterEncoding=gbk";
        String username = "root";
        String password = "123456";

//        1. 加載驅(qū)動
        Class.forName("com.mysql.jdbc.Driver");
//        2. 連接數(shù)據(jù)庫, 代表數(shù)據(jù)庫
        Connection connection = DriverManager.getConnection(url, username, password);

//        3. 編寫SQL
        String sql = "insert into users(id, name, password, email, birthday) value(?,?,?,?,?);";


//        4. 預(yù)編譯
        PreparedStatement preparedStatement = connection.prepareStatement(sql);

        preparedStatement.setInt(1, 4);
        preparedStatement.setString(2,"張三");
        preparedStatement.setString(3, "1231231");
        preparedStatement.setString(4, "zs@qq.com");
        preparedStatement.setString(5, String.valueOf(new Date(new java.util.Date().getTime())));

//        5. 執(zhí)行SQL
        int i = preparedStatement.executeUpdate();
        if (i>0){
            System.out.println("插入成功......");
        }

//        6. 關(guān)閉連接,釋放資源,先開的后關(guān)

        preparedStatement.close();
        connection.close();
    }

事務(wù)

要么都成功,要么都失敗!
ACID原則:保證數(shù)據(jù)的安全.

開啟事務(wù)
事務(wù)提交 commit()
事務(wù)回滾 rollback()
關(guān)閉事務(wù)

Junit單元測試

依賴

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <scope>test</scope>
</dependency>

簡單使用
@Test注解只在方法上有效,只要加了這個注解的方法,就可以直接運行.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容