mybatis中如何实现批量插入
时间: 2023-08-05 11:38:45 浏览: 176
4, &log_length, log);
LOGE("Failed to link program: %s", log);
abort();
}
glUseProgram(program);
glUniform1i(glGetUniformLocation(program, "texture"), 0);
// 创建 OpenGL ES 纹理
glGenMyBatis中可以使用批量操作来提高数据插入的效率,下面介绍一下如何实现Textures(1, &texture_id);
glBindTexture(GL_TEXTURE_EXTERNAL_OES, texture_id);
glTexParameterf(GL_TEXTURE_EXTERNAL_O批量插入。
1. 使用foreach标签
MyBatis中可以使用foreach标签来遍历一个集合,对ES, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameterf(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
集合中的每个元素执行SQL语句。可以将需要插入的数据封装到一个List或者数组中 glTexParameterf(GL_TEXTURE_EXTERNAL_OES, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
glTexParameterf(GL_TEXTURE_EXTERNAL_O,然后使用foreach标签遍历集合,对每个元素执行插入操作。例如:
```xml
<insertES, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
// 创建 ANativeWindow 的 EGLDisplay、EGLSurface 和 EGLContext
id="batchInsert" parameterType="java.util.List">
insert into user (id, name, age) values
<foreach collection display = eglGetDisplay(EGL_DEFAULT_DISPLAY);
eglInitialize(display, 0, 0);
EGLint config_attributes="list" item="item" separator=",">
(#{item.id}, #{item.name}, #{item.age})
</foreach>
</[] = {
EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
EGL_NONE
};
EGLint config_count;
EGLConfig config;
eglChooseConfig(display, config_attributes, &config, 1,insert>
```
在Java代码中,可以将需要插入的数据封装到一个List中,然后调用batchInsert &config_count);
int format;
ANativeWindow_setBuffersGeometry(window, 0, 0, format);
surface = e方法即可:
```java
List<User> userList = new ArrayList<>();
// ... 封装需要插入的数据到userList中
glCreateWindowSurface(display, config, window, NULL);
EGLint context_attributes[] = {
EGL_CONTEXT_CLIENT_VERSION, 2SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH);
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
try {
,
EGL_NONE
};
context = eglCreateContext(display, config, EGL_NO_CONTEXT, context_attributes);
egl for (User user : userList) {
userMapper.insert(user);
}
sqlSession.commit();
} catch (Exception e) {
MakeCurrent(display, surface, surface, context);
}
// 渲染 YUV 数据
void render_yuv_data() {
// 绑定 sqlSession.rollback();
} finally {
sqlSession.close();
}
```
2. 使用batch批量操作
MyBatis提供了batch批 OpenGL ES 纹理和 SurfaceTexture
glBindTexture(GL_TEXTURE_EXTERNAL_OES, texture_id);
glTexImage2D(GL_TEXTURE_EXTERNAL量操作的方法,可以将多条SQL语句一起提交到数据库执行,从而提高效率。例如:
```_OES, 0, GL_RGBA, texture_width, texture_height, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
glViewport(0, 0, texture_width, texture_height);
glClearColor(0.0f, 0.0f, java
List<User> userList = new ArrayList<>();
// ... 封装需要插入的数据到userList中
SqlSession sqlSession = sql0.0f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT);
glUseProgram(program);
GLfloat vertices[] =SessionFactory.openSession(ExecutorType.BATCH);
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
try {
for (User user : {
-1.0f, -1.0f,
1.0f, -1.0f,
- userList) {
userMapper.insert(user);
}
sqlSession.flushStatements();
sqlSession.commit();
} catch (Exception e) {
sqlSession1.0f, 1.0f,
1.0f, 1.0f,
};
GLfloat tex.rollback();
} finally {
sqlSession.close();
}
```
使用batch批量操作时,需要在执行完所有插入操作后调coords[] = {
0.0f, 1.0f,
1.0f, 1.0f用flushStatements方法,将所有批量操作提交到数据库执行,然后再执行commit操作。注意,如果要使用batch批,
0.0f, 0.0f,
1.0f, 0.0f,
};
量操作,需要在MyBatis的配置文件中配置批量操作的相关参数。
阅读全文