From 314b5349b8bfb45d7a2ae0f17c48c705cf7c3cdb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E8=B5=B7=E7=91=9E?= <3148024859@qq.com> Date: Wed, 21 Jun 2023 00:27:46 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AC=AC=E4=B9=9D=E6=AC=A1=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...15\344\271\240\345\260\217\347\273\223.md" | 586 ++++++++++++++++++ ...65\345\275\261\347\256\241\347\220\206.md" | 448 +++++++++++++ 2 files changed, 1034 insertions(+) create mode 100644 "50 \345\274\240\350\265\267\347\221\236/20230620 \345\244\215\344\271\240\345\260\217\347\273\223.md" create mode 100644 "50 \345\274\240\350\265\267\347\221\236/20230620 \347\224\265\345\275\261\347\256\241\347\220\206.md" diff --git "a/50 \345\274\240\350\265\267\347\221\236/20230620 \345\244\215\344\271\240\345\260\217\347\273\223.md" "b/50 \345\274\240\350\265\267\347\221\236/20230620 \345\244\215\344\271\240\345\260\217\347\273\223.md" new file mode 100644 index 0000000..6ffeedb --- /dev/null +++ "b/50 \345\274\240\350\265\267\347\221\236/20230620 \345\244\215\344\271\240\345\260\217\347\273\223.md" @@ -0,0 +1,586 @@ +Bean类 + +```java +package bean; +//bean类是为了封装从数据库的信息然后来传输 + +public class Movie { + private int id; + private String name; + private String actor; + private String dirctor; + private String language; + private int time; + private String type;//这个东西最好是按照你最后显示的效果来显示 + + //比如:你数据库里面一个是type的种类表,另一个表显示的是type的id而你是type的name + //而要显示的是type的name,那么可以把这个的数据类型设成type的name + //然后在sql语句里面 + //联表查询,在数据库里面先看效果后符号这个页面里面要显示的效果一致就可以用这个类封装 + + //构造器,toString,get和post + @Override + public String toString() { + return "Movie{" + + "id=" + id + + ", name='" + name + '\'' + + ", actor='" + actor + '\'' + + ", dirctor='" + dirctor + '\'' + + ", language='" + language + '\'' + + ", time=" + time + + ", type='" + type + '\'' + + '}'; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getActor() { + return actor; + } + + public void setActor(String actor) { + this.actor = actor; + } + + public String getDirctor() { + return dirctor; + } + + public void setDirctor(String dirctor) { + this.dirctor = dirctor; + } + + public String getLanguage() { + return language; + } + + public void setLanguage(String language) { + this.language = language; + } + + public int getTime() { + return time; + } + + public void setTime(int time) { + this.time = time; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public Movie() { + } + + public Movie(int id, String name, String actor, String dirctor, String language, int time, String type) { + this.id = id; + this.name = name; + this.actor = actor; + this.dirctor = dirctor; + this.language = language; + this.time = time; + this.type = type; + } +} + +``` + +```java +package bean; +//bean类是为了封装从数据库的信息然后来传输 + +public class Type { + private int id; + private String name; + //构造器,toString,get和post + @Override + public String toString() { + return "type{" + + "id=" + id + + ", name='" + name + '\'' + + '}'; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Type() { + } + + public Type(int id, String name) { + this.id = id; + this.name = name; + } +} + +``` + +utils + +```java +package utils; + +import java.sql.*; +//这个时固定的,唯一有差别的就是Conn的数据库名 +public class DBUtil { + //注册驱动 + static { + try { + Class.forName("com.mysql.jdbc.Driver"); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + System.out.printf("forName"); + } + } + + //获取链接 + public static Connection getConn(){ + + Connection conn = null; + try { + conn = DriverManager.getConnection("jdbc:mysql:///movie_db?useSSl=false&characterEncoding=utf8", "root", "root"); + } catch (SQLException e) { + e.printStackTrace(); + System.out.println("getConn"); + } + + return conn; + } + + //查询的方法 + public static ResultSet select(String sql,Object...keys){ + Connection conn = getConn(); + ResultSet res = null; + + try { + PreparedStatement pst = conn.prepareStatement(sql); + for (int i = 0; i < keys.length; i++) { + pst.setObject((i+1),keys[i]); + } + res = pst.executeQuery(); + } catch (SQLException e) { + e.printStackTrace(); + System.out.println("select"); + } + + return res; + } + + //增删改的方法 + public static int update(String sql,Object...keys){ + Connection conn = getConn(); + int res = 0; + + try { + PreparedStatement pst = conn.prepareStatement(sql); + for (int i = 0; i < keys.length; i++) { + pst.setObject((i+1),keys[i]); + } + res = pst.executeUpdate(); + } catch (SQLException e) { + e.printStackTrace(); + System.out.println("Update"); + } + + return res; + } +} + +``` + +selvect + +all + +```java +package selvect; + +import bean.Movie; +import utils.DBUtil; + +import javax.servlet.*; +import javax.servlet.http.*; +import javax.servlet.annotation.*; +import java.io.IOException; +import java.sql.Array; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; + +@WebServlet("/All") +public class AllServlet extends HttpServlet { + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + //编写sql语句,获取你所需要的数据,然后使用工具类 + String sql="SELECT movie_id,movie_name,actor,dirctor,`language`,movie_time,type_name FROM movie_info,type_info WHERE movie_info.type_id=type_info.type_id ORDER BY movie_id;"; + ResultSet res = DBUtil.select(sql); + //创建一个对应类的集合来接收数据 + ArrayList list = new ArrayList<>(); + + //将结果集循环,用get+数据类型(对应名字或者位置),创建临时变量和对象,把变量存入对象中,对象存入集合中 + try { + while (res.next()){ + int id = res.getInt("movie_id"); + String name = res.getString("movie_name"); + String actor = res.getString("actor"); + String dirctor = res.getString("dirctor"); + String language = res.getString("language"); + int time = res.getInt("movie_time"); + String type = res.getString("type_name"); + Movie movie = new Movie(id, name, actor, dirctor, language, time, type); + list.add(movie); + } + } catch (SQLException e) { + e.printStackTrace(); + System.out.println("doGet"); + } + + //request方法,先用setAttribute将(“集合的名字”,集合)放入发射器中 + //再用getRequestDispatcher(“对应的地址”).forward(request,response)方法把集合发送到指定的位置,该位置若调用这个集合用${集合的名字}调用 + request.setAttribute("list",list); + request.getRequestDispatcher("/WEB-INF/ShowAll.jsp").forward(request,response); + } + + @Override + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + } +} + +``` + +add + +```java +package selvect; + +import bean.Type; +import utils.DBUtil; + +import javax.servlet.*; +import javax.servlet.http.*; +import javax.servlet.annotation.*; +import java.io.IOException; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; + +@WebServlet("/Add") +public class AddServlet extends HttpServlet { + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + //编写sql语句,获取你所需要的数据,然后使用工具类 + String sql="SELECT * FROM type_info;"; + ResultSet res = DBUtil.select(sql); + //创建一个对应类的集合来接收数据 + ArrayList list = new ArrayList<>(); + + //将结果集循环,用get+数据类型(对应名字或者位置),创建临时变量和对象,把变量存入对象中,对象存入集合中 + try { + while (res.next()){ + int id = res.getInt(1); + String type = res.getString(2); + Type type1 = new Type(id, type); + list.add(type1); + } + } catch (SQLException e) { + e.printStackTrace(); + System.out.println("doGet"); + } + + //request方法,先用setAttribute将(“集合的名字”,集合)放入发射器中 + //再用getRequestDispatcher(“对应的地址”).forward(request,response)方法把集合发送到指定的位置,该位置若调用这个集合用${集合的名字}调用 + request.setAttribute("list",list); + request.getRequestDispatcher("/WEB-INF/Add.jsp").forward(request,response); + } + + @Override + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + + //处理字符集防止中文乱码(request。setCharacterEncoding(“utf-8”) + request.setCharacterEncoding("utf-8"); + + //用request中的getParameter(“对应的表单传入的数据的名称”)来获取数据,类型用String接受就行 + String name = request.getParameter("name"); + String actor = request.getParameter("actor"); + String dirctor = request.getParameter("dirctor"); + String language = request.getParameter("language"); + String time = request.getParameter("time"); + String type = request.getParameter("type"); + + System.out.println(name+actor+dirctor+language+time+type); + + //编写sql语句调用工具类 + String sql="INSERT INTO movie_info VALUES(0,?,?,?,?,?,?);"; + int update = DBUtil.update(sql, name, actor, dirctor, language, time, type); + + //判断结果 + if(update>0){ + //结果数量大于0,则添加成功,用request.sendRedirect来指定跳转的页面 + response.sendRedirect("/All"); + }else { + //结果数量小于于0,则添加失败,可以传一个提示到网页来 + request.setAttribute("tag","添加失败"); + request.getRequestDispatcher("/WEB-INF/tag.jsp").forward(request,response); + } + } +} + +``` + +delete + +```java +package selvect; + +import utils.DBUtil; + +import javax.servlet.*; +import javax.servlet.http.*; +import javax.servlet.annotation.*; +import java.io.IOException; + +@WebServlet("/Delete") +public class DeleteServlet extends HttpServlet { + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + request.setCharacterEncoding("utf-8"); + String id = request.getParameter("id"); + String sql = "DELETE FROM movie_info WHERE movie_info.movie_id=?"; + int update = DBUtil.update(sql, id); + if (update > 0) { + response.sendRedirect("/All"); + } else { + request.setAttribute("tag", "删除失败"); + request.getRequestDispatcher("/WEB-INF/tag.jsp").forward(request, response); + } + } + + @Override + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + + } + } + + +``` + +select + +```java +package selvect; + +import bean.Movie; +import utils.DBUtil; + +import javax.servlet.*; +import javax.servlet.http.*; +import javax.servlet.annotation.*; +import java.io.IOException; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; + +@WebServlet("/Select") +public class SelectServlet extends HttpServlet { + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + + } + + @Override + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + request.setCharacterEncoding("utf-8"); + String name1 = request.getParameter("name"); + String sql="SELECT movie_id,movie_name,actor,dirctor,`language`,movie_time,type_name FROM movie_info,type_info WHERE movie_info.type_id=type_info.type_id AND movie_info.movie_name LIKE \"%"+name1+"%\" ORDER BY movie_id "; + System.out.println(sql); + ResultSet res = DBUtil.select(sql); + ArrayList list = new ArrayList<>(); + System.out.println(name1); + try { + while (res.next()){ + int id = res.getInt("movie_id"); + String name = res.getString("movie_name"); + String actor = res.getString("actor"); + String dirctor = res.getString("dirctor"); + String language = res.getString("language"); + int time = res.getInt("movie_time"); + String type = res.getString("type_name"); + Movie movie = new Movie(id, name, actor, dirctor, language, time, type); + list.add(movie); + } + } catch (SQLException e) { + e.printStackTrace(); + System.out.println("doGet"); + } + + request.setAttribute("list",list); + request.getRequestDispatcher("/WEB-INF/ShowAll.jsp").forward(request,response); + } +} + +``` + +jsp + +showall + +```html +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%-- + Created by IntelliJ IDEA. + User: Administrator + Date: 2023-06-19 + Time: 15:03 + To change this template use File | Settings | File Templates. +--%> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + Title + + + + + + + +
+查询: + +
+ + + + + + + + + + +<%-- 这个是forEach循环,items为循环的集合,var为给集合命名的别名,方便调用,调用里面的成员变量时名字要和Bean类相同--%> + + + + + + + + + + + + +
编号电影名称主演导演语种时长(分钟)类型名称
${a.id}${a.name}${a.actor}${a.dirctor}${a.language}${a.time}${a.type}删除
+ + + +``` + +add + +```html +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> + +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + Title + + +

添加电影信息

+ +<%--如果添加信息的话,外面默认要包括一个form表单,在里面设置一个action来指定发送的位置,再加上method来指定发送的结果到post还是get--%> +<%--记得再设置一个input(type为submit)用于把表单信息发送--%> +
+ + + + +<%-- type:种类 text:文本 name:名称,就是在selvect中调用时用的别名--%> + + + + + + + + + + + + + + + + + + + + + + +
电影名称:
主演:
导演:
语种:
时长:
类型名称: +<%-- 这个是展开的动态列表,主要是select为展开的列表,option为列表中的选项 其中value是里面对应的数据--%> +<%-- 大概的流程就是,你通过 中名称开选择你的选项,然后对应的
+
+ + + +``` + +tag + +```html + +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + Title + + +${tag} +返回主界面 + + + +``` + diff --git "a/50 \345\274\240\350\265\267\347\221\236/20230620 \347\224\265\345\275\261\347\256\241\347\220\206.md" "b/50 \345\274\240\350\265\267\347\221\236/20230620 \347\224\265\345\275\261\347\256\241\347\220\206.md" new file mode 100644 index 0000000..e05f642 --- /dev/null +++ "b/50 \345\274\240\350\265\267\347\221\236/20230620 \347\224\265\345\275\261\347\256\241\347\220\206.md" @@ -0,0 +1,448 @@ +```java +package bean; + +public class MovieInfo { + int movieId; + String movieName; + String actor; + String dirctor; + String language; + int movieTime; + int typeId; + String typName; + + public MovieInfo() { + } + + public MovieInfo(int movieId, String movieName, String actor, String dirctor, String language, int movieTime, int typeId, String typName) { + this.movieId = movieId; + this.movieName = movieName; + this.actor = actor; + this.dirctor = dirctor; + this.language = language; + this.movieTime = movieTime; + this.typeId = typeId; + this.typName = typName; + } + + public int getMovieId() { + return movieId; + } + + public void setMovieId(int movieId) { + this.movieId = movieId; + } + + public String getMovieName() { + return movieName; + } + + public void setMovieName(String movieName) { + this.movieName = movieName; + } + + public String getActor() { + return actor; + } + + public void setActor(String actor) { + this.actor = actor; + } + + public String getDirctor() { + return dirctor; + } + + public void setDirctor(String dirctor) { + this.dirctor = dirctor; + } + + public String getLanguage() { + return language; + } + + public void setLanguage(String language) { + this.language = language; + } + + public int getMovieTime() { + return movieTime; + } + + public void setMovieTime(int movieTime) { + this.movieTime = movieTime; + } + + public int getTypeId() { + return typeId; + } + + public void setTypeId(int typeId) { + this.typeId = typeId; + } + + public String getTypName() { + return typName; + } + + public void setTypName(String typName) { + this.typName = typName; + } + + @Override + public String toString() { + return "MovieInfo{" + + "movieId=" + movieId + + ", movieName='" + movieName + '\'' + + ", actor='" + actor + '\'' + + ", dirctor='" + dirctor + '\'' + + ", language='" + language + '\'' + + ", movieTime=" + movieTime + + ", typeId=" + typeId + + ", typName='" + typName + '\'' + + '}'; + } +} + +``` + +```java +package bean; + +public class TypeInfo { + int typeId; + String typeName; + + public TypeInfo() { + } + + public TypeInfo(int typeId, String typeName) { + this.typeId = typeId; + this.typeName = typeName; + } + + public int getTypeId() { + return typeId; + } + + public void setTypeId(int typeId) { + this.typeId = typeId; + } + + public String getTypeName() { + return typeName; + } + + public void setTypeName(String typeName) { + this.typeName = typeName; + } + + @Override + public String toString() { + return "TypeInfo{" + + "typeId=" + typeId + + ", typeName='" + typeName + '\'' + + '}'; + } +} + +``` + +```java +package servlet; + +import bean.TypeInfo; +import untils.DBUtil; + +import javax.servlet.*; +import javax.servlet.http.*; +import javax.servlet.annotation.*; +import java.io.IOException; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; + +@WebServlet("/add") +public class addServlet extends HttpServlet { + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + // 将数据库所有信息用jsp显示 + // 1. 编写sql语句 + String sql = "select *from type_info"; + // 2. 将sql语句传给工具类 得到结果集 + ResultSet rs= DBUtil.query(sql); + // 3. 设置一个集合 遍历结果集 封装一个对象将对象添加到集合里 + ArrayList list = new ArrayList<>(); + try { + while (rs.next()){ + int id = rs.getInt(1); + String name = rs.getString(2); + TypeInfo type = new TypeInfo(id, name); + list.add(type); + } + } catch (SQLException e) { + e.printStackTrace(); + } + // 4.将集合添加到request域中 + request.setAttribute("list",list); + // 5. 请求转发给jsp + request.getRequestDispatcher("/WEB-INF/add.jsp").forward(request,response); + } + @Override + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + //1. post 必须先处理乱码 + request.setCharacterEncoding("utf-8"); + //2. 接收表单数据 + String movieName = request.getParameter("movieName"); + String actor = request.getParameter("actor"); + String dirCtor = request.getParameter("dirCtor"); + String language = request.getParameter("language"); + String movieTime = request.getParameter("movieTime"); + String type = request.getParameter("type"); + //3. 编写sql语句 + String sql = "insert into movie_info values (?,?,?,?,?,?,?)"; + //4. 将sql语句传到工具类 得到影响的行数 + int i = DBUtil.Update(sql,null,movieName,actor, dirCtor, language, movieTime, type); + //5. 根据影响的行数进行提示信息 + if (i>0) { + //直接跳转到首页 + response.sendRedirect("/list"); + }else { + // 添加错误的提示信息 + request.setAttribute("msg","添加失败"); + // 转发给jsp + request.getRequestDispatcher("/WEB-INF/msg.jsp").forward(request,response); + } + } +} + + +``` + +```java +package servlet; + +import bean.MovieInfo; +import untils.DBUtil; + +import javax.servlet.*; +import javax.servlet.http.*; +import javax.servlet.annotation.*; +import java.io.IOException; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; + +@WebServlet("/list") +public class listServlet extends HttpServlet { + @Override + protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + //显示所有的电影信息 + // 1.编写sql + String sql = "select * from movie_info m,type_info t where m.type_id=t.type_id"; + //2.将sql传给工具类的查询方法,得到结果集 + ResultSet rs = DBUtil.query(sql); + //3.设置一个房源的集合,遍历结果集,将结果封装成房源对象,再将对象添加到集合 + //设置一个电影的集合 + ArrayList list = new ArrayList<>(); + //遍历结果集 + try { + while (rs.next()) { + //将结果封装成电影对象 + int id = rs.getInt(1); + String name = rs.getString(2); + String actor = rs.getString(3); + String dirctor = rs.getString(4); + String language = rs.getString(5); + int time = rs.getInt(6); + int id1 = rs.getInt(7); + String tname = rs.getString(9); + MovieInfo movie = new MovieInfo(id, name, actor, dirctor, language, time, id1, tname); + list.add(movie); + } + + } catch (SQLException e) { + e.printStackTrace(); + } + //4.把集合添加到request域中 + request.setAttribute("list",list); + //将请求转发给jsp + request.getRequestDispatcher("/WEB-INF/list.jsp").forward(request,response); + } + + + + @Override + protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + + } +} + +``` + +```java +package untils; + +import java.sql.*; + +public class DBUtil { + //全员都是静态 + //1.定义好url,user,pwd + static String url="jdbc:mysql:///movie_db?characterEncoding=utf8"; + static String user="root"; + static String pwd="root"; + //注册驱动 + static { + try { + Class.forName("com.mysql.jdbc.Driver"); + } catch (ClassNotFoundException e) { + e.printStackTrace(); + } + } + //3.获取连接的方法 + public static Connection getConn() throws SQLException { + Connection conn = DriverManager.getConnection(url, user, pwd); + return conn; + } + //4.通用的查询方法,接收sql,返回结果集 + public static ResultSet query(String sql, Object...keys) { + ResultSet rs = null; + try { + Connection conn = getConn(); + PreparedStatement pst = conn.prepareStatement(sql); + for (int i = 0; i < keys.length; i++) { + pst.setObject((i+1),keys[i]); + } + rs = pst.executeQuery(); + } catch (SQLException e) { + e.printStackTrace(); + } + return rs; + } + //5.通用的update方法,返回影响的行数 + public static int Update(String sql, Object...keys) { + int rs = 0; + try { + Connection conn = getConn(); + PreparedStatement pst = conn.prepareStatement(sql); + for (int i = 0; i < keys.length; i++) { + pst.setObject((i + 1), keys[i]); + } + rs = pst.executeUpdate(); + } catch (SQLException e) { + e.printStackTrace(); + } + return rs; + } + } +``` + +```java +a<%@ taglib prefix="C" uri="http://java.sun.com/jsp/jstl/core" %> + +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + Title + + +

添加电影信息

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
电影名称:
主演
导演
语种
时长
类型名称 + +
+
+ + + +``` + +```java +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + $Title$ + + + + + + + + + + + + + + + + + + + + + + + + +
编号电影名称主演导演语种时长(分钟)类型名称
${key.movieId}${key.movieName}${key.actor}${key.dirctor}${key.language}${key.movieTime}${key.typName}
+ + + +``` + +```java +<%-- + Created by IntelliJ IDEA. + User: Administrator + Date: 2023-06-16 + Time: 17:20 + To change this template use File | Settings | File Templates. +--%> +<%@ page contentType="text/html;charset=UTF-8" language="java" %> + + + Title + + +${msg} + + + +``` + -- Gitee