dbConn = DriverManager.getConnection(dbURL,userName,userPwd);
时间: 2024-04-11 07:30:42 浏览: 144
这行代码是用来建立与数据库的连接。其中,`dbURL` 是数据库的 URL,`userName` 是登录数据库的用户名,`userPwd` 是登录数据库的密码。`DriverManager.getConnection()` 方法返回一个 `Connection` 对象,可以通过该对象来执行数据库相关的操作,如查询、插入、更新等。
相关问题
import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; public class L43 { public static final String url = "jdbc:mysql://localhost:3306;DatabaseName=yggl"; private final static String username = "root"; private final static String password = "ziyexue"; public static void main(String args[]) { try { Class.forName("com.mysql.cj.jdbc.Driver"); System.out.println("加载驱动成功!"); } catch (Exception e) { e.p rintStackTrace(); System.out.println("OK"); } try { String url="jdbc:mysql://localhost:3306/yggl"+"?useUnicode=true&characterEncoding=UTF-8&userSSL=true&serverTimezone=UTC"; Connection dbConn=DriverManager.getConnection(url, username, password); Statement st= dbConn.createStatement(); System.out.println("连接数据库成功!"); } catch (Exception e) { e.printStackTrace(); System.out.println("SQL Server连接失败!"); } } } 这段代码哪有问题
这段代码有两个问题:
1. 在`url` 变量中,`DatabaseName` 应该改为 `databaseName`,并且连接字符串最后应该加上具体的数据库名,正确的格式应该是 `jdbc:mysql://localhost:3306/yggl`。
2. `e.p rintStackTrace()` 中间的空格应该去掉,正确的写法是 `e.printStackTrace()`。
下面是修改后的代码:
```java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
public class L43 {
public static final String url = "jdbc:mysql://localhost:3306/yggl";
private final static String username = "root";
private final static String password = "ziyexue";
public static void main(String args[]) {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
System.out.println("加载驱动成功!");
} catch (Exception e) {
e.printStackTrace();
System.out.println("OK");
}
try {
String url = "jdbc:mysql://localhost:3306/yggl" + "?useUnicode=true&characterEncoding=UTF-8&userSSL=true&serverTimezone=UTC";
Connection dbConn = DriverManager.getConnection(url, username, password);
Statement st = dbConn.createStatement();
System.out.println("连接数据库成功!");
} catch (Exception e) {
e.printStackTrace();
System.out.println("SQL Server连接失败!");
}
}
}
```
// 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(); } }仍然有错,该怎么修改
在程序中出现了以下错误:
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();
}
}
```
阅读全文