MySQL啊,其实就是一个数据库管理系统(DBMS),专门用来存储、管理和检索数据的。它就像是咱们的大脑里的记忆库,能记住好多好多的信息。而且啊,MySQL还是开源的,免费又好用,所以特别受欢迎!
为啥要用MySQL呢?原因有很多啊,比如它性能不错,处理速度快;而且啊,它支持大量的并发连接,能让很多人同时使用;最重要的是,MySQL社区活跃,遇到问题总能找到解决办法!
JDBC:Java连接MySQL的桥梁想用Java连接MySQL啊,咱们得有个桥梁,那就是JDBC(Java Database Connectivity)。JDBC就像是咱们和MySQL之间的翻译官,能让Java代码和MySQL数据库愉快地交流。
代码示例:
java复制代码
import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.Statement;public MySQLConnection {public static void main(String[] args) {// MySQL数据库的连接URL,包括数据库地址、端口号、数据库名和参数String url = "jdbc:mysql://localhost:3306/testdb?useSSL=false&serverTimezone=UTC";// 数据库用户名String user = "root";// 数据库密码String password = "123456";try {// 通过DriverManager获取数据库连接Connection conn = DriverManager.getConnection(url, user, password);System.out.println("连接成功!");// 创建Statement对象,用来执行SQL语句Statement stmt = conn.createStatement();// 执行查询语句,返回结果集ResultSet rs = stmt.executeQuery("SELECT * FROM users");// 遍历结果集,打印每一行的数据while (rs.next()) {System.out.println("ID: " + rs.getInt("id") + ", 用户名: " + rs.getString("username"));}// 关闭结果集、Statement和Connection对象rs.close();stmt.close();conn.close();} catch (Exception e) {e.printStackTrace();}}}这段代码啊,就是咱们用JDBC连接MySQL的一个简单示例。它先定义了数据库的连接URL、用户名和密码,然后通过DriverManager.getConnection方法获取数据库连接。接着啊,它创建了一个Statement对象来执行SQL语句,并遍历结果集打印数据。最后啊,别忘了关闭结果集、Statement和Connection对象,不然会造成资源泄露哦!
温馨提示:useSSL=false这个参数啊,是因为咱们在本地测试时,SSL证书啥的都没配置好,所以先关了它。生产环境可别这么干啊,得把SSL配置好,保证数据安全!
CRUD操作:数据库里增删改查学会了连接数据库啊,咱们还得学会对数据库里的数据进行增删改查,也就是CRUD操作。这些操作就像是咱们对仓库里的货物进行入库、出库、修改和盘点一样。
插入数据:
java复制代码
String sql = "INSERT INTO users (username, password) VALUES ('新用户', '新密码')";stmt.executeUpdate(sql);删除数据:
java复制代码
String sql = "DELETE FROM users WHERE id = 1";stmt.executeUpdate(sql);更新数据:
java复制代码
String sql = "UPDATE users SET password = '新密码123' WHERE id = 1";stmt.executeUpdate(sql);查询数据:
前面已经演示过啦,就是执行查询语句,然后遍历结果集。
温馨提示:执行更新操作(INSERT、DELETE、UPDATE)时啊,咱们用的是executeUpdate方法,而不是executeQuery哦!因为executeUpdate是专门用来执行更新操作的,会返回一个表示受影响行数的整数。而executeQuery是用来执行查询操作的,返回的是一个结果集。
PreparedStatement:防止SQL注入的小能手在写SQL语句时啊,咱们得小心SQL注入这个坑。SQL注入就像是黑客给咱们的程序下毒,能让咱们的数据库暴露在危险之中。为了防止SQL注入啊,咱们得用PreparedStatement这个类。
代码示例:
java复制代码
String sql = "INSERT INTO users (username, password) VALUES (?, ?)";PreparedStatement pstmt = conn.prepareStatement(sql);pstmt.setString(1, "安全用户");pstmt.setString(2, "安全密码");pstmt.executeUpdate();这段代码啊,就是用PreparedStatement来插入数据的示例。咱们先把SQL语句里的参数用问号(?)代替,然后调用setString方法来设置参数的值。这样啊,就能有效地防止SQL注入了!
温馨提示:PreparedStatement不仅能防止SQL注入,还能提高数据库操作的性能哦!因为它能预编译SQL语句,减少数据库的解析和编译时间。
事务管理:保证数据的一致性在数据库操作中啊,有时候咱们得执行一系列的操作,这些操作要么全都成功,要么全都失败。这时候啊,咱们就得用到事务管理了。事务管理就像是咱们生活中的“要么全都要,要么全不要”的原则一样。
代码示例:
java复制代码
conn.setAutoCommit(false); // 关闭自动提交,开启事务try {// 执行一系列的操作...conn.commit(); // 提交事务} catch (Exception e) {conn.rollback(); // 回滚事务e.printStackTrace();}这段代码啊,就是事务管理的一个简单示例。咱们先关闭自动提交,然后执行一系列的操作。如果都成功了,就调用commit方法提交事务;如果失败了,就调用rollback方法回滚事务,保证数据库的一致性。
好啦,今天的知识点就讲到这里啦!咱们学了MySQL的基本概念、JDBC的连接方法、CRUD操作、PreparedStatement防止SQL注入的技巧以及事务管理的原则。掌握了这些啊,你就能在Java数据库编程的世界里畅游啦!
不过啊,这只是个开始哦!后面还有更多好玩的东西等着咱们去探索呢!比如连接池、ORM框架、数据库优化等等。别害怕,一步步来,咱们一定能玩转Java数据库编程!加油哦!