axios
http的请求方式
方法 | 描述 |
get | 请求指定的页面信息,并返回实体主体 |
post | 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。post请求可能会导致新的资源的建立和已有资源的修改。 |
put | 从客户端向服务器传送的数据取代指定的文档内容 |
delete | 请求服务器删除指定内容 |
head | 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头 |
options | 允许客户端查看服务器的性能 |
trace | 回显服务器收到的请求,主要用于测试或者诊断 |
connect | 预留给能够连接改为管道方式的代理服务器 |
请求方式一共有八种,比较重要的只有四种:get、post、put、delete。
方法 | 描述 |
get | 查看 |
post | 创建 |
put | 更新 |
delete | 删除 |
会话跟踪技术
在浏览器中所有的连接都是短链接,如果在网站中有登录的操作,那么服务器就很难根据不同的用户展示不同的数据,因为服务器无法识别每一个用户。使用会话跟踪技术可以做到让服务器识别每一个用户。
Cookie
cookie相当于给每一个用户发送了一个身份证,在拥有身份证以后每一个用户在访问服务器获取相应的数据时都携带上自己的身份证以便服务器进行识别。
MyBatis
SqlSession
SqlSession 是 MyBatis 中执行 SQL 命令的主要接口之一。
作用和职责:
- 数据库会话管理:SqlSession 提供了操作数据库的方法,负责与数据库进行交互。
- SQL 执行:通过 SqlSession 可以执行 SQL 语句(包括查询、插入、更新、删除等)。
- 事务管理:SqlSession 可以管理事务的提交、回滚和关闭。
获取 SqlSession 对象:
在使用 MyBatis 进行数据库操作时,首先需要通过 SqlSessionFactory 获取 SqlSession 对象。
SqlSessionFactory 是一个工厂类,负责创建 SqlSession 对象。通常情况下,一个应用程序只会创建一个 SqlSessionFactory 实例。
SqlSession 方法:
- selectOne(String statement, Object parameter):执行查询操作,返回单个对象。
- selectList(String statement, Object parameter):执行查询操作,返回多个对象的列表。
- insert(String statement, Object parameter):执行插入操作。
- update(String statement, Object parameter):执行更新操作。
- delete(String statement, Object parameter):执行删除操作。
- commit():提交事务。
- rollback():回滚事务。
- close():关闭 SqlSession 实例。
生命周期管理:
SqlSession 对象是线程不安全的,因此它的最佳实践是在每个请求或线程中创建一个新的 SqlSession 实例,并在执行完数据库操作后关闭它,以确保资源的正确释放和避免潜在的资源泄漏问题。
事务支持:
MyBatis 的 SqlSession 提供了事务管理的能力,可以通过 commit() 和 rollback() 方法来提交或回滚事务。如果未手动调用 commit() 方法,事务将不会被提交。
异常处理:
在使用 SqlSession 执行 SQL 操作时,可能会抛出 PersistenceException 或其他与数据库操作相关的异常。应用程序需要适当地处理这些异常,例如进行回滚操作或者向上层抛出异常以进行更高级别的处理。
使用SqlSession利用反射执行数据库操作
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
这段代码的主要作用是根据 mybatis-config.xml
文件的配置,通过 SqlSessionFactoryBuilder
创建一个 SqlSessionFactory
实例。SqlSessionFactory
对象一旦创建成功,就可以根据需要创建 SqlSession
对象,从而执行数据库操作。
SqlSession sqlSession=sqlSessionFactory.openSession();
UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
这两行代码的作用是在已经建立了数据库连接(通过 SqlSessionFactory
)的基础上,创建一个 SqlSession
实例,并从该实例中获取一个 UserMapper
的代理对象。通过这个 UserMapper
对象,可以调用预定义的方法来执行具体的数据库操作。
userMapper.updatePassword(user);
sqlSession.commit();
调用方法和提交事务(如果调用的方法需要对数据库进行改变就要提交方法)。
sqlSession.close();
关闭sqlSession
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession=sqlSessionFactory.openSession();
UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
userMapper.updatePassword(user);
sqlSession.commit();
sqlSession.close();