为什么用mybatis不能向数据库里面插入数据

为什么用mybatis不能向数据库里面插入数据,第1张

mybatis不能向数据里面插入数据原因可能是执行了插入动作,但是没有最终commit到数据库服务器导致。

mybatis插入数据的例子如下:

package commybatisdemo;

import javaioReader;

public class Test {

private static SqlSessionFactory sqlSessionFactory;

private static Reader reader;

static{

try{

reader = ResourcesgetResourceAsReader("Configurationxml");

sqlSessionFactory = new SqlSessionFactoryBuilder()build(reader);

}catch(Exception e){

eprintStackTrace();

}

}

public static SqlSessionFactory getSession(){

return sqlSessionFactory;

}

//添加用户

public void addUser(){

User user = new User();

usersetId(4);

usersetUserAddress("人民广场");

usersetUserName("Birds");

usersetUserAge("102");

SqlSession session = sqlSessionFactoryopenSession();

try{

IUserOperation userOperation = sessiongetMapper(IUserOperationclass);

sessioncommit();

Systemoutprintln("当前增加的用户id为:"+usergetId());

}

finally{

sessionclose();

}

}

public static void main(String[] args) {

Test testUser = new Test();

testUseraddUser();

}

}

当执行到 testUseraddUser();后执行到sessioncommit();数据就会插入表。

一、mybatis的工作原理:

MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。

MyBatis使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Ordinary Java Objects,普通的 Java对象)映射成数据库中的记录。

每个MyBatis应用程序主要都是使用SqlSessionFactory实例的,一个SqlSessionFactory实例可以通过SqlSessionFactoryBuilder获得。用xml文件构建SqlSessionFactory实例是非常简单的事情。

推荐在这个配置中使用类路径资源,但可以使用任何Reader实例,包括用文件路径或file://开头的url创建的实例。MyBatis有一个实用类----Resources,它有很多方法,可以方便地从类路径及其它位置加载资源。

二、使用mybatis的原因:因为mybatis具有许多的优点,具体如下:

1、简单易学:本身就很小且简单。没有任何第三方依赖,最简单安装只要两个jar文件+配置几个sql映射文件易于学习,易于使用,通过文档和源代码,可以比较完全的掌握它的设计思路和实现。

2、灵活:mybatis不会对应用程序或者数据库的现有设计强加任何影响。 sql写在xml里,便于统一管理和优化。通过sql语句可以满足 *** 作数据库的所有需求。

3、解除sql与程序代码的耦合:通过提供DAO层,将业务逻辑和数据访问逻辑分离,使系统的设计更清晰,更易维护,更易单元测试。sql和代码的分离,提高了可维护性。

4、提供映射标签,支持对象与数据库的orm字段关系映射。

5、提供对象关系映射标签,支持对象关系组建维护。

6、提供xml标签,支持编写动态sql。

扩展资料:

mybatis的功能构架:

1、API接口层:提供给外部使用的接口API,开发人员通过这些本地API来 *** 纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。

2、数据处理层:负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等。它主要的目的是根据调用的请求完成一次数据库 *** 作。

3、基础支撑层:负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理,这些都是共用的东西,将他们抽取出来作为最基础的组件。为上层的数据处理层提供最基础的支撑。

参考资料来源:百度百科-MyBatis

参考资料来源:百度百科-MyBatis从入门到精通

Java mysql mybatis批量更新数据库,采用以下写法即可执行,但是数据库连接必须配置:&allowMultiQueries=true

1

2

3

4

5

6

7

8

9

10

11

12

例如:jdbc:mysql://1921681236:3306/testuseUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true

<update id="batchUpdate" parameterType="javautilList">

<foreach collection="list" item="item" index="index" open="" close="" separator=";">

update test

<set>

test=${itemtest}+1

</set>

where id = ${itemid}

</foreach>

</update>

MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录

不验证用户名密码的登录方式可以在JDBC串里实现,但也要依托某种验证方式,例如下面这个使用k8s验证的连接串的写法:

jdbc:sqlserver://;servername=server_name;integratedSecurity=true;authenticationScheme=JavaKerberos

把配置文件里原有的dataSource里面的url改了

<property name="url" value="jdbc:sqlserver://;servername=server_name;integratedSecurity=true;authenticationScheme=JavaKerberos"/>

以上就是关于为什么用mybatis不能向数据库里面插入数据全部的内容,包括:为什么用mybatis不能向数据库里面插入数据、mybatis工作原理及为什么要用、mysql怎么批量删除 mybatis怎么写等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10097541.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存