java mybatis框架配置详解

作者:laozhang 时间:2023-11-25 08:09:16 

一个框架的使用,必然离不开其中的组件支持。我们在下载完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() 通过函数生成主键值

来源:https://www.py.cn/java/jiaocheng/23495.html

标签:java,mybatis,框架配置
0
投稿

猜你喜欢

  • android编程之xml文件读取和写入方法

    2022-08-23 05:47:48
  • Java入门绊脚石之Override和Overload的区别详解

    2022-05-04 15:24:51
  • 如何通过SpringBoot实现商城秒杀系统

    2023-11-24 23:02:33
  • Java hashCode原理以及与equals()区别联系详解

    2023-03-04 15:37:56
  • Mybatis 复杂对象resultMap的使用

    2023-10-12 22:56:44
  • C#中通过Command模式实现Redo/Undo方案

    2021-07-12 14:58:59
  • Android实现点汇聚成字的动态效果详解

    2023-10-08 08:50:26
  • Android之侧滑菜单DrawerLayout的使用介绍

    2023-02-02 23:43:33
  • Spring Security如何实现升级密码加密方式详解

    2023-09-02 08:47:31
  • C#设置与获取环境变量的方法详解

    2021-09-03 20:55:29
  • SpringBoot中的PUT和Delete请求使用

    2022-01-22 19:33:32
  • java用类加载器的5种方式读取.properties文件

    2022-05-06 14:55:19
  • java之swing下拉菜单实现方法

    2023-07-12 04:55:30
  • c#动态调用Webservice的两种方法实例

    2021-09-19 20:12:05
  • Android 获取手机信息实例详解

    2021-08-21 00:22:34
  • java如何对map进行排序详解(map集合的使用)

    2022-12-22 18:26:13
  • BootStrap mvcpager分页样式(get请求,刷新页面)

    2023-09-19 04:18:29
  • java使用influxDB数据库的详细代码

    2023-03-04 05:22:27
  • Java模板动态生成word文件的方法步骤

    2023-01-08 15:19:58
  • 浅析Android中build.gradle的实用技巧

    2022-05-03 15:15:40
  • asp之家 软件编程 m.aspxhome.com