javaweb连数据库一直连不上
本帖最后由 Marbles 于 2022-6-2 14:04 编辑1.数据库情况
我想连user这个数据库
用户名root 密码root
2.javaweb情况
①NewFile.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8" import ="java.sql.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
hello
<%
try {
// 加载数据库驱动,注册到驱动管理器
Class.forName("com.mysql.jdbc.Driver");
// 数据库连接字符串
String url = "jdbc:mysql://localhost:3306/user?useUnicode=true&characterEncoding=utf-8";
// 数据库用户名
String username = "root";
// 数据库密码
String password = "root ";
// 创建Connection连接
Connection conn = DriverManager.getConnection(url,username,password);
//判断 数据库连接是否为空
if(conn != null){
//输出连接信息
out.println("数据库连接成功!");
//关闭数据库连接
conn.close();
}else{
//输出连接信息
out.println("数据库连接失败!");
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
%>
</body>
</html>
②项目结构概况
3.运行后报错
①警告: {Context} Setting property 'source' to 'org.eclipse.jst.jee.server:t' did not find a matching property.
②警告: {Context} Setting property 'source' to 'org.eclipse.jst.jee.server:TestDB001' did not find a matching property.
③java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
4.尝试增加ServerOption选项后clean,没有解决。尝试网上数据库重启,重启失败。
尝试增加root远程登录,语句报错,失败
1,检查数据库服务正常启动
2.mysql 用户登录要检查用户名,密码,ip地址,你的密码root是不是多写了个空格,先在命令行登录测试下 命令窗口登录试一下,看是不是密码错误了 你直接终端测试账号密码是否能连接,有没有打错的情况
应该是用户密码错了,可以打开cmd,然后用命令去连mysql试试,(-d后面接的库名)
mysql -h127.0.0.1 -P3301 -uUsername -pPassword -d user
如果是测试写个类就行,我自己写了一个你参考下
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
public class JDBCTestTool {
static String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static String DB_URL = "jdbc:mysql://localhost:3306/RUNOOB";
static String USER = "root";
static String PASS = "123456";
public JDBCTestTool(){
//这里是读取配置文件db.properties,如果没有可以注释掉
/**
Properties prop = new Properties();
try {
String path = JDBCTestTool.class.getResource("/").toString();
path = path.replaceAll("file:", "")+"db.properties";
prop.load(new FileInputStream(path));
System.out.println(prop.getProperty("driver"));
JDBC_DRIVER = prop.getProperty("driver");
DB_URL = prop.getProperty("url");
USER = prop.getProperty("username");
PASS = prop.getProperty("password");
System.out.println(JDBC_DRIVER+" , url: "+DB_URL+", user: "+USER+", pwd: "+PASS);
} catch (Exception e) {
e.printStackTrace();
}
**/
}
public Connection getConnection(){
Connection conn = null;
try{
// 注册 JDBC 驱动
Class.forName(JDBC_DRIVER);
// 打开链接
System.out.println("连接数据库...");
DriverManager.setLoginTimeout(15);
conn = DriverManager.getConnection(DB_URL,USER,PASS);
// 执行查询
System.out.println(" 连接成功: "+conn.toString());
}catch(Exception e){
e.printStackTrace();
}
return conn;
}
public static void main(String[] args) {
JDBCTestTool jdbcTestTool = new JDBCTestTool();
Connection conn = null;
try{
conn = jdbcTestTool.getConnection();
}catch(Exception e){
e.printStackTrace();
}finally{
try{
if(conn!=null) conn.close();
}catch(SQLException se){
se.printStackTrace();
}
}
System.out.println("Goodbye!");
}
} 已解决,多谢各位。密码多打了个空格{:301_974:}
页:
[1]