flutter获取分享内容,flutter发送请求
第十六章:Flutter数据存储 1、Flutter本地存储可以用 shared_preferences ,其会根据不同操作系统进行相对应的存储。2、我们还是以计数器为例,实现在应用退出重启后可以恢复点击次数。3、配合实现图片缓存, ImageProvider 从数据源加载完数据后,会在 Image...
2024-09-12 围观 : 0次
## MyBatis框架:原理与详细介绍
MyBatis 是一个开源的 Java 持久层框架,它专注于 SQL 语句的映射工作,提供方便的 API 来支持增删改查操作,并完美支持存储过程等复杂操作。本篇文章将详细介绍 MyBatis 的基本原理和使用方法。
### MyBatis 的原理
MyBatis 是一个多层结构的框架,从上到下依次为接口层、核心层、数据处理层和持久层。具体来说:
1. **接口层**:用户实现对数据的增删改查操作,主要使用 SqlSession 对象和 Mapper 接口。
2. **核心层**:负责处理用户的请求和SQL语句的映射工作,包括配置加载、 SQL执行器和缓存管理等。
3. **数据处理层**: 负责处理参数映射、结果映射和动态 SQL 解析等工作。
4. **持久层**:通过 JDBC 的接口来实现与数据库的交互。
在 MyBatis 中,我们可以使用 XML 文件或注解的方式来进行 SQL 的映射。当 MyBatis 被调用时,它会根据用户提供的参数来查找对应的 SQL 映射。然后,MyBatis 会将这些 SQL 语句编译成 PreparedStatement 对象,并根据实际的参数来填充这些对象。最后,将得到的结果转换成对应的 Java 对象返回。
### MyBatis 的使用
接下来,我们将介绍如何使用 MyBatis 进行增删改查操作。
#### 1.创建 Maven 项目
首先,创建一个 Maven 项目,并在 pom.xml 文件中添加 MyBatis 的依赖。
```xml
mybatis
mysql-connector-java
```
#### 2.配置数据库连接
接下来,我们需要创建一个 `mybatis-config.xml` 文件,用于配置数据库连接信息。
```xml
```
#### 3.创建实体类和接口
创建一个实体类 `User` 和 `UserMapper` 接口,用于表示数据表中的记录和操作。
```java
// User.java
public class User {
private int id;
private String name;
private String password;
// getter 和 setter
}
// UserMapper.java
public interface UserMapper {
List
User getById(int id);
int insert(User user);
int update(User user);
int delete(int id);
}
```
#### 4.编写映射文件
接下来,我们需要编写 `UserMapper.xml` 文件,用于配置 SQL 映射。
```xml
id, name, password
SELECT
FROM user
SELECT
FROM user
WHERE id = #{id}
INSERT INTO user (name, password) VALUES (#{name}, #{password})
UPDATE user SET name = #{name}, password = #{password} WHERE id = #{id}
DELETE FROM user WHERE id = #{id}
```
#### 5.注册映射文件和测试
在 `mybatis-config.xml` 文件的 `
```xml
```
编写测试类,进行 CRUD 操作。
```java
public class MybatisTest {
private static SqlSessionFactory sqlSessionFactory;
@BeforeClass
public static void setUp() throws IOException {
String resource = "mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
}
@Test
public void testCRUD() {
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
// 插入数据
User user = new User();
user.setName("Tom");
user.setPassword("password");
userMapper.insert(user);
sqlSession.commit();
// 查询数据
List
System.out.println("查询所有用户:" + users);
user = userMapper.getById(1);
System.out.println("查询id为1的
第十六章:Flutter数据存储 1、Flutter本地存储可以用 shared_preferences ,其会根据不同操作系统进行相对应的存储。2、我们还是以计数器为例,实现在应用退出重启后可以恢复点击次数。3、配合实现图片缓存, ImageProvider 从数据源加载完数据后,会在 Image...
App是移动应用程序的简称,可以运行在移动设备如智能手机、平板电脑等便携式电子设备上。随着移动互联网的兴起,App已经成为了人们生活中不可缺少的一部分。如今,App的开发已经变得越来越重要,下面将介绍App开发的技术知识。一、App的开发技术App的开发技术包括前端技术和后台技术,其中前端技术负责实...
随着移动互联网的快速发展,各种APP应用已经成为人们生活中不可或缺的一部分。而对于企业来说,如果能够推出适合自己的APP应用,不仅可以满足用户需求,还可以提高品牌知名度和销售额。因此,越来越多的企业开始考虑定制开发APP应用。那么,开发一款定制APP的费用到底需要多少呢?下面我将详细介绍。1. 定制...
在Visual C++(VC++)中进行编程的过程中,源代码会被编译、链接和生成一个可执行文件,通常是一个EXE文件。下面我们详细了解一下这个过程的原理和步骤。1. 编写源代码:首先,程序员需要使用C++语言编写源代码。源代码是包含程序逻辑、变量、函数和其他编程元素的文本文件。通常...
AutoJS 是一款用于在 Android 环境下运行 JavaScript 的工具,它基于 Rhino 引擎和 Android API,可以直接调用 Android 系统的接口和功能,从而实现 Android 应用程序的自动化测试和脚本编写等功能,而不需要使用 Android 开发者工具或者 Ja...