spring_web入门
1.创建spring 工程(idea中,点击spring initializr)
勾选web中的Spring Web
2.删除多余的杂项后,在给的Java包下创建一个新的包controller,再创建一个类HelloController,
注意添加2个注解,@RestController和@RequestMapping("/自己设置网址名")
@RestController
public class HelloController {
@RequestMapping("/hello")
public String Hello(){
System.out.println("hello world~~");
return "hello world~~";
}
}
再在启动类点击运行
就能通过在浏览器搜索
localhost:8080/hello
进入网站
Http学习
超文本传输协议,规定了浏览器和服务器之间数据传输的规则
http请求数据格式
请求行:
请求数据的第一行(包含请求方式,资源路径,协议)
GET /brand HTTP/1.1
请求头:
第二行开始,格式是 key: value
请求体:
POST请求,存放请求参数
HTTP响应格式
响应行:
响应数据第一行(协议,状态码,描述)
响应头:
第二行开始,格式与请求格式类似,Key : value
响应体:
最后一部分,存放响应数据
在服务器端如何解析http数据并且给服务端响应数据
Tomcat
访问bin目录下的,startup.bat文件
关闭tomcat
ctrl +c
Tomcat部署项目:
将项目放置到webapps目录下即可
DispatcherServlet(前端控制器)
前端浏览器发出的请求都会先经DispatcherServlet解析后封装在一个对象(HttpServletRequest,请求对象),再由DispatcherServlet
转给后面的XxxController控制类,由控制类对请求进行处理,处理完之后将处理后的结果返回给
DispatcherServlet,最后
DispatcherServlet给浏览器响应(HttpServletResponse)
请求对象:获取请求数据
响应对象:设置响应数据
B/S架构 ,浏览器/服务器架构模式,应用程序的逻辑和数据都存储在服务端
Ajax
概念:
异步的JavaScript和XML
Xml是用来存储数据的
作用:
1.数据交换:
通过Ajax可以给服务器发送请求,并获取服务器响应的数据
2.异步交互:
可以在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页的技术。
JavaScript
跨平台,面向对象的脚本语言,是用来控制网页行为的,它能使网页可交互
一,JavaScript引入方式
1.内部脚本
<script></script>
一般把脚本放在body标签的底部,能改善显示速度
2.外部脚本
就是通过编写JS文件,再在script的src属性中引用该JS文件即可
如:
JS文件:
alert("积分恐怕是的");
html文件:
<body>
<script src="Js.js"></script>
</body>
运行后页面会弹窗
JSON——基础语法
定义:
var 变量名 = '{"key1":value,"key2":value2}';
JSON字符串转换成JS对象
var jsObject = JSON.parse(user);
其中user是JSON对象
jsObject是JS对象
JS对象转化成JSON字符串
var jsonStr = JSON.stringify(jsobject);
一.创建springboot工程,引入Mybatis相关依赖
勾选maven,jdk选11
依赖勾选Mybatis Framework和Mybatis Driver
二.配置Mybatis
在配置文件中写以下代码
#?????
spring.datasource.dHiver-class-name=com.mysql.cj.jdbc.Driver
#??????url
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis
#?????????
spring.datasource.username=root
#????????
spring.datasource.password=1234
三.写接口
在测试类同目录下写个接口UserMapper,
添加2个注解,@Mapper将接口转化成对象,使得我们能用接口里面的方法,
@Select是执行SQL语句的
@Mapper
public interface UserMapper {
@Select("select * from user")
public List<User> list();
}
最后,在测试类中,定义接口,注解自动装配
@Autowired
private UserMapper userMapper;
IDEA中连接数据库
1.选择代码中的sql语句,点击小灯泡,点击语言注入,选择MYSQL
2.点击右侧数据库,添加数据库,输入账号密码,数据库名即可
将线程池更改为更强大的druid步骤
1.在xml文件中添加druid的依赖
<!-- druid线程池依赖 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.8</version>
</dependency>
2.修改properties配置文件
添加如下语句
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
3.刷新maven(至关重要)
使用lombok注解简化实体类代码
1.添加依赖
<!-- lombok库,实体类set,get,tostring,equalAndHashCode注解 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
2.刷新maven
3.在实体类上方添加注解
@Data
@NoArgsConstructor
@AllArgsConstructor
即可拥有javabeen所有方法
写项目时
1.创建新的springboot工程,选择起步依赖mybatis,lombok,mysql驱动
2.配置文件中引入数据库连接信息,更改druid连接池
数据库删除操作(接口,注解,mybatis)
1.在UserMapper接口中编写删除方法
@Delete("delete from user where id = #{id}")
public void delete(int id);
其中,#{id}是占位符,表示会按照形参 id的值来删除对应行
数据库添加操作
1.在UserMapper接口中编写添加方法
@Insert("insert into user(account,email,sex,birthday,sign,nickname)"+
"values(#{account},#{email},#{sex},#{birthday},#{sign},#{nickname})")
public void insert(User user);
注意#{}中的值是属性而不是数据库中的字段名
如果要返回主键
添加注解: @Options(keyProperty = "id",useGeneratedKeys = true)即可
id指的是user属性中的id
然后返回的主键值就会存放在user的id中
#{}中的值是属性,如果属性名与字段名一致,mybatis就会自动对应好,
如果不一致,就需要在配置文件中加上
mybatis.configuration.map-underscore-to-camel-case=true
mybatis - xml映射文件
1.在main包下的resources添加xml文件
步骤:
右键resources -> 新建 -> 目录 -> 根据要映射的接口的引用路径来设置包名,如接口所在地址为
com.nsy.mybatis.mapper
那么目录就这样命名:
com/nsy/mybatis/mapper
再右击该目录,新建一个命名为与接口同名,后缀为xml的文件,如UserMapper.xml
将以下配置复制进xml文件
<?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">
打出<mapper>
将其namespace属性设置成接口的引用路径
在mapper体里面就能添加各种sql语句,格式为
<select id ="" resultType = ""></select>
注意 id与接口中的使用该sql语句的方法名一致
resultType如果是实体类,就打出实体类的引用路径
举例:
<select id="getList" resultType="com.nsy.mybatis.pojo.User">
select * from user
</select>
No verified remote account of 洛谷