栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

多模块maven项目并用git提交

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

多模块maven项目并用git提交

多模块maven项目并用git提交 一.要求 1.创建一个名为servlet_Exam的多模块maven项目, 其中有三个子模块分别为

​ 1) 基础模块servlet_pojo
​ 2) 基础模块servlet_dao
​ 3) web模块servlet_web

2.设置其依赖关系:
**servlet_web 依赖 servlet_dao**

​ servlet_dao 依赖 servlet_pojo

3.子模块功能实现说明

1) 基础模块servlet_pojo
在该模块内定义一个bean,名称为User;
其相应的属性: id(整型) name(字符串) age(整型) gender(字符) birthday(日期) hobbies(字符串数组)

2) 基础模块servlet_dao
说明: 1. 数据库使用mysql数据库

​ 2.创建一张User表, 表中的字段分别为:

​ 1.id 序号

​ 2.name 姓名

​ 3.age 年龄

​ 4.gender 性别

​ 5.birthday 生日

​ 6.hobbies 兴趣爱好

​ 7.createtime 创建时间(日期类型)

​ 8.updatetime 修改时间(日期类型)

该模块主要用于定义数据库相关操作类与方法
该模块分别创建两个类: a. DBUtil b. UserDao
a. DBUtil
在该类中封装jdbc连接mysql数据库方法(1. 数据库驱动获取方法 2.数据库关闭方法)

b. UserDao
在该类中封装:

​ 1) 一个插入User对象到数据表的方法
​ 实现要求:

​ 1.createtime与updatetime两个字段值为当前时间,使用字符串固定值

​ 2.插入的数据字符串类型使用中文

​ 3.id为自动生成(对顺序无要求)

​ 2) 一个通过id来得到相应User对象的方法

3) web模块servlet_web
该模块用于前台展示信息

​ 1.在index.jsp页面中定义一个form表单,该表单需要向后台传递
​ 用户信息
​ 要求: 1)使用post方式
​ 2)action: “insert.do”

​ 2.创建一个InsertServlet类,继承HttpServlet类
​ 在该类相关方法中实现从前台获取数据,传递给Dao层进行插入
​ 备注: a. 请求路径: http://localhost:8088/insert.do
b. 需要处理中文问题
​ c. 插入成功,向前台返回"数据已成功录入!"

​ 3.创建一个home.jsp页面
​ 该页面定义一个form表单,用于输入用户id查询相应用户信息
​ 要求: 1)使用get方式
​ 2)action: “update.do”

​ 4.创建一个UpdateServlet类,继承HttpServlet类
​ 该类用于返回用户信息
​ 要求: 1) 如果查询到了用户,就将信息返回至前台
​ 2) 如果查询不到用户,就向前台返回"该用户不存在"

4.git提交

1) 在码云创建名为"Servlet_Exam"的仓库,仓库设置为公开仓库而非私有;
2) 并使用remote方式将本地仓库与远程仓库进行连接;
3) 在本地创建.gitignore文件并对其进行配置;
.gitignore配置要求:
只允许上传 “.java” “.xml” “.jsp” “.html”
4) 将本地项目上传至远程仓库

二.创建项目 首先创建servlet_Exam的maven项目(我的项目名字是Exam)


接着创建子模块项目

servlet_pojo 和 servlet_dao 模块和创建servlet_Exam一样
servlet_web创建时有所区别

创建完成后的项目

注意: 要把主项目也就是Exam项目里的src文件删除

三.设置其依赖关系

包括所需的jar包地址

包含的jar包有

Exam的pom.xml


    4.0.0

    com.huawei
    Exam
    1.0-SNAPSHOT
    
        servlet_pojo
        servlet_dao
        servlet_web
    

    pom
    Exam

    
        
            junit
            junit
            4.12
            test
        
        
        
            mysql
            mysql-connector-java
            
            8.0.26
        
        
            javax.servlet
            javax.servlet-api
            3.1.0
            provided
        
    

servlet_pojo的pom.xml



  
    Exam
    com.huawei
    1.0-SNAPSHOT
  
    
  4.0.0
  servlet_pojo
  servlet_pojo

servlet_dao的pom.xml



  4.0.0

  com.huawei
  servlet_dao
  1.0-SNAPSHOT
  servlet_dao

  
    
      com.huawei
      servlet_pojo
      1.0-SNAPSHOT
    
      
          junit
          junit
          4.12
          test
      
  


servlet_web的pom.xml



  4.0.0
  
    Exam
    com.huawei
    1.0-SNAPSHOT
      
  
  servlet_web
  1.0-SNAPSHOT
  war
    
  
    
      com.huawei
      servlet_dao
      1.0-SNAPSHOT
    
  

四.编写servlet_pojo模块

bea层 User
package com.huawei.bean;
import com.huawei.util.Tools;
import java.util.Arrays;
import java.util.Date;



public class User {
    private int id;
    private String name;
    private int age;
    private char gender;
    private Date birthday;
    private String[] hobbies;

    public User() {
    }

    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 int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public char getGender() {
        return gender;
    }

    public void setGender(char gender) {
        this.gender = gender;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    public String[] getHobbies() {
        return hobbies;
    }
    
    public String getHobbie(){
        String str= Tools.arrayToString(this.hobbies);
        return str;
    }

    public void setHobbies(String[] hobbies) {
        this.hobbies = hobbies;
    }

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + ''' +
                ", age=" + age +
                ", gender=" + gender +
                ", birthday=" + birthday +
                ", hobbies=" + Arrays.toString(hobbies) +
                '}';
    }
}
util层 Tools
package com.huawei.util;



public class Tools {
    public static String arrayToString(String[] strs){
        String str="";
        for (String s:strs) {
            str+=s+",";
        }
        str=str.substring(0,str.length()-1);
        return str;
    }
}
五.编写servlet_dao模块

建表 首先在mysql数据库选择一个库,然后创建一个user表
create table user (
	id int primary key not null auto_increment,
	name varchar(10) not null,
	age int(3) ,
	gender char(2),
	birthday date,
	hobbies varchar(50),
	createtime datetime,
	updatetime datetime
	);
util层 DBUtil
package com.huawei.util;

import java.sql.*;



public class DBUtil {
	//注意:test_0507为数据库名
    public static String url = "jdbc:mysql://localhost:3306/test_0507";
    //注意:高版本的JDBC驱动, mysql-connector-java 8以上版本
    //JDBC driver 由"com.mysql.jdbc.Driver"改为"com.mysql.cj.jdbc.Driver"
    public static String drive = "com.mysql.cj.jdbc.Driver";

    
    static {
        try {
            Class.forName(drive);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }

    
    public static Connection getConnection() {
        try {
            return DriverManager.getConnection(url, "root", "123456");
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

    
    public static void close(ResultSet rs,Statement st,Connection conn){
        if (rs!=null) {
            try {
                rs.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (st!=null) {
            try {
                st.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        if (conn!=null) {
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }

    
    public static void main(String[] args) {
        Connection connection=getConnection();
        System.out.println(connection);
    }
}
Tools
package com.huawei.util;



public class Tools {
    public static String arrayToString(String[] strs){
        String str="";
        for (String s:strs) {
            str+=s+",";
        }
        str=str.substring(0,str.length()-1);
        return str;
    }
}
dao层 UserDao
package com.huawei.dao;

import com.huawei.bean.User;
import com.huawei.util.DBUtil;
import com.huawei.util.Tools;

import java.sql.*;



public class UserDao {
    
    public int insert(User user) {
        int n = 0;
        //sql语句
        String sql = "insert into user(name,age,gender,birthday,hobbies,createtime) 					  values(?,?,?,?,?,now())";
        //初始化连接
        Connection conn = DBUtil.getConnection();
        PreparedStatement pst = null;
        try {
            pst = conn.prepareStatement(sql);
            pst.setString(1, user.getName());
            pst.setInt(2, user.getAge());
            pst.setString(3, user.getGender() + "");
            pst.setDate(4, new Date(user.getBirthday().getTime()));
            pst.setString(5, Tools.arrayToString(user.getHobbies()));
            n = pst.executeUpdate();
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DBUtil.close(null, pst, conn);
        }
        return n;
    }

    
    public User findUserById(int id) {
        User user = null;
        String sql = "select * from user where id=?";
        Connection conn = DBUtil.getConnection();
        PreparedStatement pst = null;
        ResultSet rs = null;
        try {
            pst = conn.prepareStatement(sql);
            pst.setInt(1, id);
            rs = pst.executeQuery();
            while (rs.next()) {
                user = new User();
                user.setId(rs.getInt("id"));
                user.setName(rs.getString("name"));
                user.setAge(rs.getInt("age"));
                user.setGender(rs.getString("gender").charAt(0));
                user.setBirthday(rs.getDate("birthday"));
                user.setHobbies(rs.getString("hobbies").split(","));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            DBUtil.close(rs, pst, conn);
        }
        return user;
    }
}
六.编写servlet_web模块

servlet层 InsertServlet
package com.huawei.servlet;

import com.huawei.bean.User;
import com.huawei.dao.UserDao;
import com.huawei.util.DateTools;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;



//insert.do必须和index.jsp的action值一致
@WebServlet("/insert.do")
public class InsertServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doPost(req, resp);
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");
        resp.setCharacterEncoding("utf-8");
        resp.setContentType("text/html; charset=UTF-8");
        User user = new User();
        //获取姓名并设置User对象姓名
        String name = req.getParameter("name");
        user.setName(name);
        //获取年龄并设置年龄
        String age = req.getParameter("age");
        if (age != null && !age.equals("")) {
            //如果有值就设置获取的值
            int age1 = Integer.parseInt(age);
            user.setAge(age1);
        } else {
            //如果没有则设置为18
            user.setAge(18);
        }
        //获取性别并设置User对象性别
        char gender = req.getParameter("gender").charAt(0);
        user.setGender(gender);
        //获取生日并判断处理
        String birthday =req.getParameter("birthday");
        user.setBirthday(DateTools.dateStrToDate(birthday));
        //获取爱好并设置User对象爱好
        String[] hobbies = req.getParameterValues("hobbies");
        user.setHobbies(hobbies);
        UserDao userDao=new UserDao();
        if (userDao.insert(user)>=1) {
            resp.getWriter().println("数据已成功录入");
        } else {
            resp.getWriter().println("数据录入失败");
        }
    }
}
UpdateServlet
package com.huawei.servlet;

import com.huawei.bean.User;
import com.huawei.dao.UserDao;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;


//update.do必须和home.jsp的action值一致
@WebServlet("/update.do")
public class UpdateServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");
        resp.setCharacterEncoding("utf-8");
        resp.setContentType("text/html; charset=UTF-8");
        //获取id值
        String idStr=req.getParameter("id");
        int id=0;
        //如果不为空,就转为int类型
        if (idStr!=null&&!idStr.equals("")){
            id=Integer.parseInt(idStr);
        }
        UserDao userDao=new UserDao();
        User user=userDao.findUserById(id);
        //如果不为空值, 就将数据返回给show.jsp
        if (user!=null){
            req.setAttribute("User",user);
            req.getRequestDispatcher("/show.jsp").forward(req,resp);
        }else{
            resp.getWriter().println("该用户不存在!!");
        }
    }
}
util层 DateTools
package com.huawei.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;



public class DateTools {
    
    public static Date dateStrToDate(String dt){
        Date date=new Date();
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
        try {
            date =sdf.parse(dt);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return date;
    }
}
webapp index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>


    
    用户注册


用户注册
请输入姓名:
请输入年龄:
请输入性别:
请输入生日:
请输入爱好:看书 踢足球 玩游戏

home.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>


    
    查询


    
请输入编号:
show.jsp
<%@ page import="com.huawei.bean.User" %>
<%@ page import="java.util.Arrays" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
                                 <%-- 注意: isELIgnored="false"表示页面不忽略EL表达式--%>
								  <%-- isELIgnored是默认为true的, EL表达式会被忽略--%>


    
    用户信息



    <%--普通获取值的写法--%>
    <%
        User user = (User) request.getAttribute("User");
    %>
    用户名:<%=user.getName()%>
年龄:<%=user.getAge()%>
性别:<%=user.getGender()%>
生日:<%=user.getBirthday()%>
爱好:<%=Arrays.toString(user.getHobbies())%>

<%--EL表达式写法--%> 用户名:${User.name}
年龄:${User.age}
性别:${User.gender}
生日:${User.birthday}
爱好:${User.hobbie}
配置tomcat服务器





七.git提交项目 创建远程仓库 在gitee上创建一个远程仓库


配置过虑文件

项目关联git



项目与远程仓库建立连接


提交项目 add文件

commit文件


push文件



[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UhDO6OL6-1652097060577)(31.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5ihZ6u4j-1652097060578)(32.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GjCXTKFQ-1652097060578)(33.png)]

链图片转存中…(img-sHVzu7Su-1652097060570)]

[外链图片转存中…(img-cMmQXBh1-1652097060570)]

七.git提交项目 创建远程仓库 在gitee上创建一个远程仓库

[外链图片转存中…(img-7rYVkAxI-1652097060571)]

[外链图片转存中…(img-aXAz83MW-1652097060572)]

[外链图片转存中…(img-00Gneshb-1652097060573)]

配置过虑文件

[外链图片转存中…(img-VOL88Lzv-1652097060573)]

项目关联git

[外链图片转存中…(img-l5APitNX-1652097060573)]

[外链图片转存中…(img-QvGQpOUy-1652097060574)]

[外链图片转存中…(img-txlQklTY-1652097060574)]

项目与远程仓库建立连接

[外链图片转存中…(img-nHI7jNwG-1652097060575)]

[外链图片转存中…(img-8V5gFyuK-1652097060575)]

提交项目 add文件

[外链图片转存中…(img-xNGKfqN8-1652097060576)]

commit文件

[外链图片转存中…(img-VTgAx1dK-1652097060576)]

[外链图片转存中…(img-KXeFmiG3-1652097060577)]

push文件

[外链图片转存中…(img-UhDO6OL6-1652097060577)]

[外链图片转存中…(img-5ihZ6u4j-1652097060578)]

[外链图片转存中…(img-GjCXTKFQ-1652097060578)]

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/870848.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号