Spring MVC

WebRootConfig Class

@Configuration@EnableTransactionManagement@PropertySource("classpath:application.properties")
public class WebRootConfig {

    @Autowired    private Environment env;


    @Bean    public LocalContainerEntityManagerFactoryBean entityManagerFactory(DataSource ds, JpaVendorAdapter jpaVendorAdapter){
        LocalContainerEntityManagerFactoryBean emfb = new LocalContainerEntityManagerFactoryBean();        emfb.setDataSource(ds);        emfb.setJpaVendorAdapter(jpaVendorAdapter);        emfb.setPackagesToScan("lk.ijse.hotelbackend.entity");        return emfb;    }

    @Bean    public DataSource dataSource(){
        DriverManagerDataSource ds = new DriverManagerDataSource();        ds.setDriverClassName(env.getRequiredProperty("javax.persistence.jdbc.driver"));        ds.setUrl(env.getRequiredProperty("javax.persistence.jdbc.url"));        ds.setUsername(env.getRequiredProperty("javax.persistence.jdbc.user"));        ds.setPassword(env.getRequiredProperty("javax.persistence.jdbc.password"));        return ds;    }

    @Bean    public JpaVendorAdapter jpaVendorAdapter(){
        HibernateJpaVendorAdapter jpa = new HibernateJpaVendorAdapter();        jpa.setDatabase(Database.MYSQL);        jpa.setDatabasePlatform(env.getRequiredProperty("hibernate.dialect"));        jpa.setGenerateDdl(true);        jpa.setShowSql(true);        return jpa;    }

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

}

WebAppInitializer Class


public class WebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {
    @Override    protected Class<?>[] getRootConfigClasses() {
        return new Class[]{WebAppConfig.class};    }

    @Override    protected Class<?>[] getServletConfigClasses() {
        return new Class[]{WebAppConfig.class};    }

    @Override    protected String[] getServletMappings() {
        return new String[]{"/"};    }
}


WebAppConfig class


@Configuration@EnableWebMvc@ComponentScan("lk.ijse.hotelbackend")
@EnableJpaRepositories(basePackageClasses = {RoomRepository.class,        FacilitiesRepository.class,        RoomFacilitiesRepository.class,        UserRepository.class})

public class WebAppConfig implements WebMvcConfigurer {
    @Override    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
        System.out.println("Connected");       configurer.enable();    }
}

Entity Class

@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "orderID",referencedColumnName = "orderID",insertable = false,updatable = false)
private Orders orders;
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "itemCode",referencedColumnName = "itemCode",insertable = false,updatable = false)
private Item item;

Controller Class

@RestController@CrossOrigin@RequestMapping("/api/v1/login")


@PostMapping(value = "/{save}", consumes = MediaType.APPLICATION_JSON_VALUE,            produces = MediaType.APPLICATION_JSON_VALUE)
    public boolean saveUser(@RequestBody UserDTO user){
//        System.out.println(user.getUsername()+"  sdsadsa");       return userService.saveUser(user);    }
    @GetMapping(value = "/{id}",produces = MediaType.APPLICATION_JSON_VALUE)
    public UserDTO findUser(@PathVariable("id") String id){
        // System.out.println("Id is  :  "+id);        return userService.findUserService(id);    }


Application.properties

hibernate.dialect=org.hibernate.dialect.MySQL57Dialectjavax.persistence.jdbc.driver=com.mysql.jdbc.Driverjavax.persistence.jdbc.url=jdbc:mysql://localhost:3306/xxx?createDatabaseIfNotExist=truejavax.persistence.jdbc.user=rootjavax.persistence.jdbc.password=

Query 

@Query("SELECT count(i.code) FROM Items i")
long getTotalItems();
@Modifying(clearAutomatically = true)
@Query("update Items set qty_on_hand=:qty_on_hand where code=:code")
void UpdateItem(@Param("qty_on_hand") double qty_on_hand,@Param("code") String code);

POM.xml Spring MVC

<packaging>war</packaging>
<properties>    <maven.compiler.source>1.8</maven.compiler.source>    <maven.compiler.target>1.8</maven.compiler.target>    <spring-version>5.0.8.RELEASE</spring-version></properties>
<dependencies>    <dependency>        <groupId>javax</groupId>        <artifactId>javaee-web-api</artifactId>        <version>8.0</version>        <scope>provided</scope>    </dependency>            <dependency>        <groupId>org.springframework</groupId>        <artifactId>spring-context</artifactId>        <version>${spring-version}</version>    </dependency>
    <dependency>        <groupId>org.springframework</groupId>        <artifactId>spring-webmvc</artifactId>        <version>${spring-version}</version>    </dependency>
    <dependency>        <groupId>mysql</groupId>        <artifactId>mysql-connector-java</artifactId>        <version>8.0.12</version>    </dependency>
    <dependency>        <groupId>org.springframework</groupId>        <artifactId>spring-orm</artifactId>        <version>${spring-version}</version>    </dependency>
    <dependency>        <groupId>org.springframework.data</groupId>        <artifactId>spring-data-jpa</artifactId>        <version>2.0.9.RELEASE</version>    </dependency>
    <dependency>        <groupId>org.hibernate</groupId>        <artifactId>hibernate-agroal</artifactId>        <version>5.3.5.Final</version>        <type>pom</type>    </dependency>
    <dependency>        <groupId>com.fasterxml.jackson.core</groupId>        <artifactId>jackson-databind</artifactId>        <version>2.9.6</version>    </dependency>
</dependencies>


POM.xml Spring Boot

<packaging>war</packaging>

<parent>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-parent</artifactId>    <version>2.0.4.RELEASE</version></parent>
<properties>    <maven.compiler.source>1.8</maven.compiler.source>    <maven.compiler.target>1.8</maven.compiler.target>    <spring-version>5.0.7.RELEASE</spring-version></properties>
<dependencies>    <dependency>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-web</artifactId>    </dependency>
    <dependency>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-data-jpa</artifactId>    </dependency>
    <dependency>        <groupId>mysql</groupId>        <artifactId>mysql-connector-java</artifactId>        <version>5.1.46</version>    </dependency>    <dependency>        <groupId>org.hibernate</groupId>        <artifactId>hibernate-agroal</artifactId>        <version>5.3.1.Final</version>        <type>pom</type>    </dependency>    </dependencies>

Comments