用java连接数据库用登录页面进入商品库存管理系统使用增删改查(功能中文注释)
时间: 2024-03-25 09:36:12 浏览: 23
好的,我可以为您提供一些基本的Java连接数据库和增删改查的代码示例,但是我需要先知道您使用的数据库类型和具体的表结构。
假设您使用的是MySQL数据库,以下是一个简单的Java连接MySQL数据库的示例代码:
```java
import java.sql.*;
public class MySQLConnection {
public static void main(String[] args) {
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver"); // 加载MySQL驱动程序
String url = "jdbc:mysql://localhost:3306/test"; // 数据库连接URL
String user = "root"; // 数据库用户名
String password = "123456"; // 数据库密码
conn = DriverManager.getConnection(url, user, password); // 获取数据库连接
System.out.println("数据库连接成功!");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (conn != null) {
try {
conn.close(); // 关闭数据库连接
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
```
在上述代码中,我们首先加载MySQL驱动程序,然后通过DriverManager获取数据库连接。接下来,我们可以使用Java提供的Statement对象或者PreparedStatement对象来执行SQL语句,实现增删改查的功能。
例如,以下是一个查询MySQL数据库中所有商品信息的示例代码:
```java
import java.sql.*;
public class QueryAllProducts {
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
Class.forName("com.mysql.jdbc.Driver"); // 加载MySQL驱动程序
String url = "jdbc:mysql://localhost:3306/test"; // 数据库连接URL
String user = "root"; // 数据库用户名
String password = "123456"; // 数据库密码
conn = DriverManager.getConnection(url, user, password); // 获取数据库连接
stmt = conn.createStatement(); // 创建Statement对象
String sql = "SELECT * FROM products"; // SQL查询语句
rs = stmt.executeQuery(sql); // 执行查询操作
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
double price = rs.getDouble("price");
int stock = rs.getInt("stock");
System.out.println("商品编号:" + id + ",商品名称:" + name + ",商品价格:" + price + ",商品库存:" + stock);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (rs != null) {
try {
rs.close(); // 关闭ResultSet对象
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stmt != null) {
try {
stmt.close(); // 关闭Statement对象
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close(); // 关闭数据库连接
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
```
在上述代码中,我们创建了一个Statement对象,并使用executeQuery方法执行SQL查询语句,获取了一个ResultSet对象,然后可以使用ResultSet对象的next方法遍历查询结果。在遍历过程中,我们可以通过ResultSet对象的getXXX方法获取查询结果中的具体字段值。
类似地,我们可以使用PreparedStatement对象来执行SQL插入、修改和删除操作。例如,以下是一个向MySQL数据库中插入一条新商品信息的示例代码:
```java
import java.sql.*;
public class InsertProduct {
public static void main(String[] args) {
Connection conn = null;
PreparedStatement pstmt = null;
try {
Class.forName("com.mysql.jdbc.Driver"); // 加载MySQL驱动程序
String url = "jdbc:mysql://localhost:3306/test"; // 数据库连接URL
String user = "root"; // 数据库用户名
String password = "123456"; // 数据库密码
conn = DriverManager.getConnection(url, user, password); // 获取数据库连接
String sql = "INSERT INTO products (name, price, stock) VALUES (?, ?, ?)"; // SQL插入语句
pstmt = conn.prepareStatement(sql); // 创建PreparedStatement对象
pstmt.setString(1, "新商品"); // 设置第一个参数值为商品名称
pstmt.setDouble(2, 99.9); // 设置第二个参数值为商品价格
pstmt.setInt(3, 100); // 设置第三个参数值为商品库存
int result = pstmt.executeUpdate(); // 执行插入操作
System.out.println("插入了" + result + "条新商品信息!");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (pstmt != null) {
try {
pstmt.close(); // 关闭PreparedStatement对象
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close(); // 关闭数据库连接
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
```
在上述代码中,我们使用了PreparedStatement对象来执行SQL插入操作,PreparedStatement对象可以预编译SQL语句,提高了执行效率。我们在SQL插入语句中使用了占位符(?),然后通过PreparedStatement对象的setXXX方法设置占位符的具体值。最后,我们使用executeUpdate方法执行插入操作,并获取插入结果的条数。
类似地,我们也可以使用PreparedStatement对象来执行SQL修改和删除操作。例如,以下是一个修改MySQL数据库中商品价格的示例代码:
```java
import java.sql.*;
public class UpdateProduct {
public static void main(String[] args) {
Connection conn = null;
PreparedStatement pstmt = null;
try {
Class.forName("com.mysql.jdbc.Driver"); // 加载MySQL驱动程序
String url = "jdbc:mysql://localhost:3306/test"; // 数据库连接URL
String user = "root"; // 数据库用户名
String password = "123456"; // 数据库密码
conn = DriverManager.getConnection(url, user, password); // 获取数据库连接
String sql = "UPDATE products SET price = ? WHERE id = ?"; // SQL修改语句
pstmt = conn.prepareStatement(sql); // 创建PreparedStatement对象
pstmt.setDouble(1, 88.8); // 设置第一个参数值为商品价格
pstmt.setInt(2, 1); // 设置第二个参数值为商品编号
int result = pstmt.executeUpdate(); // 执行修改操作
System.out.println("修改了" + result + "条商品信息!");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (pstmt != null) {
try {
pstmt.close(); // 关闭PreparedStatement对象
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close(); // 关闭数据库连接
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
```
在上述代码中,我们使用了PreparedStatement对象来执行SQL修改操作,PreparedStatement对象可以预编译SQL语句,提高了执行效率。我们在SQL修改语句中使用了占位符(?),然后通过PreparedStatement对象的setXXX方法设置占位符的具体值。最后,我们使用executeUpdate方法执行修改操作,并获取修改结果的条数。
同理,我们也可以使用PreparedStatement对象来执行SQL删除操作。例如,以下是一个删除MySQL数据库中某个商品的示例代码:
```java
import java.sql.*;
public class DeleteProduct {
public static void main(String[] args) {
Connection conn = null;
PreparedStatement pstmt = null;
try {
Class.forName("com.mysql.jdbc.Driver"); // 加载MySQL驱动程序
String url = "jdbc:mysql://localhost:3306/test"; // 数据库连接URL
String user = "root"; // 数据库用户名
String password = "123456"; // 数据库密码
conn = DriverManager.getConnection(url, user, password); // 获取数据库连接
String sql = "DELETE FROM products WHERE id = ?"; // SQL删除语句
pstmt = conn.prepareStatement(sql); // 创建PreparedStatement对象
pstmt.setInt(1, 1); // 设置第一个参数值为商品编号
int result = pstmt.executeUpdate(); // 执行删除操作
System.out.println("删除了" + result + "条商品信息!");
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
if (pstmt != null) {
try {
pstmt.close(); // 关闭PreparedStatement对象
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close(); // 关闭数据库连接
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
```
在上述代码中,我们使用了PreparedStatement对象来执行SQL删除操作,PreparedStatement对象可以预编译SQL语句,提高了执行效率。我们在SQL删除语句中使用了占位符(?),然后通过PreparedStatement对象的setXXX方法设置占位符的具体值。最后,我们使用executeUpdate方法执行删除操作,并获取删除结果的条数。