怎么创建springBoot +springDataJpa项目,并且在项目中中创建关联主键的表,并映射到数据库中

这篇博客详细介绍了如何利用Spring Boot和Spring Data JPA创建一个包含联合主键的数据库表。首先通过STS新建Spring Boot项目,接着添加必要的依赖如JPA、jdbc和c3p0。然后配置application.properties文件,设置数据库连接信息。在model包下创建Photo和TruckAndPhoto类,使用@EmbeddedId和@Embeddable注解定义联合主键。完成这些步骤后,数据库表就会自动创建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先,博主是用spring boot suit(sts)编译器写的项目,虽然有些老,毕竟现在用idea的人很多,不过sts也有其优势,就是spring的资源都是现成的。好了,话不多说,看步骤:

1.创建spring boot 项目

File - > New ->Spring Starter Project

标红的地方可以改一下,因为是spring boot项目,所以改了之后如下:

 

2.然后就得到spring boot 项目,看目录如下:

3.然后打开pom.xml文件,这个是maven的配置文件,也就是写jar包依赖的地方:

3.1加入几个关键的依赖如下:

<!-- 引入jpa依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.mchange/c3p0 -->
           <dependency>
               <groupId>com.mchange</groupId>
               <artifactId>c3p0</artifactId>
               <version>0.9.5.2</version>
           </dependency>
        <!-- web依赖     web项目运行所所赖的组件,如tomcat、SpringMVC等-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-entitymanager</artifactId>
    <version>5.3.7.Final</version>
</dependency>
  
        <dependency>  
            <groupId>commons-collections</groupId>  
            <artifactId>commons-collections</artifactId>  
            <version>3.2.2</version>  
        </dependency>
        <dependency>  
            <groupId>commons-lang</groupId>  
            <artifactId>commons-lang</artifactId>  
            <version>2.6</version>  
        </dependency>  
        <dependency>  
            <groupId>commons-logging</groupId>  
            <artifactId>commons-logging</artifactId>  
            <version>1.2</version>  
        </dependency>  
         <dependency>  
            <groupId>commons-beanutils</groupId>  
            <artifactId>commons-beanutils</artifactId>  
            <version>1.9.3</version>  
        </dependency>  

3.2这些依赖代码全放在 <dependencies> </dependencies>  标签中间,然后   右键单击项目名字-> 找到Maven ->Update  Project ->然后选择事项,看图:

红色箭头指到的,要打上钩,但是方框里面的不需要打,除非你是因为导入的包除了问题,不然它会重新去仓库中下载一遍,浪费时间。  然后点OK就行了 ,要等一些时间。

 

 

4.创建并配置application.properties文件,如下:

4.1路径

4.2配置文件代码(直接将代码复制到自己项目的application.properties中然后保存,数据库的配置自己按照自己的数据库情况来配置,这里用的是mysql数据库):


#数据库地址
spring.datasource.url = jdbc:mysql://localhost:3306/transportationProject?serverTimezone=GMT%2B8
#用户名
spring.datasource.username = root
#密码
spring.datasource.password = 19960505
#数据库驱动
spring.datasource.driverClassName = com.mysql.cj.jdbc.Driver
#指定连接池中最大连接数
spring.datasource.max-active=20
#指定连接池中最大空闲数
spring.datasource.max-idle=10
#指定必须连接的最小值
spring.datasource.min-idle=8
#指定启动连接池时,初始建立的连接数量
spring.datasource.initial-size=10

# 指定数据库类型
spring.jpa.database = MYSQL
# 指定是否需要在日志中显示sql语句
spring.jpa.show-sql = true
# 指定自动创建|更新|验证数据库表结构等配置,配置成update
# 表示如果数据库中存在持久化类对应的表就不创建,不存在的表就创建对应的表
spring.jpa.hibernate.ddl-auto = update
# Naming strategy
# 指定命名策略
spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy
# 指定如下方言: 创建的表类型是Innodb,才可以进行对事物的回滚。
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
server.port=8888

5.创建包,如下(基本的一般是这样)

这里先创建com.transportation.model 包就可以啦(其他的不用也行),其他的后序的文章会讲。com.transportation是项目创建好了就有的。

然后在com.transportation.model 包下面创建两个类

  

创建这两个class 文件,然后这里解释一下,就是Photo是存放产品相片的类,TruckAndPhoto等等再说,在数据库中,我们想要的是   Photo表中的photo_id 和 truck_id 两个字段共同决定photo_adress,然后这两个为联合主键。上代码:

 

Photo类:

@SuppressWarnings("serial")
@Entity
@Table(name = "Photo")
public class Photo implements Serializable{
    @EmbeddedId
    private TruckAndPhoto photo_id;
    @Column(name="photo_address")
    private String photo_address;

    public TruckAndPhoto getPhoto_id() {
        return photo_id;
    }
    public void setPhoto_id(TruckAndPhoto photo_id) {
        this.photo_id = photo_id;
    }
    public String getPhoto_address() {
        return photo_address;
    }
    public void setPhoto_address(String photo_address) {
        this.photo_address = photo_address;
    }
    @Override
    public String toString() {
        return "Photo [photo_id=" + photo_id + ", photo_address=" + photo_address + "]";
    }
}

 

TruckAndPhoto类:


@Embeddable
@SuppressWarnings("serial")
public class TruckAndPhoto implements Serializable{
    private int photo_id;
    private int truck_id;
    public TruckAndPhoto() {
        super();
    }
    public TruckAndPhoto(int photo_id, int truck_id) {
        super();
        this.photo_id = photo_id;
        this.truck_id = truck_id;
    }
    public int getPhoto_id() {
        return photo_id;
    }
    public void setPhoto_id(int photo_id) {
        this.photo_id = photo_id;
    }
    public int getTruck_id() {
        return truck_id;
    }
    public void setTruck_id(int truck_id) {
        this.truck_id = truck_id;
    }
}

创建好后,打开数据库,然后可以开始运行啦。

 

到这里,就成功创建好了表啦!  

本文原创,装载请附上博主小名,谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

无人交流的问题

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

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

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

打赏作者

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

抵扣说明:

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

余额充值