这篇文章写自本人大三学习Java web,为了连接这个MySQL结果摸了一天,人都连接连麻了

首先是eclipseEE的下载

点此下载

不要点击那个DOWNLOAD,直接点击那个文件,或者使用其他镜像,安装教程可以去其他地方找

然后是MySQL的下载,我使用的是命令行

MySQL :: Download MySQL Community Server

安装教程也可以去找其他博客

下面开始eclipseEE和MySQL的连接

打开eclipse新建Dynamic web project,没有的话点其他在web里面,这也没有就去参考其他博客将模块加进去

然后去MySQL官网找负责连接数据库和eclipse的包

MySQL :: Download Connector/J

一定要找跟你数据库的版本对应的jar包!,我是8.0.27,就用了8.0.27的包

 

下载第一个,下载完后找到那个包,右键直接复制

然后打开在eclipse中,选择你新建的项目里的src/main/webapp/WEB-INF/lib文件夹,直接粘贴进去

然后右键它,选择构建路径,添加至路径(英文版就是带快捷键B的那个选项),点击就加载OK了

(对,就是这样的一个问题,给我折磨半天)

然后进行连接测试

我采用的是新建了一个JSP页面,代码如下,因为是我作业的代码,所以有一些是和数据库相关可以忽略,这里我也直接把我的作业丢上来,是JSP连接数据库在页面上show表的内容,然后登录跳转弹出登陆人的信息

 index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
import="java.sql.*" pageEncoding="utf-8"%>
<html>
	<body>
		<%

			Class.forName("com.mysql.cj.jdbc.Driver");//加载MYSQL JDBC驱动程序   
			Connection connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/javaweb","root","123456");
			//数据库连接,3306是端口号,javaweb是数据库名称,root是用户,123456是密码
			Statement stat = connect.createStatement();
			String sql_2 = "select * from student";
			ResultSet rs = stat.executeQuery(sql_2);
			
			out.println("账号"+"  "+"密码 "+"  "+"学号 "+"  "+"姓名 <br>");  
            while (rs.next()) {  
            	out.println(rs.getString("id")+"    "+rs.getString("password")+"    "+rs.getInt("XH")+"    "+rs.getString("name")+" <br>");
            }
			stat.close();
			connect.close();
    	%>
    	<input type="button" value="登录" onClick="window.location.href='login.jsp'">
	</body>
</html>

 这是其中一种的连接方式,要注意其中的close顺序,先开后闭合

Class.forName("com.mysql.cj.jdbc.Driver");//加载MYSQL JDBC驱动程序   
			Connection connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/javaweb","root","123456");
			//数据库连接
			Statement stat = connect.createStatement();
stat.close();
			connect.close();

login.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>登陆页面</title>
</head>
<body>

<form id="form1" name="form1" method="post" action="check.jsp">
  账号:
  <label>
  <input type="text" name="id" />
  </label>
  <p>密码:
    <label>
    <input type="text" name="password" />
    </label>
  </p>
  <p>
    <label>
    <input type="submit" name="Submit" value="提交" />
    </label>
  </p>
</form>

</body>
</html>

 check.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
import="java.sql.*" pageEncoding="utf-8"%>
<body>
<%
	String id=new String(request.getParameter("id"));
	request.getSession().setAttribute("id",id);
	String password=new String(request.getParameter("password"));
	try {
		Class.forName("com.mysql.jdbc.Driver");// 加载数据库驱动,注册到驱动管理器
		String url = "jdbc:mysql://localhost:3306/javaweb";	// 数据库连接字符串
		String usename = "root";		// 数据库用户名
		String psw = "123456";	  // 数据库密码
		Connection conn = DriverManager.getConnection(url,usename,psw);	// 创建Connection连接
		if(conn != null){			// 判断 数据库连接是否为空
			String sql="select * from student where id='"+id+"' and password='"+ password + "'";
			Statement stmt = conn.createStatement();
			ResultSet rs=stmt.executeQuery(sql);
			if(rs.next()){
				response.sendRedirect("show.jsp");				
			}else{
				out.print("用户名或密码错误,请重新输入!");
				%>
				<a href="javascript:history.back()">返回</a>
				<% 
			}			

			// 关闭数据库连接
			conn.close();
		}else{
			// 输出连接信息
			out.println("数据库连接失败!");						
		}
	} catch (ClassNotFoundException e) {
		e.printStackTrace();
	} catch (SQLException e) {
		e.printStackTrace();
	}
%>
</body>

这里是另一种连接的写法,采用try也可以发现有哪些出错

<%
try {
		Class.forName("com.mysql.jdbc.Driver");// 加载数据库驱动,注册到驱动管理器
		String url = "jdbc:mysql://localhost:3306/javaweb";	// 数据库连接字符串
		String usename = "root";		// 数据库用户名
		String psw = "123456";	  // 数据库密码
		Connection conn = DriverManager.getConnection(url,usename,psw);	// 创建Connection连接
		if(conn != null){			// 判断 数据库连接是否为空
			String sql="select * from student where id='"+id+"' and password='"+ password + "'";
			Statement stmt = conn.createStatement();
			ResultSet rs=stmt.executeQuery(sql);
			if(rs.next()){
				response.sendRedirect("show.jsp");				
			}else{
				out.print("用户名或密码错误,请重新输入!");
				%>
				<a href="javascript:history.back()">返回</a>
				<% 
			}			

			// 关闭数据库连接
			conn.close();
		}else{
			// 输出连接信息
			out.println("数据库连接失败!");						
		}
	} catch (ClassNotFoundException e) {
		e.printStackTrace();
	} catch (SQLException e) {
		e.printStackTrace();
	}
%>

然后是最后的show.jsp,这里是实现了一个用账号密码登录后,展示登录者的学号和姓名,也可以根据自己的需求改

<%@ page language="java" contentType="text/html; charset=UTF-8"
import="java.sql.*" pageEncoding="utf-8"%>
<html>
	<body>
		<%
			Class.forName("com.mysql.cj.jdbc.Driver");//加载MYSQL JDBC驱动程序   
			Connection connect = DriverManager.getConnection("jdbc:mysql://localhost:3306/javaweb","root","123456");
			Statement stat = connect.createStatement();
			String id = request.getSession().getAttribute("id").toString();
			PreparedStatement ps = connect.prepareStatement("select XH,name from student where id = ?");
            ps.setString(1, id);   //第一个参数指的是上面执行的sql语句中的第几个参数,第二个是要设置的值
            ResultSet rs = ps.executeQuery();
			out.println("登录成功!");
			out.println("学号 "+"  "+"姓名 <br>");  
            while (rs.next()) {  
            	out.println(rs.getInt("XH")+"    "+rs.getString("name")+" <br>");
            }
			stat.close();
			connect.close();
    	%>
	</body>
</html>

效果如下

 

就是这样了,这篇文字仅仅是自己饱受数据库折磨,包括包和代码的问题之后我直接暴走了,希望能对后来初学者有帮助,如果有任何不对的地方也欢迎各位提出意见指出错误 。

 

更多推荐

eclipse中的web项目连接MySQL数据库