尚硅谷的java项目实战哪个好 (尚硅谷java视频怎么样)

一、简介

1、为什么我们要讲电商?

因为就互联网平台来说,电商网站有很多典型的特征:

  • 访问量大
  • 数据量大
  • 涉及的技术多
  • 有一定的业务复杂性
  • 涉及支付 考虑一定安全性

2、我们能从这个项目中学到什么?

巩固以前知识,学会应用:

要新掌握的知识

需要掌握的解决方案

二、 Intellij idea

1、介绍

IDEA 全称 IntelliJ IDEA,是java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、各类版本工具(git、svn、github等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。它的旗舰版本还支持HTML,CSS,PHP,MySQL,Python等。免费版只支持Java等少数语言

尚硅谷java路线图,尚硅谷java开发

比起Eclipse的好处:

2、安装

解压就可以。

方案一:

前提需要将

0.0.0.0 account.jetbrains.com 添加到hosts文件中

第二种方式 需要有网络的情况下才能注册成功

且在注册成功的情况下,没有网络只能打开第一次,如果打开多次,有可能会需要重新联网注册

进入ide主页面,help-register-license server,然后输入 http://idea.iteblog.com/key.php

3、使用

3.1 Project与module

在idea中没有workspace的概念,每一个窗口只能打开一个Project。 对于单一工程的项目,直接建一个Project在其下面开发就好了。

单一工程的项目:

尚硅谷java路线图,尚硅谷java开发

但是我们知道现在稍微大一点的项目都是多项目的分布式部署的,那么岂不是每个子工程都要打开一个窗口?

这时候就需要用到Module的概念,Module是项目的子模块,可以独立运行的工程,当一个多项目组成的系统时,Project下本身可以不拥有代码,而是作为一种顶级的管理目录,所有的代码都放到各个module之中。

下面我们在这个Project下增加Module,

尚硅谷java路线图,尚硅谷java开发

尚硅谷java路线图,尚硅谷java开发

这个时候因为要从网上读取模板所以务必保持联网状态,Spring Initalizr是springboot工程的模板。

尚硅谷java路线图,尚硅谷java开发

尚硅谷java路线图,尚硅谷java开发

尚硅谷java路线图,尚硅谷java开发

尚硅谷java路线图,尚硅谷java开发

尚硅谷java路线图,尚硅谷java开发

这时候看到Project中多了一个demo1的Module的。

其实这时候Project工程下的src就没什么用了,可以删掉。

模块建立好了,我们就来用springmvc标签建一个controller看看好不好使。

尚硅谷java路线图,尚硅谷java开发

controller代码

@Controller
public class Demo1Controller {
@ResponseBody
@RequestMapping("testDemo")
public String testDemo(){
return "hello demo";
}
}

运行Demo1Application中的main方法

尚硅谷java路线图,尚硅谷java开发

用浏览器测试:

尚硅谷java路线图,尚硅谷java开发

3.2 从Git中clone项目

首先要去GitHub上创建一个项目

尚硅谷java路线图,尚硅谷java开发

注意的地方是记得加一个README,这样clone下来的工程就不是空的了。

尚硅谷java路线图,尚硅谷java开发

这个就是咱们的仓库地址,咱们来进行第一次复制

尚硅谷java路线图,尚硅谷java开发

尚硅谷java路线图,尚硅谷java开发

尚硅谷java路线图,尚硅谷java开发

尚硅谷java路线图,尚硅谷java开发

如果弹出提示框如下,问你是否要自动提交某些文件,请一律选NO,且不再提醒。否则系统会自动提交一些不必要的文件。

尚硅谷java路线图,尚硅谷java开发

4、界面颜色风格

setting->Appearance

尚硅谷java路线图,尚硅谷java开发

5、idea的快捷键

5.1 常用快捷键

智能补全 引包 alt+Enter

由方法自动生成返回值变量 ctrl+alt+v

跳到方法的实现类 ctrl+alt+b

从实现类跳转到接口ctrl+u

显示某个接口、抽象类的实现类、子类 ctrl+h

显示最近编辑的文件ctrl+e

查看方法参数 ctrl+p

查看方法文档 ctrl+q

复制行 ctrl+D

删除行 ctrl+Y

跳转到上一个/下一个位置 ctrl+alt+左右

大小写切换 ctrl+shift+u

5.2 Debug:

F8 执行下一行 (相当于eclipse的 F6)

F7 跳入内部 (相当于eclipse的 F5)

F9 继续执行 (相当于eclipse的 F8)

热部署 ctrl+shift+F9 (仅debug模式)

5.3 搜索

全文搜索文本 ctrl+shift+f

全文替换文本 ctrl+shift+r

搜索类 ctrl+n

任何地方搜索 双击shift

5.4 快速录入

查看快速录入列表 ctrl+j

foreach iter

普通for循环 fori

循环数组 itar

迭代器遍历 itco

psvm 主函数

pfs 常量

生成代码块: try/ if / for/ while/ synchronized

ctrl+alt+t

6、手工加入快捷键模板

尚硅谷java路线图,尚硅谷java开发

尚硅谷java路线图,尚硅谷java开发

7、配置maven

尚硅谷java路线图,尚硅谷java开发

三、EZDML工具

配置: 工具—>修改ini配置

[DefaultFieldTypes]

[CustFieldTypes]

1=bigint

2=decimal

[DbConn]

四、通用Mapper的使用

1、搭建module

尚硅谷java路线图,尚硅谷java开发

依赖选Web和Mysql, Jdbc,MyBatis

尚硅谷java路线图,尚硅谷java开发

尚硅谷java路线图,尚硅谷java开发

注意Module位置要在Project路径下面

2、配置通用Mapper

在pom.xml文件中,加入

<!-- 通用mapper -->
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>1.2.3</version>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</exclusion>
</exclusions>
</dependency>

GmallUserManageApplication.java 中增加注解

@SpringBootApplication
@MapperScan(basePackages = "com.atguigu.gmall.usermanage.mapper")
public class GmallOrderServiceApplication {
public static void main(String[] args) {
SpringApplication.run(GmallOrderServiceApplication.class, args);
}
}

3、配置数据源

在application.properties中

spring.datasource.url=jdbc:mysql://localhost:3306/gmall?characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=123123

表结构

CREATE TABLE `user_info` (

`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '编号',

`login_name` varchar(200) DEFAULT NULL COMMENT '用户名称',

`nick_name` varchar(200) DEFAULT NULL COMMENT '用户昵称',

`passwd` varchar(200) DEFAULT NULL COMMENT '用户密码',

`name` varchar(200) DEFAULT NULL COMMENT '用户姓名',

`phone_num` varchar(200) DEFAULT NULL COMMENT '手机号',

`email` varchar(200) DEFAULT NULL COMMENT '邮箱',

`head_img` varchar(200) DEFAULT NULL COMMENT '头像',

`user_level` varchar(200) DEFAULT NULL COMMENT '用户级别',

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=1000 DEFAULT CHARSET=utf8 COMMENT='用户表'

4、代码开发

说明

controller

UserManageController

web

service

UserManageService

接口

service.impl

UserManageServiceImpl

实现类

bean

UserInfo

实体bean

mapper

UserInfoMapper

mapper接口

4.1 bean

public class UserInfo implements Serializable{
@Id
@Column
private String id;
@Column
private String loginName;
@Column
private String nickName;
@Column
private String passwd;
@Column
private String name;
@Column
private String phoneNum;
@Column
private String email;
@Column
private String headImg;
@Column
private String userLevel;

}

注意:@Column 和@Id 都是javax.persistence包中的

技巧 idea快捷键:alt+insert可以快速插入getter 和setter

4.2 Mapper

public interface UserInfoMapper extends Mapper<UserInfo> {
}

注意: Mapper也是引用tk.mybatis.mapper.common.Mapper包中的

Idea 有的时候校验@Autowired不准 可以把校验关闭

settings -> Inspections -> spring->spring core -> code-> Autowiring for Bean class

尚硅谷java路线图,尚硅谷java开发

4.4 service

public interface UserManageService {
public List<UserInfo> getUserInfoList(UserInfo userInfoQuery);
public UserInfo getUserInfo(UserInfo userInfoQuery);
public void delete(UserInfo userInfoQuery);
public void addUserInfo(UserInfo userInfo);
public void updateUserInfo(UserInfo userInfo);
}

4.5 ServiceImpl

@Service public class UserManageServiceImpl implements UserManageService { @Autowired UserInfoMapper userInfoMapper ; //查询所有 public List<UserInfo> getUserInfoList(UserInfo userInfoQuery){List<UserInfo> userInfos= null ; //查询所有//userInfos = userInfoMapper.selectAll();//条件匹配查询//userInfos =userInfoMapper.select(userInfoQuery);//特殊条件匹配查询 比如:按姓氏匹配 Example example= new Example(UserInfo. class );example.createCriteria().andLike( "loginName" , "%" +userInfoQuery.getLoginName()+ "%" );userInfos = userInfoMapper .selectByExample(example); return userInfos;} //查询单表 public UserInfo getUserInfo(UserInfo userInfoQuery){UserInfo userInfo= null ; //按主键查找// userInfo = userInfoMapper.selectByPrimaryKey(userInfoQuery.getId());//按所有非空值查询 必须只有一行 否则报错 userInfo = userInfoMapper .selectOne(userInfoQuery ); return userInfo;} //增加用户 public void addUserInfo(UserInfo userInfo){ //会覆盖数据默认值 userInfoMapper .insert(userInfo); // 不会覆盖数据库默认值 userInfoMapper .insertSelective(userInfo);} public void updateUserInfo(UserInfo userInfo){ //修改用户 依靠主键去查询 ,然后更新其他值,如果某个值为空,那么原值被清空// userInfoMapper.updateByPrimaryKey(userInfo);//修改用户 依靠主键去查询 ,然后更新其他不为空的值.// userInfoMapper.updateByPrimaryKeySelective(userInfo);//修改用户 依靠自定义条件去修改 Example example= new Example(UserInfo. class );example.createCriteria().andLike( "loginName" , "%" +userInfo.getLoginName()+ "%" );userInfo.setLoginName( null ); // userInfoMapper.updateByExample( userInfo,example ); userInfoMapper .updateByExampleSelective( userInfo,example ); // } public void delete(UserInfo userInfoQuery){ userInfoMapper .deleteByPrimaryKey(userInfoQuery.getId()); //按非空值匹配删除// userInfoMapper.delete(userInfoQuery);//按条件匹配删除// userInfoMapper.deleteByExample(new Example(UserInfo.class)); }

4.6 Controller


@RestController
public class UserManageController {
@Autowired
UserManageService userManageService;
@RequestMapping("/users")
public ResponseEntity<List<UserInfo>> getUserList( UserInfo userInfo){
List<UserInfo> userInfoList = userManageService.getUserInfoList(userInfo);
return ResponseEntity.ok().body(userInfoList);
}
@RequestMapping(value = "/user" ,method = RequestMethod.POST)
public ResponseEntity<Void> add(UserInfo userInfo){ ;
userManageService.addUserInfo(userInfo);
return ResponseEntity.ok().build();
}
@RequestMapping(value = "/user" ,method = RequestMethod.PUT)
public ResponseEntity<Void> update(UserInfo userInfo){
userManageService.updateUserInfo(userInfo);
return ResponseEntity.ok().build();
}
@RequestMapping(value = "/user" ,method = RequestMethod.DELETE)
public ResponseEntity<Void> delete(UserInfo userInfo){
userManageService.delete(userInfo);
return ResponseEntity.ok().build();
}
@RequestMapping(value = "/user" ,method = RequestMethod.GET)
public ResponseEntity<UserInfo> getUserInfo(UserInfo userInfoQuery){
UserInfo userInfo = userManageService.getUserInfo(userInfoQuery);
return ResponseEntity.ok().body(userInfo);
}

五、hosts工具

尚硅谷java路线图,尚硅谷java开发

application.properties

spring.datasource.url=jdbc:mysql://mysql.server.com:3306/gmall?characterEncoding=UTF-8
spring.datasource.username=root
spring.datasource.password=123123

相关阅读:

java 枚举的定义与用法

Java 的抽象类是什么

java电商项目全文搜索

java编程延迟队列与轮询

java数组的语法和使用步骤