实训技术
了解
1. springboot
2. maven
3. git/github
4. swagger
5. 数据库技术
6. 数据建模
7. 团队协作(github)
8. 打包,上线(阿里云【一年 9.8】)
linux/windows B/S架构
--------------作业-------------
1) 注册github账号 1000亿 100
github
小米
百度
无人驾驶
京东
2) 软件公司
1. 管理层
合伙人
会计(代理记账)
招人
Java工程师 5(后台开发) 作坊
前端工程师 5(前端开发)
手机端开发(android ios) 0(技术支持)
产品经理
运维(linux) 运行部署
测试
大数据(大公司)
2. 地点,写字楼
团队构成
职业规划(软件工程 IT)
1. 如何看待IT
加班
朝九晚五 上五休二
项目交付前
头发少
成家问题
2. 如何积累
精通语言 Java
对于其他语言有所了解
github 开源项目,贡献源码
自主学习能力(springboot 官方文档 英文)
熟悉 linux(开源C)
社会担当
大牛
学生管理系统
二手交易网
weex
3. 如何成长
3) 开发环境
ThinkPad T480P (8000 固态+16G内存,港版)
windows7
Java开发
Java学习(linux[ubuntu,centos])
mac pro(苹果系统) 类Linux系统(10000)
前端
html/css/ps/vue/angularjs/React
学习路线
大二
JavaSE (基础学习 c/s)
linux 5天
CoreJava 20天
XML解析 2天
MySQL 5天
JDBC 5天
Mybatis/Hibernate
5天(ORM框架)
JavaEE (企业级开发 b/s)
Servlet/JSP
spring(基础学习)
分步骤进行
核心框架 context
依赖注入
面向切面
解决问题能力(基础)
springmvc
本科生应届生
SSM框架(spring springmvc mybatis)
实战工具(提分)
maven 项目管理工具
git 版本控制工具
github 第三方代码托管(团队协作)
swagger API文档(交流)
JVM java虚拟机
分布式部署经验,大量并发,产品上线
能力!
解决问题能力(bug/处理事情方法)
学习能力
成熟稳重(处理问题)浮躁
角度(视角)
------------------------
10人/组
3小时 -- 5小时
上课听明白(如果有能力跟上敲代码)
下课落实代码
出了问题自己解决
实在解决不了小组内部沟通
问老师
day01
1. 基础环境搭建
1) 安装jdk
1. 下载对应的jdk版本 (oracle官网 jdk8 )
2. 安装
1) 解压 (下一步)
2) 配置环境变量
JAVA_HOME Java的家目录
CLASSPATH 类加载路径
Path
2) helloworld
1. 手动编写Helloworld
1) 创建项目
2) 搭建项目结构
3) 进行代码编写
4) 编译代码
5) 运行
Java 编译型语言
源代码
Hello.java
字节码(提升代码运行效率,代码保密)
Hello.class
2. 刚刚那个题是不是只能在
/home/briup/Java/example/app01这个目录下运行?
是!
怎么找到这个类
java -cp /home/licy/.../app01/bin com.briup.test.Hello
类加载机制CLASSPATH
双亲委托机制
1) 打包 jar test.jar
2) 将test.jar放入到扩展类加载中
3) 直接运行即可
3. test.jar能不能直接运行呀?
java -cp test.jar com.briup.test.Hello
2. mysql
乱码
3. eclipse
4. 归档能力(管理)
pc
(虚拟机[windows,linux])
c:
d:
e:
f:
d:/briup/
elipse(解压即安装)
workspace
源码
maven
respository
spring
5. 树莓派
6. windows应用
WIN+r 打开运行
WIN+e 打开资源管理器
----------
1. 9.9 阿里云(windows)
2. teamview 远程工具
C:\ProgramData\Oracle\Java\javapath;
C:\windows\system32;
%SystemRoot%;
%SystemRoot%\System32\Wbem;
%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;
c:/qq/bin/
dos
dir
java
root
day02-------------------------
基础开发环境
springboot(SSM)
JavaSE
JavaEE
SSH
1. jdk
2. mysql
1) 执行数据库启动的时候/写入配置文件(一个都无法执行)
c:/program files/Mysql/bin/my.ini
c: 写入权限 (win10)
2) 前三步没问题!最后一步失败(开启了防火墙)
一般情况下第三步可以启动,那么服务一般是可以用
3) 在终端中输入
mysql 找不到命令(环境变量没有配置)
4) 密码
测试mysql服务是否安装成功
在终端中输入
> mysql -u用户名 -p密码 -h主机
> mysql -uroot -proot -h127.0.0.1
不是内部或外部命名,Path
CTRL-C 强制中止一个进程
3. navicator
mysql图形化界面,只要mysql服务安装成功并且启动成功,这个工具才能用
搭建springboot开发环境
1) 安装eclipse / idea (代码编辑工具)
d:/briup (licy)
eclipse 直接解压到当前目录
设置:
Text Fonts
encoding
workspace 工作空间
集成开发工具(耗费系统资源,功能比较强大)
elipse
idea
文本编辑
vim
sublime
editplus
notepad++
2) maven
项目管理工具
1. 创建项目
2. 测试
3. 打包运行
4. 管理依赖
1. jdbc编程
1) 创建项目
2) 获取驱动包
3) 创建数据库以及对应的表
4) 编码
A项目 调用到其类(excel )
查询所有学生信息
下载到excel
Java -> excel (POI)
Java jar包 class
开源
收费(不开源)
springboot (框架)
springmvc
mybatis
swagger
改变(自己封装)
前端
AngularJS(google)
React/ReactNative
尤雨溪
历史
美工 页面仔
前端开发 出国!留学(美国)研究生
google js 研究 插件 google
AngularJS
封装
github
基于vue封装组件库
饿了么 elementui
----------------
Java
java.lang
类 调用 另外一个类
什么情况下不需要导入类
1) 调用的类属于java.lang
2) 调用的类和当前类在同一个包下
java.lang
java.util
java.io
java.thread
java.net
java.sql
语法:
1) 类
成员属性/成员变量/实例变量
成员方法/实例方法
访问修饰符 class 类名 {
访问修饰符 数据类型 属性名;
访问修饰符 返回值数据类型 方法名(形式参数){
return
}
}
public class Student{
private String name;
public void sayName(){
System.out.println(this.name);
}
public String getName(){
return this.name;
}
}
只有包含main方法的类才能被执行,并非所有类中都需要main方法
jdbc编程
1. 手动获取jar包(class打包的文件,方便程序员进行调用)
mysql-connector-xxx.jar
提供java链接mysql数据库的支持
sun原生代码不支持直接链接数据库
调用第三方API(应用程序编程接口)
如何获取jar包???
官网(英文)
2. spring
spring和mysql的jar会不会冲突?
maven(项目依赖)
bin
src
javac -d ./bin src/Hello.java
java -cp ./bin com.briup.test.Hello
cp classpath
1) 解压maven到briup目录下
2) 配置环境变量
M2_HOME
Path
3) 解压本地仓库
将repository解压到briup目录下
4) 配置本地仓库地址
在c:/briup/maven_xxx/conf/settings.xml配置本地仓库
5) 在eclipse中配置maven
1. 安装
2. user settings
3. 如何配置项目框架
jdbc mysql依赖
spring spring+jdbc开发
spring+web spring+springmvc+jdbc
spring+web+mybatis
ssm框架
springboot(项目架构)
1) 解压springboot到briup目录下
2) 配置环境变量
SPRING_HOME
Path
开发简单,难在架构
Student
Course
Clazz
StudentDao
CourseDao
Clazz
jdbc(mybatis)
4. 使用springboot创建开发项目
调用spring官方给我们提供的服务,也就是说让spring来帮我们创建项目,我们只需要告诉它我们的项目组id,项目id,项目名称,项目依赖即可。spring创建完毕之后我们可以进行下载,这样就拥有一个基于spring的项目。
进入到workspace目录下
> spring init -g=com.briup -a=app01 -d=web,mysql app01
> cd app01
> mvn install
> mvn spring-boot:run
打开浏览器,在浏览器地址栏中输入
http://localhost:8080
spring init [参数] 项目名称
spring init app
-g groupId 项目组id
-a artifactId 项目id
-d dependency 项目依赖
mysql 驱动依赖
web springmvc的依赖
-p package 打包方式
briup/app01
pom.xml
下载sublime(editplus)
5. b/s架构
Java 执行Java类
1. 查询班级学生信息
Main.java
jdbc 访问数据库 查询学生信息
2. 查询班级学生信息
www.terry.com/sms/
1) 网页(H5工程师/前端工程师/JSP)
1. 列表显示所有学生信息
2. 统计图-统计学生出勤率 (班牌系统-产品)
2) 数据来源!!!
数据库
|
程序读取
|
发送给前端开发者(http协议、ajax、json)
6. 添加热部署能力
当修改了代码为了能给直接进行测试而不需要重新启动服务所添加的一种能力。
在pom.xml添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
7. 添加swagger
1) 在pom.xml添加依赖
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.6.1</version>
</dependency>
2) 配置
----------------day04----------------
1. 使用springboot创建一个项目,并且这个项目具有热加载能力,能提供swagger服务,提供ssm框架
1) 将dos盘符切换到workspace下
2) 在dos中执行如下命令
> spring init -g=com.briup -a=app02 -d=web,mybatis,mysql app02
命令结束后在当前目录下会产生一个新的项目,项目名称叫app02
3) 进入app02项目根目录下,然后执行添加依赖操作
> cd app02
> mvn install
4) 通过eclipse打开项目
file-> open projects from file system
5) 添加热部署能力
在 pom.xml中添加依赖信息
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
6) 添加swagger api能力
在 pom.xml中添加依赖信息
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.6.1</version>
</dependency>
右击项目名称 -> maven -> update project
配置
Swagger2.java导入到项目中(延缓)
7) 进行代码编写
com.briup.app02
bean
dao
service
web
controller
TestController.java
8) 启动项目进行测试
> mvn spring-boot:run
1) 测试项目 TEST,如果项目中出现错误,启动失败
2) 打包项目 target
3) 启动tomcat服务器
4) 将项目部署到tomcat中
JavaEE(servlet/jsp)
腾讯云服务器(小程序,微信公众号) 9.5 linux
tomcat
cd tomcat_home/bin/start.sh (shell编程)
8080
本地访问
http://127.0.0.1:8080 访问到
外网访问
http://120.78.164.247:8080 访问不到
防火墙(安全组)
安全组如何配置
9) mybatis的应用
1. 将mybatis集成到当前项目中(原理)
springboot
2. 使用mybatis ORM
1) 表 tbl_student(id,name,age)
2) pojo类 Student(id,name,age)
3) mybatis应用
1. 映射接口
public interface StudentMapper{
Student findById(long id);
}
2. 映射文件 xml
sql语句
<mapper namespace="映射接口的完整名称">
<select id="接口中的方法名" resultType="将查询到的结果封装到对象中">
select * from tbl_student
</select>
</mapper>
3. 告诉给mybatis映射接口和映射文件放置到什么地方
dao
StudentMapper.xml
mapper
StudentMapper.xml
1) 映射接口
@MapperScan("com.briup.app02.dao")
到包com.briup.app02.dao包中寻找映射接口
2) 映射文件
application.properties
mybatis.mapper-locations= classpath:/mapper/**/*.xml
到项目根目录下mapper目录下寻找映射文件
数据访问层代码已经开发
4)
jdbc的封装
dao
public class StudentDao
findAll(){
try{
//1. 加载驱动
//2. 获取连接
//3. 预处理sql
//...
}catch(){
}
}
findById(){
}
delete(){
}
---------------------day05---------------------
1. 回顾
ssm框架代码编写
1) 搭建ssm框架
> spring init -g=com.briup -a=app02 -d=web,mybatis,mysql app02
2) 安装依赖
> cd app02
> mvn install
Test
报错:合适的driver
3) 通过eclipse打开项目
application.properties
spring.datasource.url
spring.datasource.driver-class-name
spring.datasource.username
spring.datasource.password
4) 搭建三层架构
com.briup.app02
config
bean
dao
service
impl
web
controller
5) 数据访问层的编写
bean
Student.java
dao
StudentMapper.java
resources
mapper
StudentMapper.xml
配置(只需要配置一次)
1) MybatisConfig.java
@MapperScan("com.briup.app02.dao")
2) application.properties
mybatis.mapper-locations= classpath:/mapper/**/*.xml
6) 业务逻辑层代码
service
IStudentService.java (接口)
findAll() throws Exception;
impl
StudentServiceImpl.java
7) 视图层(控制器层)
web
controller
StudentController.java
@RestController
@RequestMapper("/student")
public class StudentController {
@GetMapping("findAllStudent");
public void findAllStudent(){
}
}
8)提供统一的返回格式
{
code:200
message:"买到了"
data:{
id=1,
name:"怡宝“,
price:2
}
}
9)代码共享
github仓库地址
https://github.com/ZouZeBin/sms1.0.git
sms1.0
[core]
repositoryformatversion = 0
filemode = false
logallrefupdates = true
[user]
name=ZouZeBin
email=1240125675@qq.com
[remote "origin"]
url = https://github.com/ZouZeBin/sms1.0.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
路由
http://127.0.0.1:8080/student/findAllStudent
Student Course
StudentMapper CourseMapper
IStudentService ICourseService
StudentServiceImpl CourseServiceImpl
StudentController CourseController
坚持把平凡的事情做好就是不平凡(情商)
立功心切
idea
员工 主管 经理 副总 老总
IT公司 能力
宫斗剧(甄嬛传)
职场
===================作业===================
下载 firefox 火狐浏览器,google chrome谷歌浏览器
bean
Student
Course (id,name,credit,description)
dao
StudentDao
findAll
findById(long id)
执行sql
pstmt.executeQuery()
void deleteById(long id)
执行sql
int num = pstmt.executeUpdate()
void update(Student student)
void save(Student student)
CourseDao
....
代码习惯
1. bug认定
如果你能准确描述出问题所在,那么这个问题就解决一半了!
Caused By:完整类名:问题原因
2. eclipse中不要打开过多的选项卡
3. 编写代码的时候养成一个习惯,只要停手就按ctrl+s
4. 格式化代码(良好的缩进)
ctrl+a -> 右击 -> source -> format