KEYCLOAK集成MYSQL

KEYCLOAK集成MYSQL

Keycloak中已经嵌入H2数据库,但是为了更方便的查看数据以及后续的Keycloak其他操作,这里我们使用MySQL数据库,如果读者使用过wildfly,对于数据库的配置可以说是再熟悉不过了. 首先要下载对应数据库的驱动,配置的路径为:

${KEYCLOAK_HOME}/modules/system/layers/base/com/mysql/main

这个路径下要求有driver(mysql-connector-java-5.1.42.jar 当然你也可以选择自己的想用的jar包)和一个module.xml文件

module.xml文件内如下:

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.3" name="com.mysql">
    <resources>
        <resource-root path="
mysql-connector-java-5.1.42.jar"/>
    </resources>
    <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
<module name="javax.servlet.api" optional="true"/>
    </dependencies>

</module>

注意:红色字体的部分一定要一致

其次,由于是单机所以需要修改${KEYCLOAK_HOME}/standalone/configuration/standalone.xml 文件 

<subsystem xmlns="urn:jboss:domain:datasources:4.0">
     <datasources>
       ...
       <datasource jta="true" jndi-name="java:jboss/datasources/KeycloakDSMySQL" pool-name="KeycloakDSMySQL" enabled="true" use-ccm="true">
           <connection-url>jdbc:mysql://localhost:3306/KeycloakDS</connection-url>
           <driver-class>com.mysql.jdbc.Driver</driver-class>
           <driver>mysql</driver>
           <security>
               <user-name>username</user-name>
               <password>password</password>
           </security>
           <validation>
               <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
               <background-validation>true</background-validation>
               <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/>
            </validation>
      </datasource>
       <drivers>
          <driver name="h2" module="com.h2database.h2">
              <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
          </driver>
           <driver name="mysql" module="com.mysql">
              <xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>
           </driver>
       </drivers>
     </datasources>


红色字体是本次需求添加的内容

关联Keycloak和数据库

<subsystem xmlns="urn:jboss:domain:keycloak-server:1.1">

    ...
    <spi name="connectionsJpa">
     <provider name="default" enabled="true">
         <properties>
             <property name="dataSource" value="java:jboss/datasources/KeycloakDSMySQL"/>
             <property name="initializeEmpty" value="false"/>
             <property name="migrationStrategy" value="manual"/>
             <property name="migrationExport" value="${jboss.home.dir}/keycloak-database-update.sql"/>
         </properties>
     </provider>
    </spi>
    ...
</subsystem>
注意: dataSource的value值和上面的jndi-name的值保持一致. 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用JPA集成MySQL,您需要执行以下步骤: 1. 添加MySQL驱动程序依赖项:在您的项目中添加MySQL连接器/驱动程序的Maven依赖项,或者将其添加到您的类路径中。 2. 配置数据源:在您的应用程序中配置MySQL数据源,以便JPA可以与它交互。您可以使用Java代码或XML文件来配置数据源。 3. 创建实体类:创建一个Java类来表示数据库中的表,该类应该带有@Entity注释。 4. 创建仓库接口:创建一个接口来表示与实体类交互的仓库。该接口应该扩展JpaRepository或其它JPA仓库接口。 5. 使用EntityManager:使用EntityManager实例来执行JPA操作,例如插入、更新和删除数据。 下面是一个简单的示例,演示如何使用JPA集成MySQL: 1. 添加MySQL驱动程序依赖项: ```xml <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.26</version> </dependency> ``` 2. 配置数据源: ```java @Configuration public class DataSourceConfig { @Bean public DataSource dataSource() { DriverManagerDataSource dataSource = new DriverManagerDataSource(); dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver"); dataSource.setUrl("jdbc:mysql://localhost:3306/mydatabase"); dataSource.setUsername("myuser"); dataSource.setPassword("mypassword"); return dataSource; } } ``` 3. 创建实体类: ```java @Entity @Table(name = "users") public class User { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; private Integer age; // getters and setters } ``` 4. 创建仓库接口: ```java public interface UserRepository extends JpaRepository<User, Long> { } ``` 5. 使用EntityManager: ```java @Service public class UserService { @Autowired private UserRepository userRepository; public void saveUser(User user) { userRepository.save(user); } public List<User> getAllUsers() { return userRepository.findAll(); } } ``` 这样,您就可以使用JPA集成MySQL来执行数据库操作了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值