首页 > 其他分享 >添加课程(maven + mybatis + tomcat)

添加课程(maven + mybatis + tomcat)

时间:2024-10-21 18:32:22浏览次数:5  
标签:String tomcat public maven place mybatis import lesson teacher

IDE:idea
框架:maven + mybatis + tomcat

具体的文件分布

需要的配置文件
maven的pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.stdu</groupId>
    <artifactId>NewClasses</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!--    默认打包为war包-->
    <packaging>war</packaging>

    <dependencies>
        <dependency>
            <!--            导入Servlet API-->
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.5</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.25</version>
        </dependency>

        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.6</version>
        </dependency>

        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>javax.servlet.jsp-api</artifactId>
            <version>2.3.3</version>
            <scope>provided</scope>
        </dependency>

        <!-- https://mvnrepository.com/artifact/jstl/jstl -->
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/taglibs/standard -->
        <dependency>
            <groupId>taglibs</groupId>
            <artifactId>standard</artifactId>
            <version>1.1.2</version>
        </dependency>



    </dependencies>



    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>

        <maven.compiler.target>1.8</maven.compiler.target>

        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>



    <build>
        <plugins>
            <!--            tomcat 插件-->
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <port>80</port>
                    <!--                    <path>/</path>-->
                </configuration>
            </plugin>


        </plugins>
    </build>

</project>

mybatis的mybatis-config.xml文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql:///test?useSSL=false&amp;allowPublicKeyRetrieval=true"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <package name="com.stdu"/>
<!--        <mapper resource="UserMapper.xml"/>-->
    </mappers>
</configuration>

具体步骤

  1. 首先,创建课程实体类
package com.stdu.pojo;

public class Lesson {
    private String lesson;
    private String teacher;
    private String place;


    public Lesson() {
    }

    public Lesson(String lesson, String teacher, String place) {
        this.lesson = lesson;
        this.teacher = teacher;
        this.place = place;
    }

    /**
     * 获取
     * @return lesson
     */
    public String getLesson() {
        return lesson;
    }

    /**
     * 设置
     * @param lesson
     */
    public void setLesson(String lesson) {
        this.lesson = lesson;
    }

    /**
     * 获取
     * @return teacher
     */
    public String getTeacher() {
        return teacher;
    }

    /**
     * 设置
     * @param teacher
     */
    public void setTeacher(String teacher) {
        this.teacher = teacher;
    }

    /**
     * 获取
     * @return place
     */
    public String getPlace() {
        return place;
    }

    /**
     * 设置
     * @param place
     */
    public void setPlace(String place) {
        this.place = place;
    }

    public String toString() {
        return "Lesson{lesson = " + lesson + ", teacher = " + teacher + ", place = " + place + "}";
    }
}

  1. 建立数据库表(名称尽量和java实体类的名称一致)
create table lesson(
    id int primary key auto_increment,
    lesson varchar(30),
    teacher varchar(30),
    place varchar(30)
);
  1. 建立前端html界面
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<center>
    <!-- 添加课程的表单 -->
    <h1>添加课程</h1>
<!--    action: 表单提交的地址-->
    <form action="http://localhost/NewClasses/commit" method = 'post' style="text-align: center;">
        课程名称: <input type="text" name="lesson"><br>
        老师姓名: <input type="text" name="teacher"><br>
        上课地点: <input type="text" name="place"><br>
        <input type="submit" value="提交">
    </form>
</center>

</body>
</html>

  1. LessonMapper接口和LessonMapper.xml
    在这两个文件中书写添加的sql语句
    深入解析 Mybatis 中 Mapper 接口的实现原理
package com.stdu.mapper;

import com.stdu.pojo.Lesson;
import org.apache.ibatis.annotations.Insert;

/**
 * LessonMapper接口用于定义与数据库中lesson表相关的数据操作方法
 */
public interface LessonMapper {
    /**
     * 插入一个新的lesson记录到数据库中
     * 
     * @param l Lesson对象,包含要插入的lesson、teacher和place字段
     * 
     * 使用MyBatis的@Insert注解来执行插入操作,注解内的SQL语句用于指定插入的字段和值
     * 这里的#{lesson}, #{teacher}, #{place}是参数占位符,它们将被Lesson对象的相应属性值替换
     */
    @Insert("insert into lesson(lesson,teacher,place) values(#{lesson},#{teacher},#{place})")
    void insert(Lesson l);
}

上面是直接在接口里使用MyBatis的@Insert注解来执行插入操作,也可以写在LessonMapper.xml文件中,如下

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.stdu.mapper.LessonMapper">
    <insert id="insert" >
        insert into lesson(lesson,teacher,place) values(#{lesson},#{teacher},#{place})
    </insert>

</mapper>
  1. 最主要的Servlet代码
    用来获取到前端输入框的内容和连接数据库
package com.stdu.web;

import com.stdu.mapper.LessonMapper;
import com.stdu.pojo.Lesson;
import com.stdu.util.SqlSessionFactoryUtils;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

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;
import java.io.InputStream;

// 处理"/commit"路径的HTTP请求
@WebServlet("/commit")
public class a01Servlet extends HttpServlet {
    /**
     * 处理GET请求的方法
     * 
     * @param req 用于获取请求信息的HttpServletRequest对象
     * @param resp 用于发送响应信息的HttpServletResponse对象
     * @throws ServletException 如果Servlet遇到异常
     * @throws IOException 如果发生输入或输出异常
     */
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //解决乱码问题
        req.setCharacterEncoding("utf-8");
        resp.setHeader("content-type","text/html;charset=utf-8");

        // 获取请求参数中的课程、教师和地点信息
        String l = req.getParameter("lesson");
        String t = req.getParameter("teacher");
        String p = req.getParameter("place");

        // 加载MyBatis配置文件
        String resource = "mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);

        // 构建SqlSessionFactory对象,用于获取SqlSession
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession sqlSession = sqlSessionFactory.openSession();

        // 获取LessonMapper接口的实现类对象,用于执行数据库操作
        LessonMapper mapper = sqlSession.getMapper(LessonMapper.class);

        // 插入新的课程信息到数据库,并提交事务
        mapper.insert(new Lesson(l,t,p));
        sqlSession.commit();

        // 向客户端发送添加成功的响应信息
        resp.getWriter().write("添加成功!");
    }
    
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //post请求也调用doGet方法
        this.doGet(req, resp);
    }
}


结果展示

查看数据库,添加成功

标签:String,tomcat,public,maven,place,mybatis,import,lesson,teacher
From: https://www.cnblogs.com/XYu1230/p/18489801

相关文章

  • mybatis - [09] 动态SQL
    题记部分 一、if&test如果id,name,age不为空,则按照指定的值进行查询。如果这三者都是空(null和空字符串),则该sql执行结果为全表查询的结果集。<selectid="getUserByUser"parameterTytpe="vo.User"resultMap="userResultMap">selectin,name,agefrom......
  • SpringBoot 2.7.18 集成 Mybatis Plus + Druid
    目录Pom依赖yml配置Config配置Mapper扫描EntityMapper.xmlMapper-SysMenuMapperServiceController一并附上Mybatis和MybatisPlus的使用区别MyBatisMapper.XML标签使用说明Pom依赖Mybatis<!--统一管理jar包版本--><properties><druid-boot.version>1.......
  • mybatis的一对多,多对一,以及多对多的配置和使用
      根据这个应用场景,我们需要获取在查询一个用户信息的时候还要去读取这个用户发布的帖子现在我们来看一看用户级联文章在JavaBean中的编写方式,这就是一对多在JavaBean中的配置现在我们再来看一看Mybatis的Mapper该如何编写一对多?很简单,就是在resultMap标签中配置<coll......
  • 关于maven配置文件settings的参数说明
    Maven的配置文件(Maven的安装目录/conf/settings.xml)和Maven仓库下(默认的Maven仓库的是用户家目录下的.m2文件,可以另行制定)的settings.xml文件在Maven中提供了一个settings.xml文件来定义Maven的全局环境信息。这个文件会存在于Maven的安装目录的conf子目录下面,或者是用户家目......
  • Maven入门到进阶:构建、依赖与插件管理详解
    文章目录一、Maven介绍1、什么是Maven2、Maven的核心功能二、Maven核心概念1、坐标GAVP1.1、GroupId1.2、ArtifactId1.3、Version1.3.1、版本号的组成1.4、Packaging2、POM、父POM和超级POM2.1、POM(ProjectObjectModel)2.1、父POM(ParentPOM)2.3、超级POM(SuperPOM......
  • Docker搭建Maven私服
    第一步:拉取nexus3的镜像拉取nexus3的镜像,也可指定版本,本文使用3.71.0版本进行安装dockerpullsonatype/nexus3//拉取最新版本或dockerpullsonatype/nexus3:3.71.0//拉取指定版本第二步:查看nexus3镜像输入dockerimages查看nexus3镜像是否下载成功,如图所示即下载成......
  • IDEA社区版如何用tomcat运行war包
    前言我们在使用IDEA开发Java应用时,有时候需要运行的不是jar包,而是war包,但IDEA社区版默认是不支持tomcat容器的,无法直接运行war包。不过好在我们有一个强大的插件来支持我们使用tomcat,那么,我们应该如何操作呢?如何配置smarttomcat首先,我们打开设置面板。然后,我们点击下插件市......
  • IDEA社区版如何用tomcat运行war包
    前言我们在使用IDEA开发Java应用时,有时候需要运行的不是jar包,而是war包,但IDEA社区版默认是不支持tomcat容器的,无法直接运行war包。不过好在我们有一个强大的插件来支持我们使用tomcat,那么,我们应该如何操作呢?如何配置smarttomcat首先,我们打开设置面板。然后,我们点击下插......
  • IDEA如何配置自己的maven和maven设置阿里云仓库
    前言我们在使用IDEA开发Java应用时,一般是需要配置maven仓库的,那么我们应该如何配置呢?此外,默认的maven仓库下载速度很慢,我们一般可以配置阿里云或者华为云仓库,这个又应该怎么配置呢?如何配置maven及配置阿里云仓库首先,我们打开设置面板。然后,我们点击【Build,Execution,Deploym......
  • Maven依赖管理之BOM
    Maven依赖管理之BOMMaven依赖管理之BOM目录什么是BOM一个BOM的格式怎么使用BOM通过parent引用通过dependencyManagement引用怎么查看依赖的某个BOM的具体清单版本冲突时的一些规则何为依赖调节参考资料什么是BOM#BOM全称是BillOfMaterials,译作材料清单。BOM本身并不......