page contents

Java如何连接MySQL数据库教程

本文讲述了Java 如何连接MySQL数据库教程!具有很好的参考价值,希望对大家有所帮助。一起跟随六星小编过来看看吧,具体如下:

attachments-2023-08-w0tyzPjc64d6e2508b107.png本文讲述了Java 如何连接MySQL数据库教程!具有很好的参考价值,希望对大家有所帮助。一起跟随六星小编过来看看吧,具体如下:

想要在Java程序中连接MySQL数据库的话,必然要学习JDBC技术,因为使用JDBC技术可以非常方便地操作各种主流数据库。大部分应用程序都是使用数据库存储数据的,通过JDBC技术,既可以根据指定条件查询数据库中的数据,又可以对数据库中的数据进行增加、删除、修改等操作。

本文主要介绍如何使用JDBC技术操作MySQL数据库,下面首先介绍JDBC中都有哪些常用的类和接口。

Java提供了丰富的类和接口用于数据库编程,利用这些类和接口可以方便地访问并处理存储在数据库中的数据。这里介绍一些常用的JDBC接口和类,这些接口和类都在java.sql包中。

1.DriverManager类

DriverManager类是JDBC的管理层,被用来管理数据库中的驱动程序。在使用Java操作数据库之前,须使用Class类的静态方法forName(String className)加载能够连接数据库的驱动程序。

例如,加载MySQL数据库驱动程序(包名为mysql_connector_java_5.1.36_bin.jar)的代码如下:

01  try {        //加载MySQL数据库驱动

02   Class.forName("com.mysql.jdbc.Driver");

03  } catch (ClassNotFoundException e) {


04    e.printStackTrace();


05  }





加载完连接数据库的驱动程序后,Java会自动将驱动程序的实例注册到DriverManager类中,这时即可通过DriverManager类的getConnection()方法与指定数据库建立连接。DriverManager类的常用方法及说明如表1所示。


表1  DriverManager类的常用方法及说明


方    法


功 能 描 述


getConnection(String url, String user, String password)


根据3个入口参数(依次是连接数据库的URL、用户名、密码),与指定数据库建立连接


例如,使用DriverManager类的getConnection()方法,与本地MySQL数据库建立连接的代码如下:


DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test","root","password");


说明:127.0.0.1表示本地IP地址,3306是MySQL的默认端口,test是数据库名称


使用DriverManager类的getConnection()方法,与本地SQLServer 2005以上版本数据库建立连接的代码如下:


DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;DatabaseName=test","sa","password");



使用DriverManager类的getConnection()方法,与本地Oracle数据库建立连接的代码如下:


DriverManager.getConnection("jdbc:oracle:thin:@//127.0.0.1:1521/test","system","password");



2.Connection接口

Connection接口代表Java端与指定数据库之间的连接,Connection接口的常用方法及说明如表2所示。


表2  Connection接口的常用方法及说明


函数


作用


createStatement()


创建Statement对象


createStatement(int resultSetType, int resultSetConcurrency)


创建一个Statement对象,Statement对象被用来生成一个具有给定类型、并发性和可保存性的ResultSet对象


preparedStatement()


创建预处理对象preparedStatement


prepareCall(String sql)


创建一个CallableStatement对象来调用数据库存储过程


isReadOnly()


查看当前Connection对象的读取模式是否是只读形式


setReadOnly()


设置当前Connection对象的读写模式,默认为非只读模式


close()


立即释放此Connection对象的数据库和JDBC资源,而不是等待它们被自动释放


例如,使用Connection对象连接MySQL数据库,代码如下:


01  Connection con;    //声明Connection对象


02  try {       //加载MySQL数据库驱动类


03   Class.forName("com.mysql.jdbc.Driver");


04  } catch (ClassNotFoundException e) {


05   e.printStackTrace();


06  }


07  try {      //通过访问数据库的URL获取数据库连接对象


08   con=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test","root","root");


09  } catch (SQLException e) {


10   e.printStackTrace();


11  }



3.Statement接口

Statement接口是被用来执行静态SQL语句的工具接口,Statement接口的常用方法及说明如表3所示。


表3  Statement接口的常用方法及说明


方    法


功 能 描 述


execute(String sql)


执行静态的SELECT语句,该语句可能返回多个结果集


executeQuery(String sql)


执行给定的SQL语句,该语句返回单个ResultSet对象


clearBatch()


清空此Statement对象的当前SQL命令列表


executeBatch()


将一批命令提交给数据库来执行,如果全部命令执行成功,则返回更新计数组成的数组。数组元素的排序与SQL语句的添加顺序对应


addBatch(String sql)


将给定的SQL命令添加到此Statement对象的当前命令列表中。如果驱动程序不支持批量处理,将抛出异常


close()


释放Statement实例占用的数据库和JDBC资源


例如,使用连接数据库对象con的createStatement()方法创建Statement对象,代码如下:


01  try {


02   Statement stmt = con.createStatement();


03  } catch (SQLException e) {


04   e.printStackTrace();


05  }



4.PreparedStatement接口

PreparedStatement接口是Statement接口的子接口,是被用来执行动态SQL语句的工具接口。例如,使用连接数据库对象con的prepareStatement()方法创建PrepareStatement对象,其中需要设置一个参数,代码如下:


PrepareStatement  ps = con.prepareStatement("select * from tb_stu where name = ?");


ps.setInt(1, "阿强");  //将sql中第1个问号的值设置为“阿强”





下面演示一个Java如何连接MySQL数据库的例子。


要访问数据库,首先要加载数据库的驱动程序(只需要在第一次访问数据库时加载一次),然后每次访问数据时创建一个Connection对象,接着执行操作数据库的SQL语句,最后在完成数据库操作后销毁前面创建的Connection对象,释放与数据库的连接。


在项目中创建类Conn,并创建getConnection()方法,获取与MySQL数据库的连接,在主方法中调用getConnection()方法连接MySQL数据库,代码如下:


01  import java.sql.*;      //导入java.sql包


02  public class Conn {      // 创建类Conn


03   Connection con;       // 声明Connection对象


04   public Connection getConnection() {  // 建立返回值为Connection的方法


05    try {        // 加载数据库驱动类


06     Class.forName("com.mysql.jdbc.Driver");


07     System.out.println("数据库驱动加载成功");


08    } catch (ClassNotFoundException e) {


09     e.printStackTrace();


10    }


11    try {      // 通过访问数据库的URL获取数据库连接对象


12     con = DriverManager.getConnection("jdbc:mysql:"


13       + "//127.0.0.1:3306/test", "root", "root");


14     System.out.println("数据库连接成功");


15    } catch (SQLException e) {


16     e.printStackTrace();


17    }


18    return con;     // 按方法要求返回一个Connection对象


19   }


20   public static void main(String[] args) {  // 主方法


21    Conn c = new Conn();      // 创建本类对象


22    c.getConnection();      // 调用连接数据库的方法


23   }


24  }


运行结果如1所示。

attachments-2023-08-IpDkNtob64d6e113b3a5e.png

说明: 


加载数据库驱动程序之前,首先需要确定数据库驱动类是否成功加载到程序中,如果没有加载,可以按以下步骤加载,此处以加载MySQL数据库的驱动包为例介绍:


①将MySQL数据库的驱动包mysql_connector_java_5.1.36_bin.jar拷贝到当前项目下。


②选中当前项目,单击右键,选择“Build Path”/“Configure Build Path…”菜单项,在弹出的对话框中(如2所示)左侧选中“Java Build Path”,然后在右侧选中Libraries选项卡,单击“Add External JARs…”按钮,在弹出的对话框中选择要加载的数据库驱动包,即可在中间区域显示选择的JAR包,最后单击Apply按钮即可。

attachments-2023-08-CPuVELSl64d6e0f6eda59.png

更多相关技术内容咨询欢迎前往并持续关注六星社区了解详情。

想高效系统的学习Java编程语言,推荐大家关注一个微信公众号:Java圈子。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Java入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。

attachments-2023-03-2AoKIjPQ64014b4ad30a3.jpg

  • 发表于 2023-08-12 09:37
  • 阅读 ( 159 )
  • 分类:Java开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
小柒
小柒

1316 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1316 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章