mave概述

本文详细介绍了Maven的安装、配置、IDEA整合及创建不同类型的Maven项目,包括Java、Web工程,并重点讲解了创建跳过骨架的web工程。还涉及到Maven的常用指令、依赖管理和案例,帮助读者掌握Maven的基础操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 Maven概述

why?

擅长管理大型项目
自动管理你需要的jar包
自动进行下载我们需要的jar包。

1.1 Maven的概念模型

jar java rar java工程的压缩包

war web rar web工程的压缩包

1.2 Maven的仓库

1.2.1仓库中存放的内容

  • Maven自身运行所需要的插件
  • 第三方框架(spring/mybatis/springmvc)和工具类的jar包
  • 我们自己开发的maven项目安装后的jar包

2 maven的安装(软件)

2.1 下载maven

2.2 安装maven

将maven压缩包解压, 复制到没有中文没有空格的目录下,即安装完毕

2.3 配置环境变量

MAVEN_HOME=E:\apache-maven-3.2.1
Path=%MAVEN_HOME%\bin;... ...

2.4 配置本地仓库

1、找到Maven解压目录\conf\settings.xml 
2、在setting.xml 文件中找到 localRepository 标签 
3、将 <localRepository>/path/to/local/repo</localRepository>从注释中取出 
4、将标签体内容修改为自定义的Maven仓库目录

2.5.1 将/资料/本地仓库/xxx.zip 解压

复制 E盘根目录下

2.5.2 配置本地仓库

在maven的安装目录中 apache-maven-3.2.1/conf/settings.xml 配置本地仓库:

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" 
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <localRepository>E:\\Maven_Repository</localRepository>

2.5.3 配置阿里云远程仓库

	 <mirror>
		<id>alimaven</id>
		<name>aliyun maven</name>
		<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
		<mirrorOf>central</mirrorOf>        
	 </mirror>

2.6 测试maven安装成功

打开cmd本地控制台, 输入 mvn -version

3 IDEA整合本地Maven

4 idea创建maven工程

4.1 创建跳过骨架的java项目

4.1.1 how

标准的java项目骨架

4.1.2 创建java代码

package cn.itcast.dao;

public class ProductDao {

    public void add() {
        System.out.println("--------------------1 ProductDao.add()... ...");
    }

    public void del() {
        System.out.println("--------------------2 ProductDao.del()... ...");
    }

    public void edit() {
        System.out.println("--------------------3 ProductDao.edit().... ...");
    }

    public void query() {
        System.out.println("--------------------4 ProductDao.query()... ...");
    }
}

4.1.3 生成测试代码

正式上线前, 每个方法都必须经过测试, 目前我们能够想到的就是main方法.

因为一个类只有一个main方法, 一个类可能有上千个方法, 那得需要多少个方法, 所以 迫切需要更高效方法, junit测试登场了.

为什么junit报红? 因为缺少junit包, 导入缺少的junit包即可.

4.1.4 导入依赖

<?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>cn.itcast.maven</groupId>
    <artifactId>javase01</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <dependencies>
        <!--导入junit包-->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
    </dependencies>
</project>

4.1.5 一个一个测试

完成测试代码:

package cn.itcast.dao;

public class ProductDaoTest {
    @org.junit.Test
    public void add() throws Exception {
        ProductDao productDao = new ProductDao();
        productDao.add();
    }

    @org.junit.Test
    public void del() throws Exception {
        ProductDao productDao = new ProductDao();
        productDao.del();
    }

    @org.junit.Test
    public void edit() throws Exception {
        ProductDao productDao = new ProductDao();
        productDao.edit();
    }

    @org.junit.Test
    public void query() throws Exception {
        ProductDao productDao = new ProductDao();
        productDao.query();
    }
}

4.1.6 测试所有

一个一个测试,太累了, 给大家介绍一个简单的.

4.2 创建有骨架 java工程

4.2.1 how?

4.2.2 java工程目录结构

4.2.3 编写 Hello World!

[外链图片转存失败(img-6I19Y5n1-1567147909052)(assets/1530974689084.png)]

[外链图片转存失败(img-0PSobCIo-1567147909052)(assets/1530974710619.png)]

package cn.itcast;

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

总结: 因为创建有骨架的java工程会产生很多多余的配置, 所以实际开发中一般不用.

4.3 创建有骨架的web工程(了解)

4.3.1 how?

[外链图片转存失败(img-ege8A630-1567147909053)(assets/1537365103745.png)]

[外链图片转存失败(img-Any4CJu6-1567147909054)(assets/1537365186876.png)]

[外链图片转存失败(img-0SBG61l3-1567147909055)(assets/1537365255650.png)]

[外链图片转存失败(img-LD8Hb1MJ-1567147909055)(assets/1537365307514.png)]

[外链图片转存失败(img-3PPmvTCE-1567147909056)(assets/1537365332661.png)]

[外链图片转存失败(img-dqEYtrtS-1567147909057)(assets/1537365369141.png)]

4.3.2 标准web工程目录结构

[外链图片转存失败(img-hf0m0SWe-1567147909057)(assets/1537365617727.png)]

经过对比发现如下问题:

4.3.3 缺少java目录

[外链图片转存失败(img-f5Y3WBD7-1567147909058)(assets/1537365726887.png)]

[外链图片转存失败(img-jfnZXXxO-1567147909058)(assets/1537365747597.png)]

[外链图片转存失败(img-VWYcBn8Z-1567147909060)(assets/1537365811337.png)]

更改java目录属性

[外链图片转存失败(img-KBHmL7hd-1567147909060)(assets/1537365915916.png)]

[外链图片转存失败(img-8rjTLx4v-1567147909061)(assets/1537365941638.png)]

4.3.4 缺少resources目录

[外链图片转存失败(img-aBtsqI38-1567147909062)(assets/1537365960822.png)]

[外链图片转存失败(img-SfW9V0qX-1567147909062)(assets/1537365982221.png)]

[外链图片转存失败(img-YbKiPuQg-1567147909062)(assets/1537365994589.png)]

[外链图片转存失败(img-RBtSzXt1-1567147909064)(assets/1537366029843.png)]

4.3.5 缺少test.java目录

4.3.5.1 新建test目录

[外链图片转存失败(img-4o5qcxJz-1567147909065)(assets/1537366119328.png)]

[外链图片转存失败(img-F0VJBWMM-1567147909066)(assets/1537366137117.png)]

[外链图片转存失败(img-4BsXYtdR-1567147909066)(assets/1537366151796.png)]

4.3.5.2 新建test.java目录

[外链图片转存失败(img-wTSDnzp3-1567147909067)(assets/1537366176109.png)]

[外链图片转存失败(img-rldc1kVU-1567147909068)(assets/1537366192184.png)]

[外链图片转存失败(img-GK7yRrFJ-1567147909069)(assets/1537366210414.png)]

[外链图片转存失败(img-dfMdqWS4-1567147909070)(assets/1537366237164.png)]

总结: 使用骨架创建的web项目 在开发时不常用!
	理由1: 在pom.xml增加不必要的配置
	理由2: 完整的web工程缺的东西太多!

4.4 创建跳过骨架的web工程(重点重点重点)

4.4.1 how?

[外链图片转存失败(img-35LXwh4r-1567147909070)(assets/1537365495730.png)]

[外链图片转存失败(img-OWGhb7Vn-1567147909071)(assets/1537365531863.png)]

[外链图片转存失败(img-jyBXLhwW-1567147909071)(assets/1537366671631.png)]

复制webapp目录到项目2中

修改pom.xml 增加打包方式为war包

[外链图片转存失败(img-waAqwFpO-1567147909072)(assets/1537366829609.png)]

4.4.2 配置tomcat插件

因为 web项目最终跑在web服务器中, 所以需要配置 web服务器(tomcat只是其中一个)

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>cn.itcast.maven</groupId>
    <artifactId>web02</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!--
        java工程: jar 含义是 java rar
        web工程: war 含义是 web rar
    -->
    <packaging>war</packaging>
    <!--配置插件-->
    <build>
        <plugins>
            <!-- 配置Tomcat插件 -->
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <!--配置端口号-->
                    <port>80</port>
                    <!--配置项目路径-->
                    <path>/web02</path>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
4.4.2.1 启动tomcat

[外链图片转存失败(img-TiAMsimO-1567147909073)(assets/1537403214801.png)]

[外链图片转存失败(img-So00t9Gv-1567147909074)(assets/1537403281859.png)]

测试:

[外链图片转存失败(img-Kpxs4wUa-1567147909075)(assets/1537403340916.png)]

4.4.2.2 简化启动tomcat

[外链图片转存失败(img-zorxDup0-1567147909076)(assets/1537403402117.png)]

[外链图片转存失败(img-TT7V3p0r-1567147909079)(assets/1537403454188.png)]

[外链图片转存失败(img-dCMrnpyq-1567147909088)(assets/1537403529493.png)]

[外链图片转存失败(img-PyjgYoCE-1567147909090)(assets/1537403652165.png)]

4.4.3 创建servlet

[外链图片转存失败(img-wV43kzvH-1567147909091)(assets/1537403783543.png)]

[外链图片转存失败(img-Xp74Mns0-1567147909092)(assets/1537403850393.png)]

[外链图片转存失败(img-IM7SepmD-1567147909094)(assets/1537403892894.png)]

在web.xml中注册和映射浏览器访问servlet的路径:

[外链图片转存失败(img-0QH0ZTbR-1567147909095)(assets/1537403953074.png)]

4.4.3.1 servlet因为缺少servlet.jar包报错

[外链图片转存失败(img-3Pz5kvNL-1567147909096)(assets/1537404030481.png)]

解决: 在pom.xml增加servlet依赖

[外链图片转存失败(img-HysT6lLr-1567147909097)(assets/1537404118528.png)]

经过观察,servlet不再报错

[外链图片转存失败(img-SlM8rDpY-1567147909098)(assets/1537404374088.png)]

4.4.3.2 一启动Tomcat 访问就报错

[外链图片转存失败(img-iuFiazc5-1567147909099)(assets/1537404411900.png)]

[外链图片转存失败(img-G5PuY03r-1567147909100)(assets/1537404548534.png)]

原因:

​ 因为我们导入的jar包和tomcat服务器携带的jar包冲突了, 所以才会报错.

解决:

​ 设置自定义导入jar包的范围, 只在编译和测试有效. 这样就不会在运行时 导致jar运行冲突了.

how?​ [外链图片转存失败(img-KAp7ydX3-1567147909102)(assets/1537404772420.png)]

测试:

[外链图片转存失败(img-ZnHXHB8L-1567147909104)(assets/1537404806135.png)]

[外链图片转存失败(img-h9Ix4knm-1567147909105)(assets/1537404819674.png)]

4 maven的常用指令

[外链图片转存失败(img-zKoH8pFf-1567147909107)(assets/1531018377581.png)]

4.1 clean命令

[外链图片转存失败(img-MRGviXFn-1567147909109)(assets/1530977033459.png)]

[外链图片转存失败(img-pCdBlXVb-1567147909111)(assets/1530977194707.png)]

4.2 compile命令

[外链图片转存失败(img-5xkmjA32-1567147909113)(assets/1530977220710.png)]

[外链图片转存失败(img-J6J6j2yv-1567147909114)(assets/1530977330244.png)]

4.3 test命令

测试命令: 执行 src/test/java 下junit的测试用例

  • 在src/test/java下创建测试类DemoTest

[外链图片转存失败(img-IXrEABur-1567147909115)(assets/1530977995615.png)]

[外链图片转存失败(img-Uo9hupNb-1567147909148)(assets/1530978026962.png)]

控制台测试结果如下:

[外链图片转存失败(img-mGKLKSyN-1567147909151)(assets/1530978086143.png)]

4.4 package命令

mvn package, 打包项目

[外链图片转存失败(img-pawpQ4UX-1567147909153)(assets/1530978233759.png)]

打包后的项目会在target目录下找到

[外链图片转存失败(img-VMgA8Tcw-1567147909165)(assets/1530978308805.png)]

4.5 install命令

mvn install, 打包后将其安装在本地仓库

[外链图片转存失败(img-PIkK09cW-1567147909173)(assets/1530978522982.png)]

安装完毕后,可以在本地仓库中找到 对应的项目

[外链图片转存失败(img-vxkP5Gdt-1567147909177)(assets/1530978655471.png)]

5 依赖管理

5.1 maven插件

[外链图片转存失败(img-nSd2Bga6-1567147909182)(assets/1530978764025.png)]

5.1.1 jdk编译版本的插件

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>cn.itcast</groupId>
    <artifactId>maven_javaweb02</artifactId>
    <version>1.0-SNAPSHOT</version>

    <build>
        <plugins>
            <!-- java编译插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.2</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

[外链图片转存失败(img-5l2vi39D-1567147909191)(assets/1530979577630.png)]

[外链图片转存失败(img-9iP3Bk7Q-1567147909197)(assets/1530979550060.png)]

5.1.2 tomcat7服务端的插件

  • 配置tomcat插件
<!-- 配置Tomcat插件 -->
<plugin>
	<groupId>org.apache.tomcat.maven</groupId>
	<artifactId>tomcat7-maven-plugin</artifactId>
	<version>2.2</version>
	<configuration>
	    <path>/aaa</path>
	    <port>8888</port>
	</configuration>
</plugin>
  • 运行tomcat插件

[外链图片转存失败(img-W15dhTWQ-1567147909199)(assets/1530979853605.png)]

  • tomcat 插件注意问题

    Maven的中央仓库中只有tomcat7.X版本

    如果想使用tomcat8.X版本,

      1. 需要从第三方仓库查找
      2. 或者使用idea集成外部的tomcat插件
    

5.2 导入依赖

5.2.1 导入junit依赖

  • 导入junit坐标
<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
    </dependency>
</dependencies>

[外链图片转存失败(img-wvKiq1SR-1567147909225)(assets/1530980380837.png)]

  • 进行单元测试
import org.junit.Test;

public class DemoTest {
    @Test
    public void demo1() {
        System.out.println("敢于亮剑,绝不后退!");
    }
}

[外链图片转存失败(img-qJXITndf-1567147909227)(assets/1530980434008.png)]

5.2.2 导入servlet的依赖

  • 创建servlet, 但是发现报错,原因是没有导入servlet的坐标依赖

[外链图片转存失败(img-MGAJ4aaW-1567147909228)(assets/1530980596377.png)]

  • 导入servlet的坐标依赖
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.5</version>
</dependency>
  • 原有的servlet报错恢复正常

[外链图片转存失败(img-hMVW5JKC-1567147909230)(assets/1530980728536.png)]

5.3 依赖范围

[外链图片转存失败(img-UCkCCvg4-1567147909231)(assets/1530980805944.png)]

[外链图片转存失败(img-LQpZ9b3k-1567147909234)(assets/1530980856407.png)]

6 maven案例: 完成用户列表显示功能

6.0 需求分析

[外链图片转存失败(img-DHREPs2q-1567147909246)(assets/1531021609684.png)]

6.1 准备数据

create database day20_db;

use day20_db;

create table user(
	id int primary key auto_increment,
	name varchar(50),
	age int
);

insert into user(id, name, age) values(null, '张三', 13);
insert into user(id, name, age) values(null, '李四', 14);
insert into user(id, name, age) values(null, '王五', 15);

6.2 创建跳过骨架的web项目

[外链图片转存失败(img-30l2E1Te-1567147909247)(assets/1532790634814.png)]

[外链图片转存失败(img-ZNwoXNPA-1567147909248)(assets/1532790658947.png)]

[外链图片转存失败(img-qyZyXIGp-1567147909254)(assets/1532790675519.png)]

[外链图片转存失败(img-TznODkco-1567147909256)(assets/1532790714939.png)]

复制webapp目录到src/main目录

[外链图片转存失败(img-CAy6epW5-1567147909257)(assets/1532790784495.png)]

6.3 准备工作

6.3.1 导入所需的api和jar包

  • mysql驱动
  • c3p0连接池
  • DbUtils框架
  • Servlet
  • jstl
  • jsp-api
  • tomcat插件
  • 1.8 jdk插件

6.3.2 maven坐标

<?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>cn.itcast</groupId>
    <artifactId>maven_web03</artifactId>
    <version>1.0-SNAPSHOT</version>
    <!--表名当前是web项目-->
    <packaging>war</packaging>

    <dependencies>
        <!--jsp-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>jstl</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <!-- msyql , c3p0, dbutils-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.32</version>
        </dependency>
        <dependency>
            <groupId>c3p0</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.1.2</version>
        </dependency>
        <dependency>
            <groupId>commons-dbutils</groupId>
            <artifactId>commons-dbutils</artifactId>
            <version>1.6</version>
        </dependency>
    </dependencies>
    <!--引入tomcat插件-->
    <build>
        <plugins>
            <!-- java编译插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.2</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <!--tomcat-->
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <path>/web03</path>
                    <port>8888</port>
                </configuration>
            </plugin>
        </plugins>
    </build>


</project>

6.3.3 搭建包结构

[外链图片转存失败(img-uohhaci9-1567147909259)(assets/1532791394428.png)]

[外链图片转存失败(img-LLRaAjj6-1567147909261)(assets/1532791412569.png)]

[外链图片转存失败(img-1haRXC6t-1567147909261)(assets/1532791425070.png)]

[外链图片转存失败(img-Jvs0Fmxo-1567147909265)(assets/1532791491615.png)]

6.3.4 复制和创建需要的文件

[外链图片转存失败(img-b7iWtOH3-1567147909269)(assets/1532791685589.png)]

6.4 how

6.4.1 入口页面 index.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<body>
<h2>Hello World!</h2>
${pageContext.request.contextPath}
<h3><a href="${pageContext.request.contextPath}/UserFindListServlet">跳转到 用户列表页面</a></h3>
</body>
</html>

6.4.2 web层

[外链图片转存失败(img-Qus3FwBR-1567147909271)(assets/1531024240103.png)]

package cn.itcast.web;

import cn.itcast.domain.User;
import cn.itcast.service.UserService;
import cn.itcast.service.impl.UserServiceImpl;

import java.io.IOException;
import java.util.List;

public class UserFindListServlet extends javax.servlet.http.HttpServlet {
    protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
        // 1 调用业务层 查询用户集合
        UserService userService = new UserServiceImpl();
        List<User> userList = userService.findList();

        // 2 将用户集合转发给用户列表页
        request.setAttribute("userList", userList);
        request.getRequestDispatcher("/user_list.jsp").forward(request, response);
    }

    protected void doGet(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
        doPost(request, response);
    }
}

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>UserFindListServlet</servlet-name>
        <servlet-class>cn.itcast.web.UserFindListServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>UserFindListServlet</servlet-name>
        <url-pattern>/UserFindListServlet</url-pattern>
    </servlet-mapping>
</web-app>

6.4.3 业务层

[外链图片转存失败(img-GFIwrkrB-1567147909272)(assets/1531024222761.png)]

package cn.itcast.service;

import cn.itcast.domain.User;

import java.util.List;

public interface UserService {
    public List<User> findList();
}
package cn.itcast.service.impl;

import cn.itcast.dao.UserDao;
import cn.itcast.dao.impl.UserDaoImpl;
import cn.itcast.domain.User;
import cn.itcast.service.UserService;

import java.sql.SQLException;
import java.util.List;

public class UserServiceImpl implements UserService {
    public List<User> findList() {
        // 调用dao 查询用户集合
        UserDao userDao  = new UserDaoImpl();
        List<User> userList = null;
        try {
            userList = userDao.findUserList();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return userList;
    }
}

6.4.4 数据层

[外链图片转存失败(img-atI3LX7R-1567147909274)(assets/1531024203337.png)]

package cn.itcast.dao;

import cn.itcast.domain.User;

import java.sql.SQLException;
import java.util.List;

public interface UserDao {
    public List<User> findUserList() throws SQLException;
}
package cn.itcast.dao.impl;

import cn.itcast.dao.UserDao;
import cn.itcast.domain.User;
import cn.itcast.utils.JDBCUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;

import java.sql.SQLException;
import java.util.List;

public class UserDaoImpl implements UserDao {
    public List<User> findUserList() throws SQLException {
        QueryRunner queryRunner = new QueryRunner(JDBCUtils.getDataSource());
        String sql = "select * from user";
        List<User> userList = queryRunner.query(sql, new BeanListHandler<User>(User.class));
        return userList;
    }
}

6.4.5 列表显示页面 user_list.jsp

[外链图片转存失败(img-FKTLc9bR-1567147909278)(assets/1531024181895.png)]

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
        <table border="1px" cellspacing="0px" cellpadding="10px" width="50%" align="center">
            <tr>
                <td>序号</td>
                <td>姓名</td>
                <td>年龄</td>
            </tr>
            <c:forEach items="${userList}" var="user" varStatus="vs">
                <tr>
                    <td>${vs.count}</td>
                    <td>${user.name}</td>
                    <td>${user.age}</td>
                </tr>
            </c:forEach>
        </table>
</body>
</html>

idea的常用快捷键

ctrl + y		删除当前行
ctrl + d		复制当前行
ctrl + alt + L		格式化代码
alt + shift + 向下箭头	将行向下移动
alt + shift + 向上箭头	将行向上移动
Ctrl+Shift+Enter	将输入的if、for、函数等等补上{}或者;使代码语句完整
shift + 回车		在当前行下方插入新行
ctrl + alt + 回车	在当前行上方插入新行
shift + f6		重命名
ctrl + o		添加未实现的方法
ctrl + alt + shift + c	拷贝类的全路径
ctrl + alt + v		起变量名
alt + 回车		处理异常
ctrl + alt + m		提取方法
ctrl + shift + u	大小写切换
ctrl + n		搜索类
ctrl + shift + n	搜索文件

	itar		循环遍历数组
	itli		循环遍历集合
	iten		遍历枚举
	iter		增强for循环

ctrl + alt + b		实现方法
ctrl + h		查看继承和实现关系
ctrl + r		替换
ctrl + shift + f	根据关键字查询
ctrl + h		查看当前类的实现类

debug调试
	F7	下一步,会到方法内部
	F8	下一步,不会到方法内部
	F9	调到下一个断点



7 常见问题汇总

1 tomcat插件重复启动:导致端口占用
2 index.html放到WEB-INF下面,导致访问不到这个html页面
3 名称不叫index.html,结果直接输入localhost:8080,访问不到这个页面
4 关联了jre,需要使用JDK
5 需要使用我给的仓库















        <tr>
                <td>${vs.count}</td>
                <td>${user.name}</td>
                <td>${user.age}</td>
            </tr>
        </c:forEach>
    </table>
```

idea的常用快捷键

ctrl + y		删除当前行
ctrl + d		复制当前行
ctrl + alt + L		格式化代码
alt + shift + 向下箭头	将行向下移动
alt + shift + 向上箭头	将行向上移动
Ctrl+Shift+Enter	将输入的if、for、函数等等补上{}或者;使代码语句完整
shift + 回车		在当前行下方插入新行
ctrl + alt + 回车	在当前行上方插入新行
shift + f6		重命名
ctrl + o		添加未实现的方法
ctrl + alt + shift + c	拷贝类的全路径
ctrl + alt + v		起变量名
alt + 回车		处理异常
ctrl + alt + m		提取方法
ctrl + shift + u	大小写切换
ctrl + n		搜索类
ctrl + shift + n	搜索文件

	itar		循环遍历数组
	itli		循环遍历集合
	iten		遍历枚举
	iter		增强for循环

ctrl + alt + b		实现方法
ctrl + h		查看继承和实现关系
ctrl + r		替换
ctrl + shift + f	根据关键字查询
ctrl + h		查看当前类的实现类

debug调试
	F7	下一步,会到方法内部
	F8	下一步,不会到方法内部
	F9	调到下一个断点



7 常见问题汇总

1 tomcat插件重复启动:导致端口占用
2 index.html放到WEB-INF下面,导致访问不到这个html页面
3 名称不叫index.html,结果直接输入localhost:8080,访问不到这个页面
4 关联了jre,需要使用JDK
5 需要使用我给的仓库
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值