// Java Web应用开发技术教程 // 张庆华 // 清华大学出版社 // 2022年3月第一版 // ver 1.0 // 4.3.3 JDBC访问数据库的基本步骤 // 程序 4-1:JDBC连接数据库基本步骤 package chap4samp; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class Chap4JDBC { public void testJDBC() { Connection dbConn = null; Statement stmt = null; ResultSet rs = null; try { // 1加载驱动程序 String DBDRIVER = "com.mysql.cj.jdbc.Driver";// MySQL Class.forName(DBDRIVER); // 2建立连接 String url = "jdbc:mySql://localhost:3306/javawebdb?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false";// 此条语句在一行,无空格。 String userName = "root"; String password = "123456"; dbConn = DriverManager.getConnection(url, userName, password); // 3创建SQL数据库操作对象 stmt = dbConn.createStatement(); // 4生成SQL语句,在本例中,为了展示JDBC数据库连接和操作,需要用到创建数据表、添加记录、查询记录等几条SQL语句 String createtablesql = "create table studentinfo(stdNo varchar(10) not null,stdName varchar(20),stdAge int(11),stdMajor varchar(255), stdHometown varchar(255),PRIMARY KEY(stdNo))";// 创建表SQL语句 String insertsql = "insert into studentinfo values('2017001','张琴',18,'物流工程','襄阳')";// 添加记录SQL语句 String querysql = "select * from studentinfo";// 查询记录SQL语句 // String deletetablesql="DROP TABLE studentinfo";//删除表SQL语句 // 5执行SQL语句 stmt.executeQuery(createtablesql);// 创建表 stmt.executeQuery(insertsql);// 添加记录,多次运行会提示记录已存在 rs = stmt.executeQuery(querysql);// 查询记录 // 6处理结果集 while (rs.next()) { String stdNo = rs.getString("stdNo"); String stdName = rs.getString("stdName"); int stdAge = rs.getInt("stdAge"); String stdHometown = rs.getString("stdHometown"); System.out.println("学号:" + stdNo + ", 姓名:" + stdName + ", 年龄:" + stdAge + ", 生源地:" + stdHometown); } // stmt.executeUpdate(deletetablesql);//删除表 } catch (Exception e) { e.printStackTrace(); } finally { // 7关闭所有数据库资源 if (rs != null) { try { rs.close(); } catch (SQLException e) { e.printStackTrace(); } } if (stmt != null) { try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if (dbConn != null) { try { dbConn.close(); } catch (SQLException e) { e.printStackTrace(); } } } } public static void main(String[] args) { Chap4JDBC mytest = new Chap4JDBC(); mytest.testJDBC(); } }仍然有错,该怎么修改
时间: 2024-02-29 15:55:10 浏览: 124
在程序中出现了以下错误:
1. 驱动程序名写错了,应该为 "com.mysql.jdbc.Driver"。
2. 数据库连接语句写错了,应该为 "jdbc:mysql://localhost:3306/javawebdb?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false"。
3. 执行SQL语句时,应该使用 "stmt.executeUpdate(createtablesql)" 和 "stmt.executeUpdate(insertsql)",而不是 "stmt.executeQuery()"。
修改后的程序如下:
```java
package chap4samp;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Chap4JDBC {
public void testJDBC() {
Connection dbConn = null;
Statement stmt = null;
ResultSet rs = null;
try {
// 1加载驱动程序
String DBDRIVER = "com.mysql.jdbc.Driver";
Class.forName(DBDRIVER);
// 2建立连接
String url = "jdbc:mysql://localhost:3306/javawebdb?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false";
String userName = "root";
String password = "123456";
dbConn = DriverManager.getConnection(url, userName, password);
// 3创建SQL数据库操作对象
stmt = dbConn.createStatement();
// 4生成SQL语句,在本例中,为了展示JDBC数据库连接和操作,需要用到创建数据表、添加记录、查询记录等几条SQL语句
String createtablesql = "create table studentinfo(stdNo varchar(10) not null,stdName varchar(20),stdAge int(11),stdMajor varchar(255), stdHometown varchar(255),PRIMARY KEY(stdNo))";// 创建表SQL语句
String insertsql = "insert into studentinfo values('2017001','张琴',18,'物流工程','襄阳')";// 添加记录SQL语句
String querysql = "select * from studentinfo";// 查询记录SQL语句
// String deletetablesql="DROP TABLE studentinfo";//删除表SQL语句
// 5执行SQL语句
stmt.executeUpdate(createtablesql);// 创建表
stmt.executeUpdate(insertsql);// 添加记录,多次运行会提示记录已存在
rs = stmt.executeQuery(querysql);// 查询记录
// 6处理结果集
while (rs.next()) {
String stdNo = rs.getString("stdNo");
String stdName = rs.getString("stdName");
int stdAge = rs.getInt("stdAge");
String stdHometown = rs.getString("stdHometown");
System.out.println("学号:" + stdNo + ", 姓名:" + stdName + ", 年龄:" + stdAge + ", 生源地:" + stdHometown);
}
// stmt.executeUpdate(deletetablesql);//删除表
} catch (Exception e) {
e.printStackTrace();
} finally {
// 7关闭所有数据库资源
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (dbConn != null) {
try {
dbConn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
public static void main(String[] args) {
Chap4JDBC mytest = new Chap4JDBC();
mytest.testJDBC();
}
}
```
阅读全文