当前位置:首页 > 问答 > 正文

Java类怎么快速连数据库,操作数据其实没那么难,轻松搞定数据管理那些事儿

“Java类怎么快速连数据库,操作数据其实没那么难,轻松搞定数据管理那些事儿”这个事儿,说白了就是教你怎么让你写的Java程序能和数据库说上话,能命令数据库帮你存东西、取东西、改东西,你别看数据库听起来高大上,其实你就把它当成一个超级听话、记性特别好的仓库管理员就行了,你的Java程序就是你这个老板,你要做的就是学会怎么给这个管理员下命令。

想跟数据库管理员建立联系,你得先知道它在哪,并且有个合法的身份,这就引出了第一步:建立连接,这就像你要去仓库取货,总得先找到仓库地址,然后拿钥匙开门吧,在Java里,这个“钥匙”和“地址”信息,我们通常写在一个叫JDBC的东西里,别怕这个缩写,你就记住,它是Java官方制定的一个和数据库打交道的规矩,所有数据库厂商都遵守这个规矩,这样我们写一套代码就能和MySQL、Oracle这些不同的数据库通信了。

具体怎么做呢?你得去数据库的官网,比如你用MySQL,就去MySQL官网下一个叫MySQL Connector/J的jar包,这个jar包就是个翻译官,它能把Java的话翻译成MySQL能听懂的话,把这个jar包放到你的项目里,告诉你的项目:“喂,翻译官我给你请来了啊”。

就在你的Java类里写连接数据库的代码了,这个过程非常固定,几乎就是个模板,根据CSDN博客作者「码农研究僧」分享的步骤,大致是这样的:

  1. 加载数据库驱动:就是告诉Java:“我们要用刚才请的那个翻译官了”,代码就一句:Class.forName("com.mysql.cj.jdbc.Driver"); (如果你用MySQL 8.0以上的版本的话)。

  2. 获取数据库连接:这一步就是拿着地址和密码去敲门,你需要一个数据库的地址(类似jdbc:mysql://localhost:3306/你的数据库名)、用户名和密码,然后用一行代码拿到连接对象:Connection conn = DriverManager.getConnection(地址, 用户名, 密码);,这个Connection对象就是你和管理员之间的电话线,后续所有操作都靠它。

电话线接通了,你就可以开始下命令了,最常用的命令就是“增删改查”,这又要用到另一个对象,叫Statement或者它的升级版PreparedStatement,我强烈建议你用PreparedStatement,因为它更安全、更快,能防止一些使坏的SQL命令注入,知乎上一个叫「会敲代码的喵」的答主打了个比方,用Statement就像是你每次都要把整个命令从头到尾口述一遍,而PreparedStatement是你先写个带问号的命令模板,把id等于?的那个人的名字改成?”,然后每次只需要把问号的具体值填进去就行,这样既省事又安全。

你想查一下用户表里所有姓张的人,代码大概是这个感觉:

// 假设你已经有了Connection对象 conn
String sql = "SELECT * FROM user WHERE name LIKE ?"; // SQL模板,?是占位符
PreparedStatement pstmt = conn.prepareStatement(sql); // 预编译这个模板
pstmt.setString(1, "张%"); // 把第一个问号替换成"张%"(表示以张开头的)
ResultSet rs = pstmt.executeQuery(); // 执行查询,结果放在ResultSet里

这个ResultSet对象就是个结果集,你可以把它想象成数据库管理员递给你的一张表格,你可以用rs.next()方法一行一行地往下看,然后用rs.getString("name")这样的方法取出每一列的数据。

如果是增加(INSERT)、删除(DELETE)、修改(UPDATE)操作,更简单,连结果集都没有,只需要用pstmt.executeUpdate()方法,它会返回一个数字,告诉你这个操作影响了多少行数据,比如你删除了3个人,它就返回3。

也是非常重要的一点,就像你打完电话要挂断一样,用完的这些对象,比如ResultSetPreparedStatementConnection,一定要记得关闭!不然一直占着线路,别人就用不了了,这叫资源泄露,通常我们把关闭的代码写在finally块里或者直接用Java 7的try-with-resources语法,确保无论出不出错,最后都能关上。

快速连接和操作数据库就四步曲:一、引入翻译官(JDBC驱动jar包);二、拨通电话(建立Connection);三、下达命令(创建PreparedStatement,设置参数,执行);四、处理结果(遍历ResultSet或获取影响行数)并挂断电话(关闭连接),你多写两遍,就会发现这真的是一套固定的流程,一点都不难,等你熟练了,还可以把它封装成一个工具类,这样以后每次用的时候,写两行代码就搞定了,那才叫真正的轻松搞定数据管理那些事儿。

Java类怎么快速连数据库,操作数据其实没那么难,轻松搞定数据管理那些事儿