我的 Java 入门项目

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 我的 Java 入门项目

我的 Java 入门项目


我的 Java 入门项目

我入门 Java 是在2019年10月入的,当时已经学完了 C语言,因此这个入门项目只用了一个下午

工具:IDEA + MariaDB + Navicat + Tomcat + maven

SQL 文件

CREATE DATABASE  `book` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
DROP TABLE IF EXISTS `employees_cn`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `employees_cn` (
  `employee_id` int(11) NOT NULL AUTO_INCREMENT,
  `employee_name` varchar(255) COLLATE utf8_bin DEFAULT NULL,
  `employee_address` varchar(255) COLLATE utf8_bin DEFAULT NULL,
  `employee_price` int(10) DEFAULT NULL,
  PRIMARY KEY (`employee_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=49 DEFAULT CHARSET=utf8 COLLATE=utf8_bin ROW_FORMAT=DYNAMIC;
INSERT INTO `employees_cn` 
VALUES (1,'张伟','北京',20000),
    (6,'周通','上海',17500),
    (14,'王飞','赣州',28000),
    (17,'马超','佛山',20000),
    (18,'刘备','抚州',15000),
    (20,'李兰','北京',20000),
    (21,'李兰妈','株洲',46000),
    (22,'周杰','深圳',20000),
    (23,'丁宁','天津',1500),
    (24,'张飞','上饶',25000),
    (25,'周杰','深圳',20000),
    (48,'孙红雷','哈尔滨',30000);

创建 JavaWeb 项目

新建工程后,maven会下载一些文件,没多大,大家耐心等待即可。

新建工程成功以后是下面这样的:

首先在 pom.xml 文件中 </build> 上面添加如下代码,添加完成后,等待它自己加载完成即可。

<plugins>
    <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.2</version>
        <configuration>
            <hostName>localhost</hostName>        <!--   Default: localhost -->
            <port>8080</port>                     <!-- 启动端口 Default:8080 -->
            <path>/</path>   <!-- 访问应用路径  Default: /${project.artifactId}-->
            <uriEncoding>UTF-8</uriEncoding>      <!-- uri编码 Default: ISO-8859-1 -->
        </configuration>
    </plugin>
</plugins>

编写代码

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.baidu</groupId>
    <artifactId>MyBlog</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>
    <name>MyBlog Maven Webapp</name>
    <!-- FIXME change it to the project's website -->
    <url>http://www.example.com</url>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.7</maven.compiler.source>
        <maven.compiler.target>1.7</maven.compiler.target>
    </properties>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.2</version>
            <scope>test</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.speedment.runtime/runtime-typemapper -->
        <dependency>
            <groupId>com.speedment.runtime</groupId>
            <artifactId>runtime-typemapper</artifactId>
            <version>3.2.10</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.teiid.connectors/translator-loopback -->
        <dependency>
            <groupId>org.teiid.connectors</groupId>
            <artifactId>translator-loopback</artifactId>
            <version>16.0.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.xmlgraphics/batik-css -->
        <dependency>
            <groupId>org.apache.xmlgraphics</groupId>
            <artifactId>batik-css</artifactId>
            <version>1.14</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.25</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
            <scope>provided</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/javax.servlet.jsp/javax.servlet.jsp-api -->
        <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/javax.servlet/jstl -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
    </dependencies>
    <build>
        <finalName>MyBlog</finalName>
        <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
            <plugins>
                <plugin>
                    <artifactId>maven-clean-plugin</artifactId>
                    <version>3.1.0</version>
                </plugin>
                <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
                <plugin>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>3.0.2</version>
                </plugin>
                <plugin>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.8.0</version>
                </plugin>
                <plugin>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.22.1</version>
                </plugin>
                <plugin>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>3.2.2</version>
                </plugin>
                <plugin>
                    <artifactId>maven-install-plugin</artifactId>
                    <version>2.5.2</version>
                </plugin>
                <plugin>
                    <artifactId>maven-deploy-plugin</artifactId>
                    <version>2.8.2</version>
                </plugin>
            </plugins>
        </pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <hostName>localhost</hostName>        <!--   Default: localhost -->
                    <port>8081</port>                     <!-- 启动端口 Default:8080 -->
                    <path>/</path>   <!-- 访问应用路径  Default: /${project.artifactId}-->
                    <uriEncoding>UTF-8</uriEncoding>      <!-- uri编码 Default: ISO-8859-1 -->
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

DatabaseForBook.java

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 *
 * @author colors
 * @date 2019/10/26
 */
public class DatabaseForBook {
    private final String url = "jdbc:mysql://localhost:3306/book?characterEncoding=UTF8&servertimeZone=GMT%2B8";
    private final String driver  = "com.mysql.jdbc.Driver";
    private final String name = "root";
    private final String password  = "123456";
    private Connection connection = null;
    private final List allEmployees = new ArrayList();
    public void openDatabase(){
        try {
            // 加载驱动
            Class.forName(driver);
            connection = DriverManager.getConnection(url,name,password);
        } catch (ClassNotFoundException | SQLException e) {
            e.printStackTrace();
        }
    }
    public void addData(String name, String address , float price){
        // 打开数据库
        openDatabase();
        try {
            // 操作数据库的一个sql语句
            String sql = "INSERT into employees_cn (employee_name,employee_address,employee_price) VALUES (?,?,?)";
            // 获取声明
            PreparedStatement statement = connection.prepareStatement(sql);
            statement.setObject(1,name);
            statement.setObject(2,address);
            statement.setObject(3,price);
            // 执行你的sql
            statement.execute();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        closeDatabase();
    }
    public void deleteData(String name){
        openDatabase();
        String sql = "DELETE FROM employees_cn WHERE employee_name= ?";
        try {
            PreparedStatement statement = connection.prepareStatement(sql);
            statement.setObject(1, name);
            statement.execute();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        closeDatabase();
    }
    public  void updateData(String addreess, int price, String name){
        openDatabase();
        String sql = "UPDATE employees_cn set employee_address = ? , employee_price = ? WHERE employee_name = ?";
        try {
            PreparedStatement statement = connection.prepareStatement(sql);
            statement.setObject(1, addreess);
            statement.setObject(2, price);
            statement.setObject(3, name);
            statement.execute();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        closeDatabase();
    }
    public List selectData() {
        openDatabase();
        String sql = "select * from employees_cn";
        try {
            PreparedStatement statement = connection.prepareStatement(sql);
            ResultSet resultSet = statement.executeQuery();
            while (resultSet.next()) {
                int id = resultSet.getInt("employee_id");
                String name = resultSet.getString("employee_name");
                String address = resultSet.getString("employee_address");
                int price = resultSet.getInt("employee_price");
                // sout
                System.out.println(id + "  " + name + "  " + address + "  " + price);
                // 集合
                Map<String, Object> employee = new HashMap<>();
                employee.put("id", id);
                employee.put("name", name);
                employee.put("address", address);
                employee.put("price", price);
                allEmployees.add(employee);
            }
            return allEmployees;
        } catch (SQLException e) {
            e.printStackTrace();
        }
        closeDatabase();
        return null;
    }
    public void closeDatabase(){
        if (connection !=null){
            try {
                connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

BookServlet.java

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
/**
 *
 * @author colors
 * @date 2019/10/27
 */
// 接受客户请求
// 返回数据给客户
public class BookServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 去查数据库
        DatabaseForBook databaseForBook = new DatabaseForBook();
        List allEmployees = databaseForBook.selectData();
        // 将数据放到网页里
        req.setAttribute("all", allEmployees);
        // 将网页返给用户
        req.getRequestDispatcher("employee.jsp").forward(req, resp);
    }
}

TestBook.java

import org.junit.Test;
/**
 * Created by guoke on 2019/10/30.
 */
public class TestBook {
    @Test
    public void testBook(){
        DatabaseForBook databaseForBook = new DatabaseForBook();
        databaseForBook.addData("郭柯柯","九江",30000);
    }
    @Test
    public void testSelect(){
        DatabaseForBook databaseForBook = new DatabaseForBook();
        databaseForBook.selectData();
    }
    @Test
    public void testDelete(){
        DatabaseForBook databaseForBook = new DatabaseForBook();
        databaseForBook.deleteData("郭柯柯");
    }
    @Test
    public void testUpdate(){
        DatabaseForBook databaseForBook = new DatabaseForBook();
        databaseForBook.updateData("北京", 20000, "刘备");
    }
}

index.jsp

<html>
    <body>
        <h2>Hello World!</h2>
    </body>
</html>

employee.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page isELIgnored="false" %>
<%--
  Created by IntelliJ IDEA.
  User: colors
  Date: 2019/10/27
  Time: 15:53
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
    <head>
        <title>部门员工表</title>
    </head>
    <body>
        <%-- jsp + el + jstl --%>
        <table border="1" cellspacing="0" align="center" >
            <caption><h3>部门员工表</h3></caption>
            <thead>
                <tr>
                    <th>工号</th>
                    <th>姓名</th>
                    <th>住址</th>
                    <th>工资</th>
                </tr>
            </thead>
            <c:forEach items="${all}" var="employee">
                <tr>
                    <td>${employee.id}</td>
                    <td>${employee.name}</td>
                    <td>${employee.address}</td>
                    <td>${employee.price}</td>
                </tr>
            </c:forEach>
        </table>
    </body>
</html>

web.xml

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
    <display-name>Archetype Created Web Application</display-name>
    <servlet>
        <servlet-name>a</servlet-name>
        <servlet-class>BookServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>a</servlet-name>
        <url-pattern>/all</url-pattern>
    </servlet-mapping>
</web-app>
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
30天前
|
自然语言处理 Java
Java中的字符集编码入门-增补字符(转载)
本文探讨Java对Unicode的支持及其发展历程。文章详细解析了Unicode字符集的结构,包括基本多语言面(BMP)和增补字符的表示方法,以及UTF-16编码中surrogate pair的使用。同时介绍了代码点和代码单元的概念,并解释了UTF-8的编码规则及其兼容性。
101 60
|
9天前
|
前端开发 Java 程序员
菜鸟之路day02-04拼图小游戏开发一一JAVA基础综合项目
本项目基于黑马程序员教程,涵盖面向对象进阶、继承、多态等知识,历时约24小时完成。项目去除了登录和注册模块,专注于单机游戏体验。使用Git进行版本管理,代码托管于Gitee。项目包含窗体搭建、事件监听、图片加载与打乱、交互逻辑实现、菜单功能及美化界面等内容。通过此项目,巩固了Java基础并提升了实际开发能力。 仓库地址:[https://gitee.com/zhang-tenglan/puzzlegame.git](https://gitee.com/zhang-tenglan/puzzlegame.git)
35 6
|
2月前
|
Java Maven
java项目中jar启动执行日志报错:no main manifest attribute, in /www/wwwroot/snow-server/z-server.jar-jar打包的大小明显小于正常大小如何解决
在Java项目中,启动jar包时遇到“no main manifest attribute”错误,且打包大小明显偏小。常见原因包括:1) Maven配置中跳过主程序打包;2) 缺少Manifest文件或Main-Class属性。解决方案如下:
java项目中jar启动执行日志报错:no main manifest attribute, in /www/wwwroot/snow-server/z-server.jar-jar打包的大小明显小于正常大小如何解决
|
12天前
|
算法 搜索推荐 Java
【潜意识Java】深度解析黑马项目《苍穹外卖》与蓝桥杯算法的结合问题
本文探讨了如何将算法学习与实际项目相结合,以提升编程竞赛中的解题能力。通过《苍穹外卖》项目,介绍了订单配送路径规划(基于动态规划解决旅行商问题)和商品推荐系统(基于贪心算法)。这些实例不仅展示了算法在实际业务中的应用,还帮助读者更好地准备蓝桥杯等编程竞赛。结合具体代码实现和解析,文章详细说明了如何运用算法优化项目功能,提高解决问题的能力。
47 6
|
12天前
|
Java 数据库连接 数据库
【潜意识Java】深度分析黑马项目《苍穹外卖》在Java学习中的重要性
《苍穹外卖》项目对Java学习至关重要。它涵盖了用户管理、商品查询、订单处理等模块,涉及Spring Boot、MyBatis、Redis等技术栈。
42 4
|
30天前
|
存储 Java BI
java怎么统计每个项目下的每个类别的数据
通过本文,我们详细介绍了如何在Java中统计每个项目下的每个类别的数据,包括数据模型设计、数据存储和统计方法。通过定义 `Category`和 `Project`类,并使用 `ProjectManager`类进行管理,可以轻松实现项目和类别的数据统计。希望本文能够帮助您理解和实现类似的统计需求。
79 17
|
2月前
|
NoSQL Java 关系型数据库
Liunx部署java项目Tomcat、Redis、Mysql教程
本文详细介绍了如何在 Linux 服务器上安装和配置 Tomcat、MySQL 和 Redis,并部署 Java 项目。通过这些步骤,您可以搭建一个高效稳定的 Java 应用运行环境。希望本文能为您在实际操作中提供有价值的参考。
157 26
|
2月前
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
89 6
Spring Boot 入门:简化 Java Web 开发的强大工具
|
3月前
|
XML Java 测试技术
从零开始学 Maven:简化 Java 项目的构建与管理
Maven 是一个由 Apache 软件基金会开发的项目管理和构建自动化工具。它主要用在 Java 项目中,但也可以用于其他类型的项目。
91 1
从零开始学 Maven:简化 Java 项目的构建与管理
|
2月前
|
监控 架构师 Java
Java虚拟机调优的艺术:从入门到精通####
本文作为一篇深入浅出的技术指南,旨在为Java开发者揭示JVM调优的神秘面纱,通过剖析其背后的原理、分享实战经验与最佳实践,引领读者踏上从调优新手到高手的进阶之路。不同于传统的摘要概述,本文将以一场虚拟的对话形式,模拟一位经验丰富的架构师向初学者传授JVM调优的心法,激发学习兴趣,同时概括性地介绍文章将探讨的核心议题——性能监控、垃圾回收优化、内存管理及常见问题解决策略。 ####