这篇文章给大家介绍如何在Java中操作JDBC连接数据库,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
一、简介
JDBC全称又叫做Java数据库连接,也就是Java数据库连接,说白了就是用Java语言来操作数据库,提供统一API访问数据库操作。
二,原理
JDBC主要是用于Java连接数据库的,能连接什么数据库不固定,其实能连接很多种数据库,而且一般来说可以连接oracle和mysql,通常也是这两种。但是既然JDBC能连接这么多的数据库,开发起来太麻烦了,于是太阳公司那些人想出了一个办法,我定义一套规范,大家都按照这个规范来,实现自己公司访问数据库的实现。这套规范就是JDBC、遵循了JDBC规范的,可以访问自己数据库的API被称之为数据库驱动。
三,数据库操作
<强>数据库操作分为6个步骤(增、删、改可跳过第5步,移步看第6步):强>
1,首先,项目中检查是否已导入mysql连接jar包,如:mysql-connector-java-5.1.6-bin.jar
2,使用反射注册数据库驱动,forname(名字),
3,通过DriverManager。getConnection (url、用户名、密码)构造器获取数据库连接
4,通过连接连接对象获取数据库操作对象PrepareStatement或者声明
5,通过获取的声明对象执行executeQuery()操作返回ResultSet结果集,需判断是否为空
6,通过获取的声明对象执行executeUpdate()操作返回受影响的行数,判断是否成功标识
7,释放连接资源,关闭顺序为:ResultSet→PrepareStatement/声明→连接
<>强解释说明关键类:强>
(1) DriverManager:该类管理数据库驱动程序。
(2)连接:管理数据库建立的连接。
(3)声明:负责将要执行的sql体提交到数据库。
(4)结果集:执行sql查询语句返回的结果集。
(5) PreparedStatement:可以使用预编译的sql,防止sql注入,而语句只能使用静态的sql。
<强> PreparedStatement与语句区别:强>
语法不同:PreparedStatement可以使用预编译的sql,而语句只能使用静态的sql。
效率不同:PreparedStatement可以使用sql缓存区,效率比语句高。
安全性不同:PreparedStatement可以有效防止sql注入,而语句不能防止sql注入。
四,数据库增,删,改,查示例
工具类(可做相对应灵活替换):
package com.bnd.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.util.Objects;/* *, *,@author 作者,mbql:, *,@version 创建时间:2021年1月10日,下午5:14:16 *,类说明,JDBC操作数据库工具类 */public class  JdbcUtils { private static  final String driverName =,“com.mysql.jdbc.Driver";//,数据库驱动名称 private static  final String url =,“jdbc: mysql://39.108.146.20:3307/jsp ? useUnicode=true& characterEncoding=utf-8";//,数据库的url private static  final String userName =,“root";//,用户名 private static  final String password =,“123456”;,//用户密码 private static  Connection conn =,空;//,数据库连接对象 private static  PreparedStatement PreparedStatement =,空;//,执行操作对象 static { try { forname (driverName);//,2,注册数据库驱动 时间=conn DriverManager.getConnection (url,用户名,密码);//,3,获取数据库连接 },catch (ClassNotFoundException e), {//,TODO Auto-generated  catch 块 e.printStackTrace (); },catch (SQLException e), {//,TODO Auto-generated  catch 块 e.printStackTrace (); } }/* * ,*查询数据 ,* @return返回查询到结果 ,*/public static  ResultSet queryData (), { ResultSet result =,空; String sql =,“select id,名称,pwd 得到user";//,定义预编译SQL try { 时间=preparedStatement conn.prepareStatement (sql);//,4,执行预编译SQL操作 时间=result preparedStatement.executeQuery ();//,,执行查询操作 while (result.next ()), { int id =, result.getInt (1); String name =, result.getString (2); String pwd =, result.getString (3); System.out.println (“id:“, +, id +,“——祝辞,名字:“,+,name +,“——祝辞,pwd:“, +, pwd); } },catch (SQLException e), {//,TODO Auto-generated  catch 块 e.printStackTrace (); }finally {//,7,释放资源 关闭(康涅狄格州,preparedStatement,结果); } return 结果; }/* * ,*添加数据 ,* @return返回受影响行数 ,*/public static  int addData (), { String sql =,“insert into 用户(名称、pwd),值(?,?)“;; try { 时间=preparedStatement conn.prepareStatement (sql);//,4,执行预编译SQL操作 preparedStatement.setString (1,“tom"); preparedStatement.setString (2,“abc123"); int count =, preparedStatement.executeUpdate ();//,,执行添加操作 if (count 祝辞,0),{ return 计算; } },catch (SQLException e), {//,TODO Auto-generated  catch 块 e.printStackTrace (); }finally {//,7,释放资源 关闭(康涅狄格州,preparedStatement, null); } return 1; }/* * ,*更新数据 ,* @return返回受影响行数 ,*/public static  int updateData (), { null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null null如何在Java中操作JDBC连接数据库