当年的java考试:Java景区预约登记管理系统(maven整合servlet)-3

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 当年的java考试:Java景区预约登记管理系统(maven整合servlet)

添加mybatis对应maven包

<dependency>
  <groupId>org.mybatis</groupId>
  <artifactId>mybatis</artifactId>
  <version>3.5.1</version>
</dependency>
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-log4j12</artifactId>
  <version>1.7.10</version>
</dependency>
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>5.1.6</version>
</dependency>


image.png

image.png


在src/main/的resources内创建【mybatis-config.xml】文件


image.png

配置头部:


<?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">

添加图下配置编码:


<?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>
        <setting name="logImpl" value="LOG4J"/>
    </settings>
    <typeAliases>
        <package name="com.item.model"/>
    </typeAliases>
    <environments default="dev">
        <environment id="dev">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://127.0.0.1:3306/mytest?characterEncoding=utf-8"/>
                <property name="username" value="root"/>
                <property name="password" value="12345678"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="com/item/mapper/TbTourinfoMapper.xml"></mapper>
    </mappers>
</configuration>


image.png


根据【com/item/mapper/TbTourinfoMapper.xml】在【resources】下创建包与配置文件


image.png

image.png



编码内容如下,包含【查询】【筛选查询】【添加】【删除】【修改】

<?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.item.mapper.TbTourinfoMapper">
    <!-- 查询所有 -->
    <select id="GetInfo" resultType="TbTourinfo">
        select * from tb_tourinfo;
    </select>
    <!-- 各种查询-->
    <select id="SelectByNameSexType" resultType="TbTourinfo">
        select * from tb_tourinfo
        <if test="name!=null or sex!=null or type!=null">
            where 1=1
        </if>
        <if test="name!=null">
            and name like "%${name}%"
        </if>
        <if test="sex!=null">
            and sex="${sex}"
        </if>
        <if test="type!=null">
            and type="${type}"
        </if>
    </select>
    <insert id="AddInfo">
        insert into tb_tourinfo values
        (
        0,
        "${name}",
        "${sex}",
        "${id_no}",
        #{age},
        #{type},
        NOW(),
        #{visit_state},
        now()
        );
    </insert>
    <!-- 删除语句 -->
    <delete id="DeleteById" parameterType="java.lang.Integer">
        delete from tb_tourinfo where id=#{id}
    </delete>
    <!-- 修改状态在语句 -->
    <update id="UpdateById">
        update tb_tourinfo set visit_state=#{visit_state} where id=#{id}
    </update>
</mapper>

在【resources】下创建【log4j.properties】文件

#全局配置
log4j.rootLogger=debug,stdout,ERROR
#MyBatis日志配直
log4j.logger.com.item.mapper=TRACE
#控制台输出配置
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

image.png


创建【com.item.model】内【TbTourinfo】文件

需要添加数据表对应的【属性】,并添加【Getter】与【Setter】以及【toString】方法。


package com.item.model;
import java.util.Date;
public class TbTourinfo {
    private int id;
    private String name;
    private String sex;
    private String id_no;
    private int age;
    private String type;
    private Date visit_date;
    private int visit_state;
    private Date register_time;
    @Override
    public String toString() {
        return "TbTourinfo{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", sex='" + sex + '\'' +
                ", id_no='" + id_no + '\'' +
                ", age=" + age +
                ", type='" + type + '\'' +
                ", visit_date=" + visit_date +
                ", visit_state=" + visit_state +
                ", register_time=" + register_time +
                '}';
    }
    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 getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
    public String getId_no() {
        return id_no;
    }
    public void setId_no(String id_no) {
        this.id_no = id_no;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    public Date getVisit_date() {
        return visit_date;
    }
    public void setVisit_date(Date visit_date) {
        this.visit_date = visit_date;
    }
    public int getVisit_state() {
        return visit_state;
    }
    public void setVisit_state(int visit_state) {
        this.visit_state = visit_state;
    }
    public Date getRegister_time() {
        return register_time;
    }
    public void setRegister_time(Date register_time) {
        this.register_time = register_time;
    }
}

在【com.item.mapper】下创建【TbTourinfoMapper】

package com.item.mapper;
import com.item.model.TbTourinfo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface TbTourinfoMapper {
    List<TbTourinfo> GetInfo();
    /**
     * 根据参数进行查询
     * @param name (姓名)
     * @param sex (性别)
     * @param type (会员类型)
     * @return
     */
    List<TbTourinfo> SelectByNameSexType(
            @Param("name") String name,
            @Param("sex") String sex,
            @Param("type") String type
    );
    int AddInfo(
            @Param("name") String name,
            @Param("sex") String sex,
            @Param("id_no") String id_no,
            @Param("age") int age,
            @Param("type") int type,
            @Param("visit_state") int visit_state
    );
    int DeleteById(@Param("id") int id);
    int UpdateById(@Param("visit_state") int visit_state,
                   @Param("id") int id);
}


在【com.item.common】下创建JDBC用于获取数据库连接池链接

package com.item.common;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.Reader;
public class JDBC {
    public static SqlSessionFactory GetConn(){
        try {
            Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
            SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader);
            return factory;
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
    public static void main(String[] args) {
        System.out.println(GetConn());
    }
}

在【com.item.dao】下创建【TbTourinfoDAO.java】文件

package com.item.dao;
import com.item.common.JDBC;
import com.item.mapper.TbTourinfoMapper;
import com.item.model.TbTourinfo;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import java.util.List;
public class TbTourinfoDAO {
    /**
     * 查询所有
     * @return
     */
    public static List<TbTourinfo> GetInfo(){
        SqlSessionFactory factory = JDBC.GetConn();
        SqlSession session = factory.openSession();
        TbTourinfoMapper db = session.getMapper(TbTourinfoMapper.class);
        List<TbTourinfo> list = db.GetInfo();
        session.close();
        return list;
    }
    /**
     * 综合信息查询
     * @param name
     * @param sex
     * @param type
     * @return
     */
    public static List<TbTourinfo> SelectByNameSexType(String name,String sex,String type){
        SqlSessionFactory factory = JDBC.GetConn();
        SqlSession session = factory.openSession();
        TbTourinfoMapper db = session.getMapper(TbTourinfoMapper.class);
        List<TbTourinfo> list = db.SelectByNameSexType(name,sex,type);
        session.close();
        return list;
    }
    /**
     * 添加
     * @param name
     * @param sex
     * @param id_no
     * @param age
     * @param type
     * @param visit_state
     * @return
     */
    public static boolean AddInfo(String name,String sex,String id_no,int age,int type,int visit_state){
        SqlSessionFactory factory = JDBC.GetConn();
        SqlSession session = factory.openSession();
        TbTourinfoMapper db = session.getMapper(TbTourinfoMapper.class);
        int rows = db.AddInfo(name, sex, id_no, age, type, visit_state);
        session.commit();
        session.close();
        return rows>0;
    }
    /**
     * 删除
     * @param id
     * @return
     */
    public static boolean DeleteById(int id){
        SqlSessionFactory factory = JDBC.GetConn();
        SqlSession session = factory.openSession();
        TbTourinfoMapper db = session.getMapper(TbTourinfoMapper.class);
        int rows = db.DeleteById(id);
        session.commit();
        session.close();
        return rows>0;
    }
    /**
     * 修改
     * @param visit_state
     * @param id
     * @return
     */
    public static boolean UpdateById(int visit_state,int id){
        SqlSessionFactory factory = JDBC.GetConn();
        SqlSession session = factory.openSession();
        TbTourinfoMapper db = session.getMapper(TbTourinfoMapper.class);
        int rows = db.UpdateById(visit_state,id);
        session.commit();
        session.close();
        return rows>0;
    }
    public static void main(String[] args) {
        int oldState=1;
        System.out.println(UpdateById(oldState==0?1:0,7));
    }
}


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
监控 Java API
如何使用Java语言快速开发一套智慧工地系统
使用Java开发智慧工地系统,采用Spring Cloud微服务架构和前后端分离设计,结合MySQL、MongoDB数据库及RESTful API,集成人脸识别、视频监控、设备与环境监测等功能模块,运用Spark/Flink处理大数据,ECharts/AntV G2实现数据可视化,确保系统安全与性能,采用敏捷开发模式,提供详尽文档与用户培训,支持云部署与容器化管理,快速构建高效、灵活的智慧工地解决方案。
|
2天前
|
前端开发 JavaScript Java
Java构建工具-maven的复习笔记【适用于复习】
这篇文档由「潜意识Java」创作,主要介绍Maven的相关知识。内容涵盖Maven的基本概念、作用、项目导入步骤、依赖管理(包括依赖配置、代码示例、总结)、依赖传递、依赖范围以及依赖的生命周期等七个方面。作者擅长前端开发,秉持“得之坦然,失之淡然”的座右铭。期待您的点赞、关注和收藏,这将是作者持续创作的动力! [个人主页](https://blog.csdn.net/weixin_73355603?spm=1000.2115.3001.5343)
12 3
|
7天前
|
存储 分布式计算 Hadoop
基于Java的Hadoop文件处理系统:高效分布式数据解析与存储
本文介绍了如何借鉴Hadoop的设计思想,使用Java实现其核心功能MapReduce,解决海量数据处理问题。通过类比图书馆管理系统,详细解释了Hadoop的两大组件:HDFS(分布式文件系统)和MapReduce(分布式计算模型)。具体实现了单词统计任务,并扩展支持CSV和JSON格式的数据解析。为了提升性能,引入了Combiner减少中间数据传输,以及自定义Partitioner解决数据倾斜问题。最后总结了Hadoop在大数据处理中的重要性,鼓励Java开发者学习Hadoop以拓展技术边界。
34 7
|
2月前
|
XML Java 测试技术
从零开始学 Maven:简化 Java 项目的构建与管理
Maven 是一个由 Apache 软件基金会开发的项目管理和构建自动化工具。它主要用在 Java 项目中,但也可以用于其他类型的项目。
82 1
从零开始学 Maven:简化 Java 项目的构建与管理
|
2月前
|
设计模式 消息中间件 搜索推荐
Java 设计模式——观察者模式:从优衣库不使用新疆棉事件看系统的动态响应
【11月更文挑战第17天】观察者模式是一种行为设计模式,定义了一对多的依赖关系,使多个观察者对象能直接监听并响应某一主题对象的状态变化。本文介绍了观察者模式的基本概念、商业系统中的应用实例,如优衣库事件中各相关方的动态响应,以及模式的优势和实际系统设计中的应用建议,包括事件驱动架构和消息队列的使用。
|
2月前
|
Java 测试技术 Maven
Maven clean 提示文件 java.io.IOException
在使用Maven进行项目打包时,遇到了`Failed to delete`错误,尝试手动删除目标文件也失败,提示`java.io.IOException`。经过分析,发现问题是由于`sys-info.log`文件被其他进程占用。解决方法是关闭IDEA和相关Java进程,清理隐藏的Java进程后重新尝试Maven clean操作。最终问题得以解决。总结:遇到此类问题时,可以通过任务管理器清理相关进程或重启电脑来解决。
|
2月前
|
运维 自然语言处理 供应链
Java云HIS医院管理系统源码 病案管理、医保业务、门诊、住院、电子病历编辑器
通过门诊的申请,或者直接住院登记,通过”护士工作站“分配患者,完成后,进入医生患者列表,医生对应开具”长期医嘱“和”临时医嘱“,并在电子病历中,记录病情。病人出院时,停止长期医嘱,开具出院医嘱。进入出院审核,审核医嘱与住院通过后,病人结清缴费,完成出院。
148 4
|
2月前
|
Java 数据库连接 数据库
深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能
在Java应用开发中,数据库操作常成为性能瓶颈。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能。文章介绍了连接池的优势、选择和使用方法,以及优化配置的技巧。
58 1
|
2月前
|
Java Maven Android开发
【Azure Developer】VS Code打包Java maven Project 遇见 BUILD FAILURE
Unknown lifecycle phase "lean". You must specify a valid lifecycle phase or a goal in the format <plugin-prefix>:<goal> or <plugin-group-id>:<plugin-artifact-id>[:<plugin-version>]:<goal>
|
2月前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。