欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java MYSQL连接

程序员文章站 2024-01-27 12:04:34
...

Java MYSQL连接

许多人仍然在互联网上徘徊,寻找在其Java项目中启动MySQL连接的正确方法。 作为一个初学者,我本人经常花大量时间在互联网上寻找可行的方法。 因此,这就是我发现的内容,到目前为止,它一直在正常工作。 如果有问题,请在下面发表评论。

我将为该项目使用Wamp服务器和NetBeans。

Creating Database

在开始之前,请打开wamp服务器并启动localhost。 然后在网络浏览器的地址栏中输入“ localhost / phpmyadmin”,它将打开phpmyadmin主页。

Java MYSQL连接

我们将为此使用root登录。 如您所知,用户名是root,默认情况下,root用户不需要密码。 然后按执行按钮。 这将打开数据库页面。

Java MYSQL连接

好的,现在您必须创建一个数据库和一个数据库内的表才能与Java类连接。 为此,请单击“数据库”页面上的“ SQL”选项卡,您将看到一个用于SQL查询的终端。

Java MYSQL连接

就我而言,我将创建一个名为Customer的数据库和一个名为details的表。 我将使用c_name,phone_no和address作为表列。

因此,我将执行此查询以创建数据库。 “创建数据库客户”   Type this in the terminal and hit Go

然后单击在左侧菜单上创建的数据库,然后再次单击“ SQL”选项卡。

Java MYSQL连接

执行以下查询。 (无引号)

"CREATE TABLE details(
c_name TEXT, #this field is a text field
phone_no INT(10),#this is a Integer field and limits user input to 10 digits
address TEXT #this field is a text field
) "

这将创建表,我们现在就完成了数据库。

Java Code

打开Netbeans并开始一个新项目。 我的项目将称为“客户”。 创建一个JFrame表单,并设计一个带有3个JLabel和2个JTextField的接口(用于用户输入)和一个JButton来提交数据。 (我不会解释界面设计)

这是我的接口和变量名。

Java MYSQL连接

Installing  mysql connector

为了启动MySQL连接,您需要一个JDBC驱动程序(Java数据库连接驱动程序)。由于我们使用的是MySQL,因此首先需要下载并安装该驱动程序。

从网络浏览器导航到该URL。

Https://dev.mysql.com/downloads/connector/j/5.1.html

Java MYSQL连接

下载“独立于平台的ZIP存档”。 下载后,将ZIP文件解压缩到一个文件夹中。

再次转到NetBeans。 在左侧菜单中,您可以看到您的项目名称。 像这样。

Java MYSQL连接

右键单击项目名称,然后选择属性。 在属性窗口中,单击库。 然后单击“添加JAR /文件夹”按钮,您可以在右侧找到它。

Java MYSQL连接

导航到您之前提取MySQL驱动程序的文件夹,然后选择“ mysql-connector-java-5.1.46”(5.1.46是版本号。如果下载新版本,则有所不同)。 单击“打开”,您可以看到驱动程序正在安装。

Java MYSQL连接

现在,您已经成功安装了JDBC驱动程序。

Java coding

转到您之前进行的界面设计。 双击提交按钮,它将为您的提交按钮的Click事件打开源窗口。

转到源窗口顶部,然后导入Java Sql类。

导入java.sql。*;

首先,我将数据从JTextFields调用到一些变量中。

Java MYSQL连接

phone是一个Integer变量,您可以从JTextField获得一个String值。 所以我用Integer.parseInt()将String数据输入转换为Integer。

然后,您需要启动数据库连接。

Java MYSQL连接

“主机”是您数据库的URL。 用您自己的数据库名称替换“客户”。 我们用于创建数据库的phpmyadmin帐户的“ Usern”用户名,而“ pw”是上述帐户的密码。 由于我们使用root登录,因此将没有密码。 然后,我们必须创建一个名为“ con”的新连接并启动连接。

现在您可以看到连接的最后一部分,突出显示为错误。 这是因为这会引发异常(特别是SQL异常)。 因此,我们需要使用try and catch块将这段代码括起来。

Java MYSQL连接

然后,您必须执行SQL查询才能将用户输入添加到数据库中。

为此,我们必须创建一个语句。 我要创建一个名为“ stmt”的语句。 然后为SQL语句声明一个String变量。 由于我们要添加数据,因此我们必须使用插入查询。 键入SQL语句,然后最终执行查询。

Java MYSQL连接

重要:当您从变量插入数据时,请确保您这样输入。

'“ + variable_name +”'(打开单引号,打开双引号,加号,variable_name,加号,关闭双引号,关闭单引号)

而且您必须根据数据库列的顺序输入数据。

最后,为了添加一些额外的功能,我添加了一个弹出框以成功执行。

Java MYSQL连接

我们的最终代码将如下所示。


String name = txtname.getText();
int phone = Integer.parseInt(txtphone.getText());
String address = txtaddress.getText();

String host = "jdbc:mysql://localhost:3306/customer";
String usern = "root";
String pw = "";

try {
    Connection con = DriverManager.getConnection(host, usern, pw);

    Statement stmt = con.createStatement();
    String sql = "INSERT INTO details VALUES ('" + name + "' ,'" + phone + "' , '" + address + "' )";
    stmt.executeUpdate(sql);

    JOptionPane.showMessageDialog(null, "Data inserted Successfully!");

} catch (SQLException ex) {
    Logger.getLogger(details.class.getName()).log(Level.SEVERE, null, ex);
} finally {
    {
        try {
            con.close();
        } catch (Exception e) {}
    }
}

而已! 按Shift + f6并运行程序。 如果您有任何疑问,请在下面的评论部分中告诉我。 编码愉快!

EDIT:
As this is just simple code for getting a basic idea, there are two vulnerabilities in this code.
I have included an additional block of code at the end of the code to close the connection we opened to database. And here I have concatenated input parameters directly into sql without escaping them. That could lead to an SQL injection. Its always better to use Prepared Statements which you can find here.
Thanks @Pavol !

from: https://dev.to//suvink/java-mysql-connection-d52