springboot集成jpa的Demo

创建maven项目并添加依赖

<parent>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-parent</artifactId>
	<version>2.0.3.RELEASE</version>
	<relativePath /> <!-- lookup parent from repository -->
</parent>

<dependencies>
	<dependency>
		<groupId>junit</groupId>
		<artifactId>junit</artifactId>
		<version>3.8.1</version>
		<scope>test</scope>
	</dependency>

	<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>com.microsoft.sqlserver</groupId>
		<artifactId>sqljdbc4</artifactId>
		<version>4.0</version>
	</dependency>

</dependencies>

application.properties配置 我这里用的是SQLserver

spring.datasource.url=jdbc:sqlserver://ip:port;DatabaseName=数据库名
spring.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.datasource.username=sa
spring.datasource.password=123

启动类

@EnableJpaRepositories是扫描dao层

@EntityScan是扫描实体类包

package com.vhukze.App;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;


@SpringBootApplication(scanBasePackages= "com.vhukze.controller")
@EnableJpaRepositories(basePackages="com.vhukze.repository")
@EntityScan("com.vhukze.entity")
public class App 
{
    public static void main( String[] args )
    {
        SpringApplication.run(App.class	, args);
    }
}

实体类

@Entity注解中的name的值是实体类对应的表名,最好是使用下划线命名规范

@Id是主键,@Column是列

注意:这些注解都是反射包中的

package com.vhukze.entity;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;

@Entity(name="user_demo")
public class UserDemo {

	@Id
	@Column
	private String username;
	@Column
	private String password;
	
	public UserDemo() {	}
	
	public UserDemo(String username, String password) {
		super();
		this.username = username;
		this.password = password;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	@Override
	public String toString() {
		return "UserDemo [username=" + username + ", password=" + password + "]";
	}
	
	
}

controller层

@RestController
public class UserController {

	@Autowired
	private UserRepository repository;
	
	@RequestMapping("index")
	public String index() {
		
		repository.save(new UserDemo("刘海柱","2"));
		return "success";
	}
}

dao层 啥也没有 就继承了个接口 

@Repository
public interface UserRepository extends JpaRepository<UserDemo,String>{

}

启动项目访问localhost:8080/index

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
SpringBoot中,集成JPA需要通过配置类来实现。以下是一个示例: ```java @Configuration @EnableJpaRepositories(basePackages = {"com.example.demo.repository"}) //JPA仓库的扫描路径 @EnableTransactionManagement //开启事务管理 public class JpaConfig { @Autowired private DataSource dataSource; @Bean public LocalContainerEntityManagerFactoryBean entityManagerFactory() { LocalContainerEntityManagerFactoryBean em = new LocalContainerEntityManagerFactoryBean(); em.setDataSource(dataSource); em.setPackagesToScan("com.example.demo.entity"); //JPA实体类扫描路径 JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter(); em.setJpaVendorAdapter(vendorAdapter); return em; } @Bean public PlatformTransactionManager transactionManager() { JpaTransactionManager transactionManager = new JpaTransactionManager(); transactionManager.setEntityManagerFactory(entityManagerFactory().getObject()); return transactionManager; } @Bean public PersistenceExceptionTranslationPostProcessor exceptionTranslation() { return new PersistenceExceptionTranslationPostProcessor(); } } ``` 在配置类中,我们首先使用`@EnableJpaRepositories`注解指定JPA仓库的扫描路径,这样Spring容器就能够自动创建JpaRepository实现类的实例。 接着,使用`@EnableTransactionManagement`注解开启事务管理。 然后,我们定义了`entityManagerFactory`方法,用于创建`EntityManagerFactory`实例。在这个方法中,我们设置了数据源和JPA实体类的扫描路径,并使用`HibernateJpaVendorAdapter`作为JPA厂商适配器。 接下来,我们定义了`transactionManager`方法,用于创建`PlatformTransactionManager`实例,并将`EntityManagerFactory`实例设置为其属性。 最后,我们定义了`exceptionTranslation`方法,用于处理JPA产生的异常。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿演

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值