yaml基本语法:
- 大小写敏感
- 使用缩进表示层级关系
- 缩进时不允许使用Tab键,只允许使用空格。
- 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可
项目一直不能启动的原因
1.controller包要放在启动类目录下,才能扫描到。
2.yaml文件写错了
3.配置错误
很有可能是pom.xml的版本号报红的原因
折腾了一天原来是端口占用的问题,改成8081就好了
查看占用的端口
netstat -nao|findstr 8080
SpringBoot的主要优点
- 为所有Spring开发者更快的入门
- 开箱即用,提供各种默认配置来简化项目配置
- 内嵌式容器简化Web项目
- 没有冗余代码生成和XML配置的要求
artifactID一般是项目名或模块名
groupID,第一段为域,第二段为公司名称
比如自己新建的项目:com.wey.TestJava
目录结构:
然后运行启动类就可以了
注意每次运行前要重启springboot
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(
excludeFilters = {@Filter(
type = FilterType.CUSTOM,
classes = {TypeExcludeFilter.class}
), @Filter(
type = FilterType.CUSTOM,
classes = {AutoConfigurationExcludeFilter.class}
)}
)
public @interface SpringBootApplication {
// ......
}
@ComponentScan
这个注解在Spring中很重要 ,它对应XML配置中的元素。
作用:自动扫描并加载符合条件的组件或者bean , 将这个bean定义加载到IOC容器中
@SpringBootConfiguration
作用:SpringBoot的配置类 ,标注在某个类上 , 表示这是一个SpringBoot的配置类;
我们继续进去这个注解查看
// 点进去得到下面的 @Component@Configurationpublic @interface SpringBootConfiguration {}
@Componentpublic @interface Configuration {}
这里的 @Configuration,说明这是一个配置类 ,配置类就是对应Spring的xml 配置文件;
里面的 @Component 这就说明,启动类本身也是Spring中的一个组件而已,负责启动应用!
我们回到 SpringBootApplication 注解中继续看。
run方法流程分析
要解决的问题:
- 导入静态资源
- 首页
- jsp,模板引擎Thymeleaf
- 装配扩展SpringMVC
- 增删改查
- 拦截器
- 国际化
总结:
- 在spring boot,我们可以使用以下方式处理静态资源
- webjars localhost:8080/webjars/
- public,static,/**,resouces localhost:8080/
- 优先级:resouces>static>public
- 导入thymeleaf 模板引擎
- 自动配置原理
- Web开发静态资源处理
show databases; -- 显示数据库 show tables; -- 显示数据库表 use databases【表名】-- 使用数据库 create table 【if not exists】 genius; drop table if exists genius; desc tables; -- 显示表的结构
alter table teacher rename as teacher1; -- 修改表 alter table teacher1 add age int(11); -- 增加表的字段 altertable teacher modify age varchar(11); -- 修改约束 alter table teacher1 change age age1 int(1) --字段重命名 alter table teacher1 drop age1 -- 删除表的字段 drop table if exists teacher1 -- 删除表【谨慎操作】
关于数据库引擎
| MYISAM | INNODNB | |
|---|---|---|
| 事务支持 | 不支持 | 支持 |
| 数据行锁定 | 不支持 | 支持 |
| 外键约束 | 不支持 | 支持 |
| 全文索引 | 支持 | 不支持 |
| 表空间的大小 | 较小 | 较大,约为2倍 |
常规使用操作:
- MYISAM 节约空间,速度较快
- INNODNB 安全性高,事务的处理,多表多用户操作
在启动项目时,要注意
直接点浏览器标志
其他一般的Spring boot就在启动类里启动
mybatis复习把src删除
导入依赖
mysql mysql-connector-java 5.1.46 org.mybatis mybatis 3.5.2 junit junit 4.12
mybatis-config.xml
MybatisUils.java
public class MybatisUils {
private static SqlSessionFactory sqlSessionFactory;
static {
try {
//使用Mybatis第一步:获取sqlSessionFactory对象
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
}catch (IOException e){
e.printStackTrace();
}
}
//获取Sqlsession的实例
public static SqlSession getSqlSession(){
return sqlSessionFactory.openSession();
}
}
User.java
package com.genius.pojo;
//实体类
public class User {
private int id;
private String name;
private String pwd;
public User(){
}
public User(int id, String name, String pwd) {
this.id = id;
this.name = name;
this.pwd = pwd;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
}
-
Dao接口
public interface UserDao { ListgetUserList(); } -
接口实现类由原来的UserDaoImpl转变为一个Mapper配置文件
-
UserDaoTest.java
public class UserDaoTest { @Test public void test(){ //第一步:获得SqlSession对象 SqlSession sqlSession = MybatisUils.getSqlSession(); //方式一:getMapper UserDao userDao = sqlSession.getMapper(UserDao.class); ListuserList = userDao.getUserList(); for (User user:userList){ System.out.println(user); } //关闭SqlSession sqlSession.close();; } } 报空指针错误
1.把ssl设置成false(没用)
2.把xml的注释去掉,或者把resource的xml文件的UTF-8改为utf8(没用)
3.把pom.xml的build的过滤改为false或者去掉(没用)
4.配置后记得刷新maven
5.把MybatisUils的19行改成sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); (成功了)但打印的是地址
User实体类中加重写方法
@Override public String toString() { return "User"+"["+"name="+name+" "+"id="+id+" "+"pwd="+pwd+"]"; }6.重启idea(有用)
java.lang.ExceptionInInitializerError
1.版本问题
2.pom.xml添加build
3.把mybatis-config.xml的中文去掉
目录结构
查询
UserDaoTest.java
@Test
public void test(){
SqlSession sqlSession = MybatisUils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
List userList = mapper.getUserList();
for (User user : userList){
System.out.println(user);
}
sqlSession.close();
}
UserMapper接口
public interface UserMapper {
List getUserList();
User getUserById(int id);
int addUser(User user);
}
UserMapper.xml
insert into user(id,name,pwd)values(#{id},#{name},#{pwd})
Mybatis-config.xml
User.java(实体类)
package com.genius.pojo;
public class User {
private int id; //id
private String name; //姓名
private String pwd; //密码
//构造,有参,无参
//set/get
//toString()
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + ''' +
", pwd='" + pwd + ''' +
'}';
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
}
CRUD
增加
int addUser(User user);
public void testAddUser(){
SqlSession sqlSession = MybatisUils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
mapper.addUser(new User(4,"我","2234"));
sqlSession.commit();//记得提交事务
sqlSession.close();
}
insert into user(id,name,pwd)values(#{id},#{name},#{pwd})
删除
@Test
public void deleteUser(){
SqlSession sqlSession = MybatisUils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
mapper.deleteUser(4);
sqlSession.commit();
sqlSession.close();
}
int deleteUser(int id);
delete from mybatis.user where id = #{id};
更新
update mybatis.user set name=#{name},pwd=#{pwd} where id = #{id};
int updateUser(User user);
@Test
public void updateUser(){
SqlSession sqlSession = MybatisUils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
mapper.updateUser(new User(4,"我","423423"));
sqlSession.commit();
sqlSession.close();
}
查询(根据id查找姓名)
@Test
public void getUserById() {
SqlSession sqlSession = MybatisUils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
User user = mapper.getUserById(1);
System.out.println(user);
sqlSession.close();
}
User getUserById(int id);
可能错的地方
空指针错误是没有注册到资源,在pom.xml添加build
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9kagHLn9-1636175036448)(C:UsersGeniusAppDataRoamingTyporatypora-user-imagesimage-20211106114705389.png)]
User实体类里没有写构造方法和toString方法(会出现地址)
Git复习
linux常用命令
将项目通过git导入gitee可参考:
https://blog.csdn.net/linxinfa/article/details/108709835?utm_source=app&app_version=4.17.2&code=app_1562916241&ulinkId=usr1mkqgl919blen
git init #把当前目录变成git可以管理的仓库 git add readme.txt #添加一个文件,也可以添加文件夹 git add -A #添加全部文件 git rm test.txt #删除一个文件,也可以删除文件夹 git commit -a -m "some commit" #提交修改 git status #查看是否还有未提交 git log #查看最近日志 git reset --hard HEAD^ #版本回退一个版本 git reset --hard HEAD^^ #版本回退两个版本 git reset --hard HEAD~100 #版本回退多个版本 git remote add origin +地址 #远程仓库的提交(第一次链接) git push -u origin master #仓库关联 git push #远程仓库的提交(第二次及之后)
将gitee项目克隆到本地(IDEA)可参考:
https://blog.csdn.net/Woo_dy/article/details/115699567?utm_source=app&app_version=4.17.2&code=app_1562916241&ulinkId=usr1mkqgl919blen
Vue复习第一个vue程序!
Title
{{message}}
顺序不能错了,script要放在div下面,引入的vue.js要放在最前面



