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
Post a Comment