Home >Java >javaTutorial >Configuring Spring with JPA and Microsoft SQL Server

Configuring Spring with JPA and Microsoft SQL Server

PHPz
PHPzOriginal
2024-07-17 08:17:251010browse

Configurando o Spring com JPA e Microsoft SQL Server

Setting up the database in a Java development environment can be a challenging task, especially when it comes to choosing the right driver and properly configuring dependencies. Here, I will share how to set up a Spring MVC environment using JPA and SQL Server.

Step 1: Adding Dependencies

The first step is to add the necessary dependencies to your pom.xml file.

<dependencies>
    <!-- Dependência do MSSQL -->
    <dependency>
        <groupId>com.microsoft.sqlserver</groupId>
        <artifactId>mssql-jdbc</artifactId>
        <version>7.2.2.jre8</version>
    </dependency>

    <!-- Dependência do Spring Data JPA -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>

    <!-- Dependência do Spring Boot Starter Web -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

Step 2: Configuring JPA

Now let's create the JPA configuration class. I will use the nomenclature JPAConfiguration.java.

package br.com.meuprojeto.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.orm.jpa.JpaTransactionManager;
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter;
import org.springframework.transaction.annotation.EnableTransactionManagement;

import javax.persistence.EntityManagerFactory;
import javax.sql.DataSource;
import java.util.Properties;

@Configuration
@EnableTransactionManagement
public class JPAConfiguration {

    @Bean
    public LocalContainerEntityManagerFactoryBean entityManagerFactory(DataSource dataSource, Properties additionalProperties) {
        LocalContainerEntityManagerFactoryBean factoryBean = new LocalContainerEntityManagerFactoryBean();
        HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
        factoryBean.setJpaVendorAdapter(vendorAdapter);
        factoryBean.setPackagesToScan("br.com.meuprojeto.loja.models");
        factoryBean.setDataSource(dataSource);
        factoryBean.setJpaProperties(additionalProperties);
        return factoryBean;
    }

    @Bean
    @Profile("dev")
    public Properties additionalProperties() {
        Properties properties = new Properties();
        properties.setProperty("hibernate.dialect", "org.hibernate.dialect.SQLServerDialect");
        properties.setProperty("hibernate.show_sql", "true");
        properties.setProperty("hibernate.hbm2ddl.auto", "create");
        properties.setProperty("javax.persistence.schema-generation.scripts.create-target", "db-schema.jpa.ddl");
        return properties;
    }

    @Bean
    @Profile("dev")
    public DriverManagerDataSource dataSource() {
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setUsername("sa");
        dataSource.setPassword(""); // Adicione sua senha aqui
        dataSource.setUrl("jdbc:sqlserver://127.0.0.1;databaseName=MeuProjeto;");
        dataSource.setDriverClassName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        return dataSource;
    }

    @Bean
    public JpaTransactionManager transactionManager(EntityManagerFactory emf) {
        return new JpaTransactionManager(emf);
    }
}

Configuration Highlights

  1. EntityManagerFactory Bean: Configures the EntityManagerFactory with the Hibernate adapter and defines the package where the JPA entities are located.
  2. Additional Properties: Hibernate-specific settings such as SQL dialect, SQL display in console, and database schema generation.
  3. DataSource Bean: Configures the connection to the database, including URL, user, password and driver.
  4. TransactionManager Bean: Manages JPA transactions.

Final Considerations

When configuring the database for a development environment, it is essential to ensure that the driver and SQL Server versions are compatible. In the example above, driver version 7.2.2.jre8 was used successfully with the latest versions of SQL Server Developer and Express.

This configuration should provide a solid foundation to start developing Spring MVC applications with JPA using SQL Server. Experiment and adapt as needed to meet your specific needs.

The above is the detailed content of Configuring Spring with JPA and Microsoft SQL Server. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn