如何在Java中操作JDBC连接数据库

  介绍

这篇文章给大家介绍如何在Java中操作JDBC连接数据库,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

一、简介

JDBC全称又叫做Java数据库连接,也就是Java数据库连接,说白了就是用Java语言来操作数据库,提供统一API访问数据库操作。

二,原理

JDBC主要是用于Java连接数据库的,能连接什么数据库不固定,其实能连接很多种数据库,而且一般来说可以连接oracle和mysql,通常也是这两种。但是既然JDBC能连接这么多的数据库,开发起来太麻烦了,于是太阳公司那些人想出了一个办法,我定义一套规范,大家都按照这个规范来,实现自己公司访问数据库的实现。这套规范就是JDBC、遵循了JDBC规范的,可以访问自己数据库的API被称之为数据库驱动。

如何在Java中操作JDBC连接数据库

三,数据库操作

<强>数据库操作分为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连接数据库