• 1

首先这里我创建的工程是Maven工程(需要在磁盘中解压MAVEN,然后配置MAVEN的环境变量)
一、 先去maven官网:http://maven.apache.org/download.cgi#下载压缩包,下拉页面可以看到好多版本,注意下载的版本版本后面是带.zip的:apache-maven-3.5.4-bin.zip,点击下载即可。
配置环境变量
一丶右键此电脑,点击属性

二丶选择高级系统设置

三丶点击环境变量

四丶添加一个新的系统变量MAVEN_HOME
变量值是你MAVEN解压的目录

五丶点击新建输入%MAVEN_HOME%\bin

六丶点击确定后打开cmd,输入svn -v 注:(-v前面有个空格)
提示JDK版本,环境变量就配置好了

然后我们还需要创建一个文件夹,也就是本地仓库(本地储存jar包的仓库)
D:\Program Files\Maven.m2\repository
我是建立在Maven3.6.3同一级别.m2\repository
1.先创建一个.m2的文件夹

2.然后在该文件夹中在创建一个repository文件夹

3.找到settings文件在配置文件中添加本地仓库的地址
apache-maven-3.6.3----->conf----->settings
在图中位置添加
D:\Program Files\Maven.m2\repository
代码注意标签里面的地址一定要是你自己磁盘创建的

4.找到mirrors标签

在标签中添加

aliyunmaven

*

阿里云公共仓库

https://maven.aliyun.com/repository/public
  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

代码 这个是阿里云公共仓库的地址,直接能从国内下载jar包

在IDEA中设置MAVEN
1.File----->Settings----->Build,Execcution,Deployment----->Build Tools----->Maven

2.设置Maven的地址和继承的本地仓库配置

3.File----->New Projects Settings----->Settings for new Projects
这里的配置跟上面一样也就是创建一个新的项目时保留该配置

创建IDEA项目
一丶File----->new----->project
二丶选择Maven模板

1.选中从原型中构建一个模板
2.选择web模板 然后点击下一步

点击finish就创建好一个maven项目了

然后我们需要配置pom.xml文件,通过坐标导入javaWeb需要的jar包

Apache Commons BeanUtils » 1.9.4Apache Commons BeanUtils为反射和自省提供了一个易于使用但灵活的包装器。<dependency><groupId>commons-beanutils</groupId><artifactId>commons-beanutils</artifactId><version>1.9.4</version></dependency>Servlet的核心依赖包<dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>4.0.1</version><scope>provided</scope></dependency><!--jstljar包,jsp页面上的java操作,前提需要提供javax.servlet-apijar包依赖--><dependency><groupId>javax.servlet.jsp.jstl</groupId><artifactId>jstl</artifactId><version>1.2</version></dependency><!--阿里的连接池--><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.4</version></dependency><!--Oracle驱动坐标,没有该坐标无法连接到oracle数据库,可以通过该驱动操作JDBC    https://mvnrepository.com/artifact/com.oracle.database.jdbc/ojdbc8 --><dependency><groupId>com.oracle.database.jdbc</groupId><artifactId>ojdbc8</artifactId><version>19.8.0.0</version></dependency><!--C3p0连接池的坐标--><dependency><groupId>be.yildiz-games</groupId><artifactId>module-database-pool-c3p0</artifactId><version>1.0.0</version><type>pom</type></dependency><!--解决数据库中文乱码问题:不支持的字符集,不支持的字符集合--><!-- https://mvnrepository.com/artifact/cn.easyproject/orai18n --><dependency><groupId>cn.easyproject</groupId><artifactId>orai18n</artifactId><version>12.1.0.2.0</version></dependency>
  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

  • 11

  • 12

  • 13

  • 14

  • 15

  • 16

  • 17

  • 18

  • 19

  • 20

  • 21

  • 22

  • 23

  • 24

  • 25

  • 26

  • 27

  • 28

  • 29

  • 30

  • 31

  • 32

  • 33

  • 34

  • 35

  • 36

  • 37

  • 38

  • 39

  • 40

  • 41

  • 42

  • 43

  • 44

  • 45

  • 46

  • 47

配置好之后我们需要点击图中的符号刷新or下载 jar包

导入了web作业需要的jar后然后我们来配置一下Tomcat
1.选择Add Configuration

2.点击+号添加一个新的配置

3.选择本地的tomcat

4.选择本地tomcat目录

5.配置好tomcat后我们就需要将web项目部署到tomcat中

点击+号

6.部署完之后在server中选择需要的配置,下面我会介绍一下

选择JDK的安装路径

注意 要选择应用Apply后点击OK,这样我们的tomcat就配置完了

然后我们就可以开始写代码了
首先看一下项目结构

一丶根据数据库创建实体类因为功能一是登录,所以我们先创建一个Users类

二丶创建一个连接数据库的工具类DBUtil
三丶创建一个通用的增删改查的通用工具类JdbcTemplate
这里直接贴代码

ackage util;

import dao.mapper.Mapper;

import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;

public class JdbcTemplate {

private Connection conn=null;private ResultSet rs=null;private PreparedStatement ps=null;//通用查询总记录

// 通用的查询总记录  这里是网页上分页的时需要调用的方法public Integer count(String sql, Object... params) throws  SQLException{try {            conn = DBUtil.getConnection();            ps = conn.prepareStatement(sql);

// 设置参数if (params != null) {for (int i = 0; i < params.length; i++) {                    ps.setObject(i + 1, params[i]);}}

            rs = ps.executeQuery();

if (rs.next()) {return rs.getInt(1);}

} catch (SQLException e) {throw new RuntimeException(e.getMessage());} finally {            DBUtil.closeAll(rs, ps, conn);}

return null;}

// 通用的修改(添加、删除、修改)public boolean update(String sql, Object... params) throws SQLException {boolean flag = false;try {            conn = DBUtil.getConnection();            ps = conn.prepareStatement(sql);

// 设置参数if (params != null) {for (int i = 0; i < params.length; i++) {                    ps.setObject(i + 1, params[i]);}}

int rows = ps.executeUpdate();

if (rows > 0) {                flag = true;}

} catch (SQLException e) {throw new RuntimeException(e.getMessage());} finally {            DBUtil.closeAll(rs, ps, conn);}

return flag;}

// 通用的查询单个对象public <T> T selectForObject(String sql, Mapper<T> mapper, Object... params) throws  SQLException{        T t = null;try {            conn = DBUtil.getConnection();            ps = conn.prepareStatement(sql);if (params != null) {for (int i = 0; i < params.length; i++) {                    ps.setObject(i + 1, params[i]);}}

            rs = ps.executeQuery();

while (rs.next()) {                t = mapper.mapperRow(rs);}

} catch (SQLException e) {throw new RuntimeException(e.getMessage());} finally {            DBUtil.closeAll(rs, ps, conn);}

return t;}

// 通用的查询所有对象public <T> List<T> selectList(String sql, Mapper<T> mapper,                                  Object... params) throws SQLException {        List<T> list = new ArrayList<>();

try {            conn = DBUtil.getConnection();

            ps = conn.prepareStatement(sql);

if (params != null) {

for (int i = 0; i < params.length; i++) {                    System.out.println(3);                    ps.setObject(i + 1, params[i]);}}

            rs = ps.executeQuery();

while (rs.next()) {                T t = mapper.mapperRow(rs);                list.add(t);}} catch (SQLException e) {throw new RuntimeException(e.getMessage());} finally {            DBUtil.closeAll(rs, ps, conn);}

return list;}

}
  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

  • 11

  • 12

  • 13

  • 14

  • 15

  • 16

  • 17

  • 18

  • 19

  • 20

  • 21

  • 22

  • 23

  • 24

  • 25

  • 26

  • 27

  • 28

  • 29

  • 30

  • 31

  • 32

  • 33

  • 34

  • 35

  • 36

  • 37

  • 38

  • 39

  • 40

  • 41

  • 42

  • 43

  • 44

  • 45

  • 46

  • 47

  • 48

  • 49

  • 50

  • 51

  • 52

  • 53

  • 54

  • 55

  • 56

  • 57

  • 58

  • 59

  • 60

  • 61

  • 62

  • 63

  • 64

  • 65

  • 66

  • 67

  • 68

  • 69

  • 70

  • 71

  • 72

  • 73

  • 74

  • 75

  • 76

  • 77

  • 78

  • 79

  • 80

  • 81

  • 82

  • 83

  • 84

  • 85

  • 86

  • 87

  • 88

  • 89

  • 90

  • 91

  • 92

  • 93

  • 94

  • 95

  • 96

  • 97

  • 98

  • 99

  • 100

  • 101

  • 102

  • 103

  • 104

  • 105

  • 106

  • 107

  • 108

  • 109

  • 110

  • 111

  • 112

  • 113

  • 114

  • 115

  • 116

  • 117

  • 118

  • 119

  • 120

  • 121

  • 122

  • 123

  • 124

  • 125

  • 126

  • 127

  • 128

  • 129

  • 130

  • 131

  • 132

  • 133

  • 134

  • 135

  • 136

四丶然后我们还需要一个工厂模式(一、工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。)


1.通过静态代码块加载工厂类需要用到的属性配置文件
2.工厂类需要一个能够创建自身实例的方法
创建对象的前提条件是必须要调用构造方法(不管是有参还是无参)
但是工厂类他的构造方法是私有的,那么我们无法调用构造方法,也就无法执行工厂
类的中方法,所以我们就需要这么一个能够创建工厂类自身实例的方法
3.重中之重 仔细看
4.工厂模式就是为了解决代码的耦合性问题,也就是解耦,多例模式,每一次调用都需要重新创建一个新的对象地址,而单例模式就是在内存中开辟一个实例对象,以后每次都调用这个对象,大大提高了代码的效率
5.其次,工厂模式可以降低代码重复。如果创建对象B的过程都很复杂,需要一定的代码量,而且很多地方都要用到,那么就会有很多的重复代码。我们可以这些创建对象B的代码放到工厂里统一管理。既减少了重复代码,也方便以后对B的创建过程的修改维护。

五丶接下来我们就可以写用户的Dao层了
1.首先我们要定义一个UsersDao接口
2.在实现层impl中创建一个UsersDaoImpl实现类
3.由于在网页上我们要隐藏dao层是怎么实现增删改查的,所以在这里 我们要加一个业务层

六丶然后我们就可以开始写Servlet了
1.我们要定义一个通用的servlet方便让别人继承,提高代码的重用性,去除冗余的代码
2.需要获取网页传来的参数action(action的值就是方法名)
3.这里需要通过反射去调用子类中的方法


到此为止登录的功能就完成了

登录之后我们就可以写主页面的商品分页显示+高级查询
一.我们需要一个分页的工具类

然后我们需要写product实体类以及ProductDao接口以及实现类+业务层
第一步:写一个product实现类
第二步:写一个ProductDao接口 在接口中添加一个分页以及高级查询的方法

第三步:写一个ProductDaoImpl实现类,创建通用模板类对象,并实现分页方法
第四步:业务层的操作
第五步:jsp页面以及ProductServlet操作
1.从index.jSP网页跳转到productServlet
2.通过工厂创建业务层实例对象
1.创建数据传输对象
2.通过apache封装的自省和反射框架获取网页请求传输过来的所有参数
3.设置默认页码为第一页,并且设置页显示数据
4.获取会话session储存的当前页,如果不为空,则覆盖之前的默认页
5.调用业务层查询分页+高级查询的方法,将当前页码+页显示数据以及dto数据传输 对象传进去
6.传入dto获取总共多少商品数据
7.设置分页工具类
8.将dto存入session 方便网页刷新时文本框的条件刷新消息(不符合逻辑)
9.将分页类对象存入会话,便于上一页下一页…等操作
10.跳转到显示数据的网页

3.show.jsp操作
1.导入jstl核心标签库
2.设置好dto的条件,并将值都设置为会话储存的dto
3.数据显示及分页操作

Ok到了这里分页就做完了 点个关注吧 谢谢!!

idea conf文件_JavaWe商品项目保姆级解析IDEA版(配置篇)相关推荐

  1. win系统的阿里云服务器部署IDEASpringBoot项目保姆级教程

    win系统的阿里云服务器部署SpringBoot项目保姆级教程 前言 配置阿里云服务器 配置环境 环境配置中的坑 还有别的坑的话,私信我我补充......毕竟配置是最基本的,还想咋样... jar包导 ...

  2. Transformer主干网络——ViT保姆级解析

    前言 最近准备跑点主干网络的实验,transformer在cv都杀疯了,整理下最近这些网络的发展以及创新点.从"万恶之源"ViT开始吧. 系列文章 Transformer主干网络- ...

  3. Transformer主干网络——DeiT保姆级解析

    前言 这篇文章是基于蒸馏的方法,提高ViT的性能,根据最近transformer相关文章的实验对比以及引用可以发现,这篇文章基本上是ViT以后出现的比较早的文章了. 系列文章 Transformer主 ...

  4. Transformer主干网络——T2T-ViT保姆级解析

    前言 论文地址:paper 代码地址:github 系列文章 Transformer主干网络--ViT保姆级解析 Transformer主干网络--DeiT保姆级解析 Transformer主干网络- ...

  5. Transformer主干网络——PVT_V2保姆级解析

    前言 论文地址:PVT2 代码地址:github 系列文章 Transformer主干网络--ViT保姆级解析 Transformer主干网络--DeiT保姆级解析 Transformer主干网络-- ...

  6. 【20210122期AI简报】保姆级深度学习环境配置指南、寒武纪首颗AI训练芯片亮相...

    导读:本期为 AI 简报 20210122 期,将为您带来 9 条相关新闻,新增论文推送,在文章底部,祝各位牛年大吉~ 本文一共 3700 字,通篇阅读结束需要 7~10 分钟 1. 保姆级教程:深度 ...

  7. 【发版或上线项目保姆级心得】

    第一步:先在正式环境创建数据库/新增表格或者字段 在数据库表中增加字段/表格,不会报错. 但是切记不要过早数据库字段/表格或者删除字段/表格 第二步:修改配置文件 先将正式环境需要的配置给写好,包括但 ...

  8. 【Vue】Vue2创建移动端项目实战教程,创建移动端项目保姆级教程,接上一篇创建Vue2项目(下)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.创建vue2项目 二.移动端适配 1.安装插件flexible (适配移动端) 2.安装 postcss-pxto ...

  9. [保姆级图文教程]如何配置局域网多机共享同步文件夹

    [图文教程]如何配置局域网多机共享同步文件夹 1.控制面板设置 2.开启共享设置 3.本地组策略编辑器 4.大功告成 1.控制面板设置 控制面板>>网络和Internet>>网 ...

最新文章

  1. vscode中内置集成终端显示为git(bash.exe)
  2. python简单代码演示效果-演示python如何创建和使用一个简单的元类的代码
  3. Maven自動化構建工具
  4. 轻量级流程图控件GoJS示例连载(一):最小化
  5. 谈谈JAVA工程狮面试中经常遇到的面试题目------什么是MVC设计模式
  6. 使用ssh公钥实现ssh免密码登录
  7. infopath视图切换
  8. linux正则表达式_Linux 中几个正则表达式的用法
  9. 树莓派之安装dlna服务
  10. 为你的Intel(R) HD Graphics 显卡安装适合Premiere的驱动并解决“无法为此计算机验证正在安装的驱动程序“问题
  11. Spring boot整合Drools、flowable决策引擎解决方案
  12. 国外问卷调查该怎么做?入门须知!
  13. 【规划】常用算法大汇总
  14. 最详细的Android Bitmap回收机制(从2.3到7.0,8.0)
  15. ElementUI表格吸顶(sticky)
  16. wps单文件版_微软Office手机版来了!完全免费+三合一!你还会用WPS吗?1分钟带你了解两者的不同!...
  17. 一键安装5个系统方法,简单易学轻松上手
  18. 纯JS实现填字游戏实战总结
  19. android多线程下载3
  20. Python网络爬虫实战:爬取携程网酒店评价信息

热门文章

  1. SAP CRM partner主数据的地址格式设计
  2. Document Builder: 如何将structure level的field加入到word document的table中
  3. CM: 如何通过table SKWG_BREL快速查询product attachment信息
  4. SAP成都研究院DevOps那些事
  5. python selenium ide使用_第 2 章 Selenium IDE 的使用 Selenium 3+Python 3 自动化测试
  6. php地图,地图php接口
  7. easyswoole和mixphp_swoole框架都有哪些
  8. python下载邮箱附件_基于Python3 下载邮箱附件,并解压到指定文件夹
  9. 电子计算机什么理论,电子计算机的工作原理是什么?
  10. 没有内存条电脑能开机吗_电脑没内存条能开机吗?这位朋友说他的电脑没内存条都用几年了!...