使用JDBC操作数据库

# 前言:

JDBC 指 Java 数据库连接,是一种标准Java应用编程接口( JAVA API),用来连接 Java 编程语言和广泛的数据库。这个我之前尝试过,但是时间久了,我也怕自己忘了相关的内容,所以通过本文来回顾🤣

如有错误,欢迎大佬指正😆

 

> 【转载说明】本文优先发布于我的个人博客[www.226yzy.com](https://www.226yzy.com) ,转载请注明出处并注明作者:星空下的YZY。
>
> 本博客所有文章除特别声明外,均采用 [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/)许可协议。

也欢迎通过我的博客阅读[本文](https://226yzy.com/2022/020332243.html)

# 下载Mysql数据库驱动

由于Java 连接 MySQL 需要额外的驱动包,你可以通过下面的链接去下载你需要的版本

下载驱动包 [https://mvnrepository.com/artifact/mysql/mysql-connector-java](https://mvnrepository.com/artifact/mysql/mysql-connector-java)

然后放在你的项目文件里

# 数据库驱动加载

有了驱动包之后就要进行数据库驱动加载

我当时写的代码如下

```java
// 数据库驱动加载
public static void DatabaseDrivenLoad()
{
try
{
Class.forName("com.mysql.jdbc.Driver");
System.out.println("数据库驱动加载成功");
} catch (ClassNotFoundException e)
{
e.printStackTrace();
System.out.println("数据库驱动加载失败");
}
}
```

主要就是`Class.forName("com.mysql.jdbc.Driver");`这一句

# 数据库连接

数据库驱动加载后就是数据库连接

我当时写的代码如下

```java
// 数据库连接
public static void DatabaseConnection()
{
try
{
Conn.con = DriverManager.getConnection(
"jdbc:mysql:"
+ "//127.0.0.1:3306/test12?characterEncoding=utf-8",
"root", "");
System.out.println("数据库连接成功");
} catch (SQLException e)
{
e.printStackTrace();
System.out.println("数据库连接失败,请检查url或用户名及密码");
}
}
```

其实就是

```java
String driver = "jdbc:mysql://127.0.0.1:3306/test“;
Connection con = DriverManager.getConnection(driver, "root", “123456");
```

`driver`代表数据库URL

`root`代表数据库账户

`123456`代表你对应的数据库密码

***有中文乱码的问题?***

不妨尝试一下在原来的数据库URL后面加上`?characterEncoding=utf-8`

 

# 数据查询

这里会使用到**Statement接口**和**ResultSet接口**

创建接口对象

```java
Statement stmt = con.createStatement();
ResultSet res = stmt.executeQuery("select * from user12");
```

`con`是前面创建的Connection对象

`res`将是后续返回结果集的对象

我的使用参考如下

```java
try
{
Statement stmt = Conn.con.createStatement();
ResultSet res = stmt.executeQuery("select * from book12");
while (res.next())
{
String id = res.getString("id");
String name = res.getString("name");
int typeid = res.getInt("typeid");
String writer = res.getString("writer");
String publisher = res.getString("publisher");
double price = res.getDouble("price");
int number = res.getInt("number");
Book book = new Book(id, name, typeid, writer, publisher, price,
number);
Conn.Books.add(book);
}
} catch (Exception e)
{
e.printStackTrace();
System.out.println("数据库书籍数据读取失败");
}
```

# 增删改数据

可以使用***Statement对象***的`executeUpdata()`方法,通过不同的SQL语句实现运行增,删,改操作,返回更新的行数。

例如

```java
String sql = "update user12 set name='" + name + "' where id='" + id
+ "' ";
state.executeUpdate(sql);
```

# 最后

暂时就写到这了,如有错误,欢迎大佬指正🤣

欢迎访问我的小破站https://www.226yzy.com/ 或者GitHub版镜像 https://226yzy.github.io/ 或Gitee版镜像https://yzy226.gitee.io/

我的Github:[226YZY (星空下的YZY) (github.com)](https://github.com/226YZY)

> 【转载说明】本文优先发布于我的个人博客[www.226yzy.com](https://www.226yzy.com) ,转载请注明出处并注明作者:星空下的YZY。
>
> 本博客所有文章除特别声明外,均采用 [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/)许可协议。

posted @ 2022-02-05 16:17  星空下的YZY  阅读(95)  评论(0编辑  收藏  举报