这篇文章写自本人大三学习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数据库
发布评论