目录
Maven相关的概念
Maven介绍
什么是Maven
Maven的作用
Maven的好处
Maven仓库和坐标
Maven的仓库
Maven的坐标
小结
Maven的安装
Maven的安装
下载Maven
安装Maven
Maven目录介绍
配置本地仓库
IDEA集成Maven
配置Maven
使用IDEA创建Maven⼯程
创建javase⼯程
创建javaweb⼯程
Maven的常用命令
clean命令
compile命令
test命令
package命令
小结
依赖管理和插件
依赖管理
导⼊依赖
导⼊junit的依赖
依赖范围
小结
Maven插件
JDK编译版本的插件【了解】
Tomcat7服务端的插件
小结
案例 - 使用Maven搭建WEB项目
需求:完成添加客户信息的操作
思路分析
代码实现
maven仓库: 指的是jar包所在位置
仓库
名称
|
作⽤
|
本地
仓库
|
相当于缓存,⼯程第⼀次会从远程仓库(互联⽹)去下载 jar 包,将jar包存在本地仓库(在程序员的电脑上)。第⼆次不需要从远程仓库去下载。先从本地仓库找,如果找不到才会 去远程仓库找。
|
中央
仓库
|
就是远程仓库,仓库中 jar 由专业团队( maven 团队)统⼀维护。中央仓库的地址: http://repo1.maven.org/maven2/
|
远程
仓库
(私服 )
|
私服是⼀种特殊的远程仓库,它是架设在局域⽹内的仓库服务,私服代理⼴域⽹上的远程仓库,供局域⽹内的 Maven ⽤户使⽤。当 Maven须要下载构件的时候。它从私服请求,假设私服上不存在该构件,则从外部的远程仓库下载,缓存在私服上之后,再为 Maven的下载请求提供服务。
|
com.alibaba
druid
1.1.10
官网:http://maven.apache.org/
将Maven压缩包解压,即安装完毕
本地库:链接:https://pan.baidu.com/s/1AmAm94_1VQjNUJOWSeCGwg 提取码:4sco
1. 将软件⽂件夹中的Repository解压
清除编译产⽣的target⽂件夹内容
该命令可以对src/main/java⽬录的下的代码进⾏编译
junit
junit
4.12
test
import org.junit.Test;
public class DemoTest {
@Test
public void test1(){
System.out.println("测试junit");
}
}
javax.servlet
javax.servlet-api
3.1.0
provided
org.apache.maven.plugins
maven-compiler-plugin
3.2
1.8
utf-8
org.apache.tomcat.maven
tomcat7-maven-plugin
8080
/
CREATE TABLE `cst_customer` (
`cust_id` bigint(32) NOT NULL AUTO_INCREMENT COMMENT '客户编号(主键)',
`cust_name` varchar(32) NOT NULL COMMENT '客户名称(公司名称)',
`cust_source` varchar(32) DEFAULT NULL COMMENT '客户信息来源',
`cust_industry` varchar(32) DEFAULT NULL COMMENT '客户所属⾏业',
`cust_level` varchar(32) DEFAULT NULL COMMENT '客户级别',
`cust_phone` varchar(64) DEFAULT NULL COMMENT '固定电话',
`cust_mobile` varchar(16) DEFAULT NULL COMMENT '移动电话',
PRIMARY KEY (`cust_id`)
)
public class Customer implements Serializable {
private Long cust_id;
private String cust_name;
private String cust_source;
private String cust_industry;
private String cust_level;
private String cust_phone;
private String cust_mobile;
}
4.0.0
com.wensong
JavaWebDemo
1.0-SNAPSHOT
war
UTF-8
1.8
1.8
junit
junit
4.12
test
javax.servlet
javax.servlet-api
3.1.0
provided
mysql
mysql-connector-java
8.0.16
com.alibaba
druid
1.1.10
commons-dbutils
commons-dbutils
1.6
commons-beanutils
commons-beanutils
1.9.3
javax.servlet.jsp
jsp-api
2.1
provided
javax.servlet
jstl
1.2
org.apache.tomcat.maven
tomcat7-maven-plugin
8000
/
代码 druid.properties
driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/test_wensong?useUnicode=true&characterEncoding=UTF-8&useSSL=false&use&serverTimezone=Asia/Shanghai
username=root
password=root
package utils;
import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;
/**
* 阿里巴巴的连接池 Druid 工具类
*/
public class DruidUtils {
/*
1. 加载 druid.properties 配置文件
2. 创建 Druid 连接池对象
3. 提供 获得 连接池对象的方法
4. 提供 从连接池中 获取连接对象Connection的 方法
*/
public static DataSource ds = null;
static {
try {
//1. 加载 druid.properties 配置文件
InputStream is = DruidUtils.class.getClassLoader().getResourceAsStream("druid.properties");
Properties prop = new Properties();
prop.load(is);
//2. 创建 Druid 连接池对象
ds = DruidDataSourceFactory.createDataSource(prop);
} catch (Exception e) {
e.printStackTrace();
}
}
/*
3. 提供 获得 连接池对象的方法
*/
public static DataSource getDataSource(){
return ds;
}
/*
4. 提供 从连接池中 获取连接对象Connection的 方法
*/
public static Connection getConnetion() throws SQLException {
Connection conn = ds.getConnection();
return conn;
}
}
<%--
Created by IntelliJ IDEA.
User: wensong
Date: 2020/8/26
Time: 10:32 PM
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
注册页面
package web;
import org.apache.commons.beanutils.BeanUtils;
import org.junit.Test;
import pojo.Customer;
import service.CustomerService;
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.util.Map;
@WebServlet(urlPatterns = "/register")
public class MyServlet extends HttpServlet {
public void doPost(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
doGet(request, response);
}
@Test
public void doGet(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
//1. 获取参数
Map map = request.getParameterMap();
//2. 封装数据到 Customer对象
Customer customer = new Customer();
try {
BeanUtils.populate(customer, map);
} catch (Exception e) {
e.printStackTrace();
}
//3. 调⽤业务层⽅法, 传递customer对象, 完成添加操作
CustomerService customerService = new CustomerService();
customerService.register(customer);
//4. 重定向到⾸⻚
response.sendRedirect( request.getContextPath());
}
}
package service;
import dao.CustomerDao;
import pojo.Customer;
import java.sql.SQLException;
public class CustomerService {
public void register(Customer customer) {
//调⽤dao层⽅法
CustomerDao customerDao = new CustomerDao();
try {
customerDao.register(customer);
} catch (SQLException e) {
e.printStackTrace();
}
}
}
package dao;
import org.apache.commons.dbutils.QueryRunner;
import pojo.Customer;
import utils.DruidUtils;
import java.sql.SQLException;
public class CustomerDao {
public void register(Customer c) throws SQLException {
QueryRunner queryRunner = new
QueryRunner(DruidUtils.getDataSource());
String sql = "insert into cst_customer values(?,?,?,?,?,?,?)";
Object[] params = {c.getCust_id(),
c.getCust_name(),c.getCust_source(),c.getCust_level(),
c.getCust_industry(),c.getCust_mobile(),c.getCust_phone()};
queryRunner.update(sql, params);
}
}