这几天的杂学

SpringBoot学习

yaml基本语法:

  • 大小写敏感
  • 使用缩进表示层级关系
  • 缩进时不允许使用Tab键,只允许使用空格。
  • 缩进的空格数目不重要,只要相同层级的元素左侧对齐即可

项目一直不能启动的原因

1.controller包要放在启动类目录下,才能扫描到。

2.yaml文件写错了

3.配置错误

很有可能是pom.xml的版本号报红的原因

在这里插入图片描述

折腾了一天原来是端口占用的问题,改成8081就好了

在这里插入图片描述

查看占用的端口

netstat -nao|findstr 8080

SpringBoot的主要优点

  • 为所有Spring开发者更快的入门
  • 开箱即用,提供各种默认配置来简化项目配置
  • 内嵌式容器简化Web项目
  • 没有冗余代码生成和XML配置的要求

第一个Spring Boot程序!

在这里插入图片描述
在这里插入图片描述

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
  • 增删改查
  • 拦截器
  • 国际化

静态资源

总结:

  1. 在spring boot,我们可以使用以下方式处理静态资源
    • webjars localhost:8080/webjars/
    • public,static,/**,resouces localhost:8080/
  2. 优先级:resouces>static>public

首页如何定制

  • 导入thymeleaf 模板引擎
  • 自动配置原理
  • Web开发静态资源处理

Mysql基础知识复习

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 -- 删除表【谨慎操作】

关于数据库引擎

MYISAMINNODNB
事务支持不支持支持
数据行锁定不支持支持
外键约束不支持支持
全文索引支持不支持
表空间的大小较小较大,约为2倍

常规使用操作:

  • MYISAM 节约空间,速度较快
  • INNODNB 安全性高,事务的处理,多表多用户操作

在启动项目时,要注意

在这里插入图片描述
直接点浏览器标志
在这里插入图片描述

其他一般的Spring boot就在启动类里启动

在这里插入图片描述

在这里插入图片描述

mybatis复习

在这里插入图片描述

把src删除

在这里插入图片描述

导入依赖
在这里插入图片描述

    <dependencies>
<!--导入依赖-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.46</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.2</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
    </dependencies>

mybatis-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org/DTD Config 3.0//EN "
        "http://mybatis.org/dtd/mybatis-3-config.dtd" >

<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF8"/>
                <property name="username" value="root"/>
                <property name="password" value="123456" />
            </dataSource>
     </environment>
    </environments>

    <mappers>
        <mapper resource="UserMapper.xml/"/>
    </mappers>
</configuration>

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 {
        List<User> getUserList();
    }
    
  • 接口实现类由原来的UserDaoImpl转变为一个Mapper配置文件

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper
            PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <!--namespace=绑定一个对应的Dao/Mapper接口-->
    <mapper namespace="com.genius.dao.UserDao">
    <!--select查询语句-->
        <select id="getUserList" resultType="com.genius.pojo.User">
            select * from mybatis.user
        </select>
    </mapper>
    
  • UserDaoTest.java

    public class UserDaoTest {
        @Test
        public  void  test(){
            //第一步:获得SqlSession对象
            SqlSession sqlSession = MybatisUils.getSqlSession();
    
            //方式一:getMapper
            UserDao userDao = sqlSession.getMapper(UserDao.class);
            List<User> userList = 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的中文去掉

目录结构

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RnP0rsYP-1636175036447)(C:\Users\Genius\AppData\Roaming\Typora\typora-user-images\image-20211106111325070.png)]

查询

UserDaoTest.java

    @Test
            public void test(){
        SqlSession sqlSession = MybatisUils.getSqlSession();

        UserMapper mapper = sqlSession.getMapper(UserMapper.class);
        List<User> userList = mapper.getUserList();

        for (User user : userList){
            System.out.println(user);
        }
     sqlSession.close();
    }

UserMapper接口

public interface UserMapper {

    List<User> getUserList();
    User getUserById(int id);
    int addUser(User user);
}

UserMapper.xml

</select>
    <insert id="addUser" parameterType="com.genius.pojo.User">
        insert into user(id,name,pwd)values(#{id},#{name},#{pwd})
    </insert>

Mybatis-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org/DTD Config 3.0//EN "
        "http://mybatis.org/dtd/mybatis-3-config.dtd" >

<configuration>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&amp;useUnicode=true&amp;characterEncoding=UTF-8"/>
                <property name="username" value="root"/>
                <property name="password" value="123456" />
            </dataSource>
     </environment>
    </environments>
    <mappers>
        <mapper resource="com/genius/dao/UserMapper.xml"/>
    </mappers>
</configuration>

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 id="addUser" parameterType="com.genius.pojo.User">
        insert into user(id,name,pwd)values(#{id},#{name},#{pwd})
    </insert>

删除

 @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 id="deleteUser" parameterType="int">
        delete from mybatis.user where id = #{id};
    </delete>

更新

<update id="updateUser" parameterType="com.genius.pojo.User">
        update mybatis.user set name=#{name},pwd=#{pwd} where id = #{id};
    </update>
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);
<select id="getUserById" parameterType="int" resultType="com.genius.pojo.User">
    select * from mybatis.user where id = #{id}
</select>

可能错的地方

空指针错误是没有注册到资源,在pom.xml添加build

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9kagHLn9-1636175036448)(C:\Users\Genius\AppData\Roaming\Typora\typora-user-images\image-20211106114705389.png)]

<mapper resource="com/genius/dao/UserMapper.xml"/>

User实体类里没有写构造方法和toString方法(会出现地址)

<mapper namespace="com.genius.dao.UserMapper">

Git复习

linux常用命令

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BDf8OUXA-1636175036449)(C:\Users\Genius\AppData\Roaming\Typora\typora-user-images\image-20211026132843378.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mqJ0qeBO-1636175036450)(C:\Users\Genius\AppData\Roaming\Typora\typora-user-images\image-20211026140808042.png)]

将项目通过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程序!
在这里插入图片描述

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
        "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!--<script src="https://cdn.jsdeliver.net/npm/vue/vue@2.5.21/dist/vue.min.js"></script>-->


<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>

</head>
<body>
<div id="app">
    {{message}}
<!--    <span v-bind:title="message">-->
<!--        鼠标悬停几秒钟查看此处结果-->
<!--    </span>-->
</div>
<script>
    var  vm = new Vue({
        el:"#app",//要注意前面有个#号
        data:{
            message:"hello"
        }
    });
</script>

</body>
</html>

顺序不能错了,script要放在div下面,引入的vue.js要放在最前面

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值