JavaWeb:servlet+MyBatis+ajax (商品管理系统)

这篇具有很好参考价值的文章主要介绍了JavaWeb:servlet+MyBatis+ajax (商品管理系统)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、开发环境
  • IDEA
  • mysql8.0
  • ajax
  • servlet
2、环境准备

1、创建数据库

CREATE DATABASE ajax_test;
USE ajax_test;

-- 删除tb_brand表
DROP TABLE IF EXISTS tb_brand;
-- 创建tb_brand表
CREATE TABLE tb_brand
(
    -- id 主键
    id           INT PRIMARY KEY AUTO_INCREMENT,
    -- 品牌名称
    brand_name   VARCHAR(20),
    -- 企业名称
    company_name VARCHAR(20),
    -- 排序字段
    ordered      INT,
    -- 描述信息
    description  VARCHAR(100),
    -- 状态:0:禁用  1:启用
    STATUS       INT
);
-- 添加数据
INSERT INTO tb_brand (brand_name, company_name, ordered, description, STATUS)
VALUES ('三只松鼠', '三只松鼠股份有限公司', 5, '好吃不上火', 0),
       ('华为', '华为技术有限公司', 100, '华为致力于把数字世界带入每个人、每个家庭、每个组织,构建万物互联的智能世界', 1),
       ('小米', '小米科技有限公司', 50, 'are you ok', 1);


SELECT * FROM tb_brand;

SELECT id, brand_name AS brandName, company_name AS companyName FROM tb_brand;

2、创建web项目

3、pom.xml文件导入依赖

<dependencies>
    <!-- mybatis -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.5</version>
    </dependency>

    <!--mysql-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.46</version>
    </dependency>

    <!--servlet-->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <scope>provided</scope>
    </dependency>

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

    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>1.2.58</version>
    </dependency>
</dependencies>

4、编写mybatis配置文件

<?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>
    <settings>
        <!--在控制台显示SQL语句-->
        <setting name="logImpl" value="STDOUT_LOGGING"/>
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>

    <!--起别名-->
    <typeAliases>
        <package name="com.demo.pojo"/>
    </typeAliases>

    <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:///ajax_test?useSSL=false"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <!--扫描mapper-->
        <package name="com.demo.mapper"/>
    </mappers>
</configuration>

5、创建项目结构导入js

JavaWeb:servlet+MyBatis+ajax (商品管理系统),java,ajax,servlet,mybatis

6、编写Mybatis工具类

public class MyBatisUtils {
    private static SqlSessionFactory sqlSessionFactory;
    // 我们只需要一个SqlSessionFactory,在静态代码块中创建SqlSessionFactory
    static {
        try {
            // 编写代码让MyBatis跑起来,执行SQL语句
            String resource = "mybatis-config.xml";
            // 加载核心配置文件
            InputStream inputStream = Resources.getResourceAsStream(resource);
            // 得到SqlSession工厂,赋值给成员变量
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    // 返回SqlSessionFactory
    public static SqlSessionFactory getSqlSessionFactory() {
        return sqlSessionFactory;
    }

    // 返回SqlSession
    public static SqlSession openSession() {
        return sqlSessionFactory.openSession();
    }

    public static SqlSession openSession(boolean autoCommit) {
        return sqlSessionFactory.openSession(autoCommit);
    }
}

7、编写实体类

public class Brand {
    // id 主键
    private Integer id;
    // 品牌名称
    private String brandName;
    // 企业名称
    private String companyName;
    // 排序字段
    private Integer ordered;
    // 描述信息
    private String description;
    // 状态:0:禁用  1:启用
    private Integer status;
    ....省略方法
}
3、功能实现
3.1、查询所有

JavaWeb:servlet+MyBatis+ajax (商品管理系统),java,ajax,servlet,mybatis

代码实现

1、在mapper包下编写BrandMapper接口,编写查询所有方法

public interface BrandMapper {
    @Select("select * from tb_brand;")
    List<Brand> selectAllBrand();
}

2、在service包下创建BrandService类

public class BrandService {
    public List<Brand> selectAllBrand() {
        SqlSession sqlSession = MyBatisUtils.openSession();
        BrandMapper mapper = sqlSession.getMapper(BrandMapper.class);
        List<Brand> listBrand = mapper.selectAllBrand();
        return listBrand;
    }
}

3、在web包下编写SeleAllServlet

@WebServlet(value = "/selectAllServlet")
public class SelectAllServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        //1、调用查询
        BrandService brandService = new BrandService();
        List<Brand> brands = brandService.selectAllBrand();

        // 2、将集合转化为JSON数据
        String jsonString = JSON.toJSONString(brands);

        // 3、响应JSON数据
        response.setContentType("text/json;charset=utf-8");
        response.getWriter().write(jsonString);

    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        doGet(request,response);
    }
}

4、编写前端代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>所有品牌</title>
    <script src="js/axios-0.18.0.js"></script>
</head>
<body>
<a href="addBrand.html"><input type="button" value="新增"></a>
<input type="button" value="获取所有品牌" onclick="ajaxGetAllBrand()"><br>
<hr>
<table id="brandTable" border="1" cellspacing="0" width="800">
    <thead>
        <tr>
            <th>序号</th>
            <th>品牌名称</th>
            <th>企业名称</th>
            <th>排序</th>
            <th>品牌介绍</th>
            <th>状态</th>
            <th>操作</th>
        </tr>
    </thead>

    <tbody id="tableBody">
    </tbody>
</table>

<script>
    function ajaxGetAllBrand() {
        axios.get("selectAllServlet").then(
            resp=>{
                //获取响应
                let data = resp.data;
                let str = ""
                for (let datum of data) {
                    str+=`<tr align="center">
         <td>${datum.id}</td>
        <td>${datum.brandName}</td>
        <td>${datum.companyName}</td>
        <td>${datum.ordered}</td>
        <td>${datum.description}</td>
        <td>${datum.status}</td>
        <td><a href="#">修改</a> <a href="#">删除</a></td>
    </tr>`
                }
                
                document.getElementById("tableBody").innerHTML=str;
            }
        )
    }
</script>
</body>
</html>
3.2、增加数据

1、编写前端代码

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>添加品牌</title>
    <script src="js/axios-0.18.0.js"></script>
</head>
<body>
<h3>添加品牌</h3>
<form action="" method="post">
    品牌名称:<input id="brandName" name="brandName"><br>
    企业名称:<input id="companyName" name="companyName"><br>
    排序:<input id="ordered" name="ordered"><br>
    描述信息:<textarea rows="5" cols="20" id="description" name="description"></textarea><br>
    状态:
    <input type="radio" name="status" value="0" checked="checked">禁用
    <input type="radio" name="status" value="1" c>启用<br>

    <input id="btn" type="button" value="提交" onclick="ajaxPost()"><br/>
    <span id="msg" style="color: red"></span>
</form>

<script>
    function ajaxPost() {
        let brandJS = {
            brandName:"",
            companyName:"",
            ordered:0,
            description:"",
            status:0
        }

        brandJS.brandName = document.getElementById("brandName").value.trim();
        brandJS.companyName = document.getElementById("companyName").value.trim();
        brandJS.ordered = document.getElementById("ordered").value.trim();
        brandJS.description = document.getElementById("description").value.trim();

        let radioByName = document.getElementsByName("status");
        for (let rad of radioByName) {
            let checked = rad.checked;
            if (checked){
                brandJS.status = rad.value;
            }
        }
        console.log(brandJS)

        axios.post("addServlet",brandJS).then(
            resp=>{
                document.getElementById("msg").innerHTML = resp.data;
            }
        )
    }
</script>

</body>
</html>

2、编写AddServlet

@WebServlet(value = "/addServlet")
public class AddServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // 1、获取数据
        String brandJS = request.getReader().readLine();
        // 2、转化成java对象
        Brand brand = JSON.parseObject(brandJS, Brand.class);

        // 3、调用方法
        BrandService brandService = new BrandService();
        brandService.addBrand(brand);

        response.setContentType("text/json;charset=utf-8");
        response.getWriter().write("添加数据成功");

    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("UTF-8");
        doGet(request,response);
    }
}

3、编写BrandService添加方法

public void addBrand(Brand brand) {
    SqlSession sqlSession = MyBatisUtils.openSession();

    BrandMapper mapper = sqlSession.getMapper(BrandMapper.class);

    mapper.addBrand(brand);

    sqlSession.commit();

    sqlSession.close();

}

4、接口添加方法文章来源地址https://www.toymoban.com/news/detail-818106.html

@Insert("insert into tb_brand values (null,#{brandName},#{companyName},#{ordered},#{description},#{status})")
void addBrand(Brand brand);

到了这里,关于JavaWeb:servlet+MyBatis+ajax (商品管理系统)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于javaweb+mysql的jsp+servlet学生成绩管理系统(管理员、教师、学生)(java+jsp+servlet+javabean+mysql+tomcat)

    基于javaweb+mysql的jsp+servlet学生成绩管理系统(管理员、教师、学生)(java+jsp+servlet+javabean+mysql+tomcat) 运行环境 Java≥8、MySQL≥5.7、Tomcat≥8 开发工具 eclipse/idea/myeclipse/sts等均可配置运行 适用 课程设计,大作业,毕业设计,项目练习,学习演示等 功能说明 管理员:个人信息、课程

    2024年02月02日
    浏览(58)
  • 【图书管理系统】Servlet+JSP+MySql 实现的一个前后端 javaweb项目(内附源码)

    源码分享在文末! 学习完Javaweb的知识后做了个项目练练手,我选择了经典而且比较简单的图书管理系统。 最近有时间,整理了一下,分享给大家,希望能够帮到你! 基于B/S结构 前端: HTML+CSS+JS +JQuery 后端: Servlet+JSP+MySql 操作系统: win8/win10 JDK: 8.0 开发工具: Intellij IDEA2020.1 旗舰

    2024年02月06日
    浏览(51)
  • 基于javaweb+mysql的jsp+servlet图书图书馆管理系统(java+jsp+layui+bootstrap+servlet+mysql)

    基于javaweb+mysql的jsp+servlet图书图书馆管理系统(java+jsp+layui+bootstrap+servlet+mysql) 运行环境 Java≥8、MySQL≥5.7、Tomcat≥8 开发工具 eclipse/idea/myeclipse/sts等均可配置运行 适用 课程设计,大作业,毕业设计,项目练习,学习演示等 功能说明 基于javaweb+mysql的JSP+Servlet图书图书馆管理系统

    2024年02月04日
    浏览(53)
  • 【JAVA】Eclipse+MYSQL数据库+JSP+基础Servlet开发JavaWeb学生信息管理系统

    目录 前言 一、搭建环境  二、功能实现、 1、   登陆界面 注册按钮 2、学生信息管理系统主界面 3、dao包  4、用户的信息展示,添加,删除,修改功能(只展示添加代码) 5、学生的信息展示,添加,删除,修改功能(只展示添加代码) 6、成绩的信息展示,添加,删除,修

    2024年02月05日
    浏览(65)
  • 基于javaweb+mysql的jsp+servlet幼儿园管理系统(java+jsp+easyui+h-ui+servlet+mysql)

    基于javaweb+mysql的jsp+servlet幼儿园管理系统(java+jsp+easyui+h-ui+servlet+mysql) 私信 源码获取及调试交流 运行环境 Java≥8、MySQL≥5.7、Tomcat≥8 开发工具 eclipse/idea/myeclipse/sts等均可配置运行 适用 课程设计,大作业,毕业设计,项目练习,学习演示等 功能说明 基于javaweb的JSP+Servlet幼儿

    2024年01月16日
    浏览(75)
  • IDEA开发实现Maven+Servlet+Mybatis实现CRUD管理系统-Mapper代理开发

    之前我们写的代码是基本使用方式,它也存在硬编码的问题,如下: 这里调用 selectList() 方法传递的参数是映射配置文件中的 namespace.id值。这样写也不便于后期的维护。如果使用 Mapper 代理方式(如下图)则不存在硬编码问题。 通过上面的描述可以看出 Mapper 代理方式的目的

    2024年02月05日
    浏览(46)
  • JavaWeb小项目——【源码】使用Vue+axios+Servlet+Lombok+JDBC+MySQL技术栈实现云笔记管理系统案例的开发

    使用Vue+axios+Servlet+Lombok+JDBC+MySQL技术栈实现云笔记管理系统案例的开发 (一)题目要求 使用Vue+axios+Servlet+Lombok+JDBC+MySQL技术栈实现云笔记管理系统案例的开发 (二)数据库设计(10分) 创建数据库woniu_note (1)用户表:t_user,必要字段包含:用户名(username)、密码(passwd)

    2024年02月09日
    浏览(39)
  • 人力资源管理系统(大二数据库课设) spring boot,Mybatis+bootstap,ajax项目

    SpringBoot人力资源管理系统 数据库采用 sqlserver2019或mysql8.0 • 环境及技术说明:页面全部为html页面,交互由ajax与Bootstrap-table完成 目前项目已修改为mysql数据库,如果想要使用sqlserver数据库 只需要将com.xpu.hrms.data.source.config.DataBaseConfigure文件中注解 @ConfigurationProperties(prefix = \\\"my

    2024年02月09日
    浏览(58)
  • javaweb权限管理简单实现_javaweb管理系统项目

    最近在做一个网站类型项目,主要负责后台,ui框架选型为jquery easy ui,项目架构为spring mvc + spring jdbc,简单易用好上手!搭建好框架后开始了第一个任务,设计并实现一套简单的权限管理功能。 一套最基本的权限管理包括用户、角色、资源。 我的设计如下: 用户:user 角色

    2024年02月02日
    浏览(43)
  • 超市商品信息管理系统/超市管理系统的设计与实现

    摘  要 随着现在网络的快速发展,网上管理系统也逐渐快速发展起来,网上管理模式很快融入到了许多国家的之中,随之就产生了“超市商品信息管理系统”,这样就让超市商品信息管理系统更加方便简单。 对于本超市商品信息管理系统的设计来说,系统开发主要是采用j

    2024年02月02日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包