「尚硅谷」java实战项目谷粒商城简介_idea_通用mapper
一、简介
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等少数语言
比起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在其下面开发就好了。
单一工程的项目:
但是我们知道现在稍微大一点的项目都是多项目的分布式部署的,那么岂不是每个子工程都要打开一个窗口?
这时候就需要用到Module的概念,Module是项目的子模块,可以独立运行的工程,当一个多项目组成的系统时,Project下本身可以不拥有代码,而是作为一种顶级的管理目录,所有的代码都放到各个module之中。
下面我们在这个Project下增加Module,
这个时候因为要从网上读取模板所以务必保持联网状态,Spring Initalizr是springboot工程的模板。
这时候看到Project中多了一个demo1的Module的。
其实这时候Project工程下的src就没什么用了,可以删掉。
模块建立好了,我们就来用springmvc标签建一个controller看看好不好使。
controller代码
-
-
public class Demo1Controller {
-
-
-
public String testDemo(){
-
return "hello demo";
-
}
-
}
运行Demo1Application中的main方法
用浏览器测试:
3.2 从Git中clone项目
首先要去GitHub上创建一个项目
注意的地方是记得加一个README,这样clone下来的工程就不是空的了。
这个就是咱们的仓库地址,咱们来进行第一次复制
如果弹出提示框如下,问你是否要自动提交某些文件,请一律选NO,且不再提醒。否则系统会自动提交一些不必要的文件。
4、界面颜色风格
setting->Appearance
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、手工加入快捷键模板
7、配置maven
三、EZDML工具
配置: 工具—>修改ini配置
[DefaultFieldTypes] [CustFieldTypes] 1=bigint 2=decimal [DbConn] |
四、通用Mapper的使用
1、搭建module
依赖选Web和Mysql, Jdbc,MyBatis
注意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 中增加注解
-
-
-
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{
-
-
-
private String id;
-
-
private String loginName;
-
-
private String nickName;
-
-
private String passwd;
-
-
private String name;
-
-
private String phoneNum;
-
-
private String email;
-
-
private String headImg;
-
-
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
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 |
4.6 Controller
-
-
-
public class UserManageController {
-
-
UserManageService userManageService;
-
-
public ResponseEntity<List<UserInfo>> getUserList( UserInfo userInfo){
-
List<UserInfo> userInfoList = userManageService.getUserInfoList(userInfo);
-
return ResponseEntity.ok().body(userInfoList);
-
}
-
-
public ResponseEntity<Void> add(UserInfo userInfo){ ;
-
userManageService.addUserInfo(userInfo);
-
return ResponseEntity.ok().build();
-
}
-
-
public ResponseEntity<Void> update(UserInfo userInfo){
-
userManageService.updateUserInfo(userInfo);
-
return ResponseEntity.ok().build();
-
}
-
-
public ResponseEntity<Void> delete(UserInfo userInfo){
-
userManageService.delete(userInfo);
-
return ResponseEntity.ok().build();
-
}
-
-
public ResponseEntity<UserInfo> getUserInfo(UserInfo userInfoQuery){
-
UserInfo userInfo = userManageService.getUserInfo(userInfoQuery);
-
return ResponseEntity.ok().body(userInfo);
-
}
五、hosts工具
application.properties
-
spring.datasource.url=jdbc:mysql://mysql.server.com:3306/gmall?characterEncoding=UTF-8
-
spring.datasource.username=root
-
spring.datasource.password=123123
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通