从JDBC到SpringBoot

后端到数据库

JDBC

JDBC
JDBC:专门用来完成 java程序 和 数据库 的连接的技术.
步骤:
1.注册驱动。这个驱动是软件厂家与数据库公司约定好的交互协议
2.用数据库链接和账号密码获得连接对象
3.用连接对象获取传输器
4.用传输器中的方法实现SQL
5.处理结果
6.关流

public static void main(String[] args) throws Exception {
        //1,注册驱动
        Class.forName("com.mysql.jdbc.Driver");//全路径
        //2,获取数据库的连接(用户名/密码)
        //jdbc连接mysql数据库的协议//本机:端口号/数据库的名字
        String url="jdbc:mysql://localhost:3306/cgb2108" ;
        Connection c = DriverManager.getConnection(
                url,"root","root");
        //3,获取传输器
        Statement s = c.createStatement();
        //4,执行SQL,并返回结果集
        String sql="select * from dept" ;//查询dept表的所有数据
        ResultSet r = s.executeQuery(sql);//executeQuery执行查询的SQL,executeUpdate执行增删改查的SQL
        //5,处理数据库返回的结果
        while(r.next()){//next()判断resultset中有数据吗
            //getXxx()获取resultset中的数据
            int a = r.getInt(1);//获取第1列的 整数值
            String b = r.getString(2);//获取第2列的 字符串值
            String c1 = r.getString(3);//获取第3列的 字符串值
            System.out.println(a+b+c1);
        }
        //6,释放资源
        r.close();//释放结果集
        s.close();//释放传输器
        c.close();//释放连接器
    }

MyBatis

MyBatis
MyBatis:封装了JDBC,简化了操作。封装到sqlSession中
ORM思想:对象关系映射, 以对象的方式操作数据库
XML映射方式:

int rows = sqlSession.update("hello.updateUser",user);

接口映射方式:

EmpMapper mapper = sqlSession.getMapper(EmpMapper.class);
List<Emp> list = mapper.getAll();

步骤:
1.根据核心配置文件获取一个输入流。
【配置文件中记录有连接数据库的方式,链接,账号,密码,映射文件】
2.用输入流获得SqlSession工厂
3.通过SqlSession工厂获得SqlSession
4.用SqlSession获得接口对象。
【这里用到了多态,应该是获取了个接口的继承对象,SqlSession应该是完成了JDBC中的第3,4步】
5.处理结果
6.关流

private SqlSession session ;
	@BeforeEach
	public void init() throws IOException {
		InputStream in = Resources.getResourceAsStream("sqlMapConfig.xml");
		SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
		session = factory.openSession();
//		session = factory.openSession(true);//开启自动提交
	}
	@Test
	public void getAll() {
		EmpMapper mapper = session.getMapper(EmpMapper.class);
		List<Emp> list = mapper.getAll();
		for (Emp e : list) {
			System.out.println(e);
		}
	}

前端到后端

Aaios

是Vue提供的Ajax技术,Ajax技术是实现了网页的局部刷新,异步访问的功能.
使用步骤: 引入vue.js + 引入axios.js

let url1 = "http://localhost:8090/findAll"
axios.get(url1).then(function(promise){console.log(promise)/* 获取服务器返回值数据 */})	
//axios.get(访问资源的url).then( a => { 处理a的方式,a代表了服务器给浏览器返回来的数据 })
let url1 = "http://localhost:8090/findAll"
axios.get(url1).then(a => {this.city=a.data.city;})

解决轮回地狱问题

const {data: result} = await this.$http.post('/item/updateItem', this.updateItemForm)

跨域问题:浏览器解析Ajax时 要求浏览器的网址,与Ajax请求的网址,必须满足三要素.
要素:

  1. 协议相同
  2. 域名相同
  3. 端口号相同
    如果上述的三要素都满足,则叫同域访问, 如果三要素有一项不满足,则称为跨域访问.
    在控制类加@CrossOrigin解决跨域

SpringMVC

SpringMVC
MVC设计模式: 最终实现松耦合
M是Model是模型层,用来封装数据
V是View是视图层,用来展示数据
C是Controller是控制层, 接受浏览器发来的请求,并做出数据的响应
SpringMVC框架用来接受请求 + 做出响应
在这里插入图片描述
涉及五个组件:
1,前端控制器DispatcherServlet: 接受请求,并且调度
2,处理器映射器HandlerMapping: 根据地址栏的写法,找到能处理这次请求的类和方法
3,处理器适配器HandlerAdapter: 真正开始找到方法,执行方法体处理业务,并返回结果
4,视图解析器ViewResolver: 找到能够展示数据的页面
5,视图渲染View: 把数据展示在页面上
在这里插入图片描述
SpringMVC在JAVA中的类
启动类

package cn.tedu.mvc;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication//启动类,用来启动Module
public class RunApp {
    public static void main(String[] args) {
        //利用springboot启动当前类
        SpringApplication.run(RunApp.class);
    }
}

控制类

package cn.tedu.mvc;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RestController;
@RestController//springmvc框架核心:接受请求
@CrossOrigin//解决跨域
public class CarController {
    //规定浏览器用什么规则访问资源
    @RequestMapping("get")
    public String get(){
       return "欢迎~";
    }
}

浏览器发送数据给服务器有八种方式
在这里插入图片描述

SpringBoot框架

SpringBoot

SSM框架案例

SSM是SpringMVC,Spring,Mybatis的简称
框架关系图
在这里插入图片描述

层级代码实现

在这里插入图片描述

  • Mybatis:核心配置文件被整合到application.yml中
  • mapper:对接数据库
    需要在启动类使用@MapperScan交给Spring管理
  • service:业务代码
    使用@Service交给Spring管理
  • controller:接收请求并封装数据
    使用@RestController接收请求并且交给Spring管理
  • pojo:放置封装对象
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值