【JavaWeb】一步一步教你 javaweb 入门实例 (JSP servlet MySQL)

【JavaWeb】一步一步教你 javaweb 入门实例 (JSP servlet MySQL)

    • 一、数据库
    • 二、新建项目
      • index.jsp
      • LogServlet.java
      • User.java
      • DBUtil.java
      • LogDao
        • 最重要的一步,数据库连接用完后一定要关闭,调用close方法!!!
      • LogServlet,java
    • 三、测试效果
    • 代码下载

2020-07-07
完善增删改查功能


一、数据库

数据库:web
表:user

字段 类型
id int
username varchar
password varchar

在这里插入图片描述【JavaWeb】一步一步教你 javaweb 入门实例 (JSP servlet MySQL)_第1张图片

二、新建项目

MVC分层架构
模型(model)-视图(view)-控制器(controller)
src 放后端代码,webcontent放前端代码,lib放第三方jar包
【JavaWeb】一步一步教你 javaweb 入门实例 (JSP servlet MySQL)_第2张图片
关键代码说明:

index.jsp

【JavaWeb】一步一步教你 javaweb 入门实例 (JSP servlet MySQL)_第3张图片

LogServlet.java

【JavaWeb】一步一步教你 javaweb 入门实例 (JSP servlet MySQL)_第4张图片
servlet起名规则一般是功能+Servlet,单词首字母大写。

【JavaWeb】一步一步教你 javaweb 入门实例 (JSP servlet MySQL)_第5张图片这个@WebServlet()里的是这个servlet的访问路径名
在这里插入图片描述在这里插入图片描述
@WebServlet() 对应form里的action的值。

【JavaWeb】一步一步教你 javaweb 入门实例 (JSP servlet MySQL)_第6张图片在这里插入图片描述
servlet里有两个方法,一个是doGet,一个是doPost,对应form里的method。
doGet和doPost有两个参数,request是用户请求,response是服务器响应。
在这里插入图片描述在这里插入图片描述
表单提交获取值servlet从request里获取,调用request的getParameter()方法。这个request.getParameter()里的参数对应input的name属性。这俩是对应的。
【JavaWeb】一步一步教你 javaweb 入门实例 (JSP servlet MySQL)_第7张图片【JavaWeb】一步一步教你 javaweb 入门实例 (JSP servlet MySQL)_第8张图片
到这里,servlet就可以获取前端传递的值了。
下一步建实体类bean。

User.java

【JavaWeb】一步一步教你 javaweb 入门实例 (JSP servlet MySQL)_第9张图片
【JavaWeb】一步一步教你 javaweb 入门实例 (JSP servlet MySQL)_第10张图片
bean类名一般和表名对应,属性和字段名对应,属性要private修饰,通过public的get和set方法取值赋值,bean体现了java三大特性之一的封装。

【JavaWeb】一步一步教你 javaweb 入门实例 (JSP servlet MySQL)_第11张图片【JavaWeb】一步一步教你 javaweb 入门实例 (JSP servlet MySQL)_第12张图片
这是生成get、set方法的步骤,eclipse可以帮我们自动生成。

DBUtil.java

util是工具类,比如连接数据库,处理中文乱码,格式化时间日期,调用api等等,DBUtil是比较常用的,一般写好一次,以后直接复制使用,注意修改数据库地址,用户名密码。java连接mysql需要一个jar包,放到lib目录下。DBUtil里一般写个测试方法,先试试能不能连,以免后面写一堆,找不出错来。

package util;

import java.sql.*;

public class DBUtil {
     
	// 本地数据库地址
    private static final String URL = "jdbc:mysql://localhost:3306/web?useUnicode=true&characterEncoding=UTF8&useSSL=false&serverTimezone=GMT"; 
    // 本地数据库用户名
    private static final String USERNAME = "root"; 
    // 本地数据库密码
    private static final String PASSWORD = "root"; 
	 // 数据库驱动
    private static final String jdbcName = "com.mysql.cj.jdbc.Driver";

	/**
	* 获取数据库连接
	*/
    public static Connection getConnection() throws Exception {
     
        Class.forName(jdbcName);
        Connection connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
        return connection;
    }

    /* 测试方法 */
    public static void main(String[] args) throws Exception {
     
        Connection connection = DBUtil.getConnection();
        if (connection != null) {
     
            System.out.println("连接成功");
        } else {
     
            System.out.println("连接失败");
        }
        connection.close();
    }
}

【JavaWeb】一步一步教你 javaweb 入门实例 (JSP servlet MySQL)_第13张图片

LogDao

接下来完善Dao层。DAO(Data Access Object) 数据访问对象。dao层里面一般就写增删改查的方法,不干别的。比如现在登录,需要一个查的方法通过用户名查用户信息。

【JavaWeb】一步一步教你 javaweb 入门实例 (JSP servlet MySQL)_第14张图片
下一步写sql语句,要先确保sql语句是可以用的。

select * from user where username = ?

【JavaWeb】一步一步教你 javaweb 入门实例 (JSP servlet MySQL)_第15张图片【JavaWeb】一步一步教你 javaweb 入门实例 (JSP servlet MySQL)_第16张图片【JavaWeb】一步一步教你 javaweb 入门实例 (JSP servlet MySQL)_第17张图片
然后写到java里,需要注意的是参数是问号。
【JavaWeb】一步一步教你 javaweb 入门实例 (JSP servlet MySQL)_第18张图片
这个方法的返回值是User对象,所以先实例化一个。

数据类型 对象 = new 类()
User user = new User()

下一步获取数据库连接。有了数据库工具类,就不用每次都写那么多连数据库的了
【JavaWeb】一步一步教你 javaweb 入门实例 (JSP servlet MySQL)_第19张图片
在这里插入图片描述
获取数据库连接,报错一般放到横线上就会告诉你怎么改。这说调用这个方法需要抛出异常,点第一个就行。
【JavaWeb】一步一步教你 javaweb 入门实例 (JSP servlet MySQL)_第20张图片
下一步是执行sql语句,这里叫预编译处理,优点是传值方便,防止XSS注入。
【JavaWeb】一步一步教你 javaweb 入门实例 (JSP servlet MySQL)_第21张图片
下一步是传值,这个PreparedStatement有一些方法是设置值用的,字符串setString(),数字setInt()。那个1是第一个参数,有几个问号就是几个参数。setString(1, username)就是把调用这个方法传进来的值赋给sql的第一个?位置上
【JavaWeb】一步一步教你 javaweb 入门实例 (JSP servlet MySQL)_第22张图片
ResultSet这个类是获取查询结果的,实例化一个结果集对象。这个结果集有个游标,每从里面取一条记录,就往后走一个。
【JavaWeb】一步一步教你 javaweb 入门实例 (JSP servlet MySQL)_第23张图片【JavaWeb】一步一步教你 javaweb 入门实例 (JSP servlet MySQL)_第24张图片
Resultset有个方法叫next(),调用next方法之后游标就往后走,发现有一条数据,就返回了true。

【JavaWeb】一步一步教你 javaweb 入门实例 (JSP servlet MySQL)_第25张图片
然后从rs里获取值,rs.getInt是获取数字类型的数据,括号里的参数是字段名,按照如图所示对应。
【JavaWeb】一步一步教你 javaweb 入门实例 (JSP servlet MySQL)_第26张图片

最重要的一步,数据库连接用完后一定要关闭,调用close方法!!!

【JavaWeb】一步一步教你 javaweb 入门实例 (JSP servlet MySQL)_第27张图片到这dao层的一个查询方法就写好了。

LogServlet,java

接下来完善servlet
【JavaWeb】一步一步教你 javaweb 入门实例 (JSP servlet MySQL)_第28张图片实例化一个Dao层对象。使用try catch捕获异常。
【JavaWeb】一步一步教你 javaweb 入门实例 (JSP servlet MySQL)_第29张图片【JavaWeb】一步一步教你 javaweb 入门实例 (JSP servlet MySQL)_第30张图片
在User类中重写toString方法,用来输出对象的值。

三、测试效果

【JavaWeb】一步一步教你 javaweb 入门实例 (JSP servlet MySQL)_第31张图片【JavaWeb】一步一步教你 javaweb 入门实例 (JSP servlet MySQL)_第32张图片

代码下载

GitHub:https://github.com/wlgc1801lzh/javaweb-example
码云:https://gitee.com/wlgc1801lzh/javaweb-example

你可能感兴趣的:(Java,Web,java,jdbc,mysql)