java mybatis框架配置详解

 更新时间:2021年02月01日 14:36:40   投稿:laozhang  
在本篇文章里小编给大家整理的是一篇关于java mybatis框架配置详解内容,对此有兴趣的朋友们可以参考下。

一个框架的使用,必然离不开其中的组件支持。我们在下载完mybatis框架后,因为大部分的内部结构还没有启动,就要手动的对其进行配置。在之前有提到,mybatis框架的作用就有数据库方面的,所以本篇文章带来了数据库和sql方面的配置方法,大家一起往下面看看具体操作。

1.配置数据库

创建mybatis的配置文件,配置数据库的信息。数据库我们可以配置多个,但是默认的只能用一个。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 加载类路径下的属性文件 -->
<properties resource="db.properties"/>
<!-- 设置一个默认的连接环境信息 -->
<environments default="mysql_developer">
<!-- 连接环境信息,取一个任意唯一的名字 -->
<environment id="mysql_developer">
<!-- mybatis使用jdbc事务管理方式 -->
<transactionManager type="jdbc"/>
<!-- mybatis使用连接池方式来获取连接 -->
<dataSource type="pooled">
<!-- 配置与数据库交互的4个必要属性 -->
<property name="driver" value="${mysql.driver}"/>
<property name="url" value="${mysql.url}"/>
<property name="username" value="${mysql.username}"/>
<property name="password" value="${mysql.password}"/>
</dataSource>
</environment>
<!-- 连接环境信息,取一个任意唯一的名字 -->
<environment id="oracle_developer">
<!-- mybatis使用jdbc事务管理方式 -->
<transactionManager type="jdbc"/>
<!-- mybatis使用连接池方式来获取连接 -->
<dataSource type="pooled">
<!-- 配置与数据库交互的4个必要属性 -->
<property name="driver" value="${oracle.driver}"/>
<property name="url" value="${oracle.url}"/>
<property name="username" value="${oracle.username}"/>
<property name="password" value="${oracle.password}"/>
</dataSource>
</environment>
</environments>
</configuration>

2.配置SqlSessionFactory

MyBatis 的SqlSessionFactory 接口除了使用基于 XML 的配置创建外也可以通过 Java API 编程式地被创建。每个在 XML 中配置的元素,都可以编程式的创建。

使用 Java API 创建 SqlSessionFactory,代码如下:

public static SqlSessionFactory getSqlSessionFactoryUsingJavaAPI() {
  if (javaSqlSessionFactory == null) {
    try {
      DataSource dataSource = DataSourceFactory.getDataSource();
      TransactionFactory transactionFactory = new JdbcTransactionFactory();
      Environment environment = new Environment("development", transactionFactory, dataSource);
      Configuration configuration = new Configuration(environment);
      configuration.getTypeAliasRegistry().registerAlias("student", Student.class);
      configuration.getTypeHandlerRegistry().register(PhoneTypeHandler.class);
      configuration.addMapper(StudentMapper.class);
      javaSqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);
    } catch (Exception e) {
      throw new RuntimeException(e);
    }
  }
  return javaSqlSessionFactory;
}

这个配置里,加载了一个映射类。映射类是包含了 SQL 映射注解的 Java类,可以用来取代 XML。然而 ,由于 Java 注解的一些限制和 MyBatis 映射的复杂性,一些高级的映射还是要用 XML 来配置,比如嵌套映射等。由于这个原因,MyBatis 会自动查找和加载已经存在的 XML。

内容扩展:

Mybatis参数的设置

数据库进行添加操作需要注意的问题
​ ①.主键自增:在建立数据库表的时候可以设置主键自增

​ ②.主键不自增:可以自己手动设置

<insert id="save" parameterType="Book" keyColumn="id" keyProperty="id" useGeneratedKeys="true">
    insert into jpa_book (author,createTime,name,price,sales,stock) values (#{author},#{createTime},#{name},#{price},#{sales},#{stock});
  </insert>

keyColumn=“id” 指定数据库表主键字段

​ keyProperty=“id” 设置数据库表对应实体类的属性名

​ useGeneratedKeys=“true” 开启主键自增

​ ③.主键不支持自增:例如Oracle数据库就不支持自增

<selectKey keyProperty="id" resultType="int" keyColumn="id"  order="BEFORE"> 
        select LAST_INSERT_ID <!--或者使用 select UUID()生成-->
      </selectKey>

order=“BEFORE” 表示先生成主键再进行自增

​ select LAST_INSERT_ID 或者使用 select UUID() 通过函数生成主键值

到此这篇关于java mybatis框架配置详解的文章就介绍到这了,更多相关java mybatis框架的配置内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java 实现反射 json动态转实体类--fastjson

    java 实现反射 json动态转实体类--fastjson

    这篇文章主要介绍了java 实现反射 json动态转实体类--fastjson,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • Java如何简单快速入门JWT(token生成与验证)

    Java如何简单快速入门JWT(token生成与验证)

    这篇文章主要给大家介绍了关于Java如何简单快速入门JWT(token生成与验证)的相关资料,JWT是一个加密的字符串,JWT传输的信息经过了数字签名,因此传输的信息可以被验证和信任,需要的朋友可以参考下
    2023-12-12
  • SpringBoot this调用@Bean效果详解

    SpringBoot this调用@Bean效果详解

    这篇文章主要介绍了在一个@Bean方法内,this调用同一个类的@Bean方法会有什么效果,我们可以通过bean的名称、bean的类型或者bean的名称+类型来获取容器中的bean
    2023-02-02
  • 关于使用MyBatis简化JDBC开发和解决SQL语句警告的问题

    关于使用MyBatis简化JDBC开发和解决SQL语句警告的问题

    这篇文章主要介绍了关于使用MyBatis简化JDBC开发和解决SQL语句警告的问题,如果idea和数据库没有建立链接,idea不识别表的信息,就会出现SQL语句的警告,需要的朋友可以参考下
    2023-05-05
  • JAVA通过Filter实现允许服务跨域请求的方法

    JAVA通过Filter实现允许服务跨域请求的方法

    这里的域指的是这样的一个概念:我们认为若协议 + 域名 + 端口号均相同,那么就是同域即我们常说的浏览器请求的同源策略。这篇文章主要介绍了JAVA通过Filter实现允许服务跨域请求,需要的朋友可以参考下
    2018-11-11
  • Java实现的Excel列号数字与字母互相转换功能

    Java实现的Excel列号数字与字母互相转换功能

    这篇文章主要介绍了Java实现的Excel列号数字与字母互相转换功能,涉及java针对Excel相关数值与字符串操作技巧,需要的朋友可以参考下
    2018-03-03
  • Mybatis-Plus查询中如何排除标识字段

    Mybatis-Plus查询中如何排除标识字段

    这篇文章主要介绍了Mybatis-Plus查询中排除标识字段的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • eclipse连接不到genymotion问题的解决方案

    eclipse连接不到genymotion问题的解决方案

    今天小编就为大家分享一篇关于eclipse连接不到genymotion问题的解决方案,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • java使用swing绘制国际象棋棋盘

    java使用swing绘制国际象棋棋盘

    这篇文章主要为大家详细介绍了java使用swing绘制国际象棋棋盘,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05
  • Java内部类持有外部类导致内存泄露的原因与解决方案详解

    Java内部类持有外部类导致内存泄露的原因与解决方案详解

    这篇文章主要为大家详细介绍了Java因为内部类持有外部类导致内存泄露的原因以及其解决方案,文中的示例代码讲解详细,希望对大家有所帮助
    2022-11-11

最新评论