JSP连接MySQL数据库

Posted 北温如言

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSP连接MySQL数据库相关的知识,希望对你有一定的参考价值。

步骤

  1. 创建JSP项目
  2. 创建数据库
  3. 导入mysql的jar包文件
  4. 使用Java连接数据库执行增删改查

创建JSP项目

使用Eclipse创建一个jsp项目

创建数据库

我使用的是Navicat Premium 15来对数据库进行操作

1.点击连接,选择MySQL,连接所需要的数据库

2.只需要填写主机名、端口号、用户名以及密码就可以了,点击连接,便可以连接到数据库信息(前提是你的电脑上必须已经安装了MySQL数据库

3.右击❶处,选择创建数据库,根据你的选择,起一个数据库的名字,设置数据库的字符集


4.双击你新建的数据库,在表中新建表,设置需要的字段以及表名,保存即可

导入MySQL的jar包文件


MySQL的jar包有两种,一个是5.1.4的版本,另一个是8.0.29的版本,这次我使用jar包5.1.4的版本,因为新版本已经更新了连接语句,之后有机会再补充。

把jar包直接拖动到该目录下就可以使用

拖进去后,直接点击OK就可以了

使用Java连接数据库执行增删改查

新建一个jsp文件,先将sql的Java包导入文件中

<%@ page import="java.sql.*" %>

Class.forName("com.mysql.jdbc.Driver");  
String url = "jdbc:mysql://localhost:3306/test";
String name="root";
String password = "123456";
Connection conn = DriverManager.getConnection(url,name,password);

首先使用Class.forName(“com.mysql.jdbc.Driver”)去加载MySQL的驱动,再使用DriverManager.getConnection()去创建数据库连接语句,并返回一个Connection类型的对象

DriverManager.getConnection()的内容需要地址、用户名、以及密码。用户名和密码是数据库连接时使用的用户名和密码,地址则是jdbc:mysql://localhost:3306/数据库名,MySQL这个地址是固定的,数据库名是你想连接的数据库名字

Statement stmt = conn.createStatement();
这条语句用来创建一个用来处理sql语句的对象,之后就可以进行增删改查了

查询

String sql="select * from student"; 

ResultSet rs = stmt.executeQuery(sql);  

while(rs.next()) 
	out.println(rs.getString("name"));  
    out.println(rs.getString("age"));  

创建一个查询语句,student是我数据库中的表名.

再使用之前创建的stmt对象,使用stmt.executeQuery(sql)查询数据表中的信息,并将返回的数据集合成一个ResultSe对象

ResultSe中会有一个next()方法,从返回的数据中,一行一行的输出信息。但是还是用通过列名获取到相应数值。即用rs(ResultSe对象)getString(“列名”)获取该行的列名值。

增加

String sname;
int sage;
String sql = "insert into student values('"+sname+"','"+sage+"')";
int count = stmt.executeQuery(sql);

sname和sage都可以根据自己以及数据库要求修改,语句可以在我这个语句上修改一下。

执行完stmt.executeQuery(sql)语句后,返回一个int类型的数值,操作正常时返回值为1.

删除

String sql = "delete from student where sname = '"+ sname +"'";

在删除数据上,其他操作与增加相同,只有在sql语句上不相同,其他一样。同样,提交完数据后,也是返回一个int类型的数值,1代表成功。

修改

String sname;
int age;
String sql = "update student set sname=?,sage=? where sname=?";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1,sname);
pstmt.setInt(2,sage);
pstmt.setString(3,sname);
int count = pstmt.executeUpdate();

在修改数据库中,我采用的是占位符填充数据。这可以快速的向sql语句填充信息,一个?就是一个数据的位置。

pstmt.set类型(位置(从1开始),数据信息),要向里面填充什么类型的数据,就用set什么类型的数据函数。参数有两个,第一个是第几个占位符,第二个是要填充的数据。

**注意:**在填充完sql语句后,使用executeUpdate()语句进行更新,而不是之前使用的executeQuery()语句执行语句。

Jsp实现注册登录(连接Mysql)

Jsp实现注册登录(连接mysql)

最近在学jsp连接数据库,存个档吧

  1. 先在mysql里创建一个数据库
  2. 创建表
  3. 写一个用户注册的页面

registered.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>注册</title>
</head>
<body>
<form method="post" action="zc.jsp">
    输入用户名:<input type="text" name="username"><br>
    输入密码:<input type="text" name="userpwd"><br>
    确认密码:<input type="text" name="cuserpwd"><br>
    <input type="submit" value="注册">
</form>
</body>
</html>
  1. 读取用户的信息写入到数据库,完成注册
    zc.jsp
<%@ page import="java.sql.Connection" %>
<%@ page import="java.sql.Statement" %>
<%@ page import="java.sql.DriverManager" %>
<%@ page import="java.sql.SQLException" %> 
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%
    //获取用户输入信息
    request.setCharacterEncoding("utf-8");
    String username=request.getParameter("username");
    String userpwd=request.getParameter("userpwd");
    String cuserpwd=request.getParameter("cuserpwd");
    //判断两次密码是否相同
    if (cuserpwd.equals(userpwd))   
        Connection conn = null;
        Statement stmt = null;
        try 
            //连接驱动
            Class.forName("com.mysql.jdbc.Driver");
         catch (ClassNotFoundException e) 
            e.printStackTrace();
        
        //建立数据库连接
        String url="jdbc:mysql://localhost:3306/bookstore_demo";
        //数据库账号
        String user="root";
        //数据库密码
        String upwd="lj20011028";
        try 
            conn= DriverManager.getConnection(url,user,upwd);
            //创建发射器
            stmt=conn.createStatement();
            //创建sql语句
            String sql="insert into yonghu(username,userpwd) value ('"+username+"','"+userpwd+"')";
            //发送sql语句并接收结果
            int count = stmt.executeUpdate(sql);
            if (count>0)
                out.print("注册成功");
                out.print("<a href='logoin.jsp'>登录</a>");
            
            else
                out.print("注册失败");
            
            //关闭资源
            stmt.close();
            conn.close();

         catch (SQLException e) 
            e.printStackTrace();
        
    
    else 
        out.print("注册失败");
    
%>
</body>
</html>

  1. 再写一个用户登录界面

logoin.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>logoin</title>
</head>
<body>
    <form action="logoin_yz.jsp" method="post">
        用户名:<input type="text" name="username"><br>
        密码:<input type="password" name="userpwd" ><br>
        <input type="submit" value="登录">
    </form>
</body>
</html>

  1. 获取用户输入的信息,在数据库中查询有相同记录则登陆成功

logoin_yz.jsp

<%@ page import="java.sql.*" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title></title>
</head>
<body>
<%
    //获取用户输入信息
    request.setCharacterEncoding("utf-8");
    String username=request.getParameter("username");
    String userpwd=request.getParameter("userpwd");
    Connection conn = null;
    Statement stmt = null;
    try 
        //连接驱动
        Class.forName("com.mysql.jdbc.Driver");
     catch (ClassNotFoundException e) 
        e.printStackTrace();
    
    //建立数据库连接
    String url = "jdbc:mysql://localhost:3306/bookstore_demo";
    //数据库账号
    String uname="root";
    //数据库密码
    String upwd="lj20011028";

    try 
        conn = DriverManager.getConnection(url, uname, upwd);
        //创建发射器
        stmt = conn.createStatement();
        //创建sql语句
        String sql = "select*from bookstore_demo.yonghu where username='"+username+"' and userpwd='"+userpwd+"'";
        //发送sql语句并接收结果
        ResultSet rs = stmt.executeQuery(sql);
        if (rs.next()) 
            out.print("登陆成功");
         else 
            out.print("登陆失败");
        
        rs.close();
    
    catch (SQLException e) 
        e.printStackTrace();
    

%>
</body>
</html>
  1. 运行
    从注册页面开始运行

    若两次密码输入不相同则提示注册失败

    若两次密码输入相同则提示注册成功

    在mysql中可以通过查询查看获取的用户信息

注册成功点击登录跳转到登陆界面

输入注册的用户名和密码即可登陆成功

若输入的用户名与密码不匹配则登录失败

以上是关于JSP连接MySQL数据库的主要内容,如果未能解决你的问题,请参考以下文章

jsp怎样用jdbc连接mysql数据库

JSP连接MySQL数据库

Jsp实现注册登录(连接Mysql)

Jsp实现注册登录(连接Mysql)

Jsp实现注册登录(连接Mysql)

jsp怎么从mysql数据库把树形结构展现出来