spring-data-jpa入门案列

资料

中文文档 https://www.jianshu.com/p/b3da0c8a22fe

jpa注解

@Entity                                  --声明为一个实体类bean      
@Table (name= "promotion_info" )         --为实体bean映射指定表(表名="promotion_info)      
@Id                                      --声明了该实体bean的主键   
@GeneratedValue                          --可以定义主键的生成策略.      
@Transient                               --将忽略这些字段和属性,不持久化到数据库      
@Column (name= "promotion_remark" )      --声明列(字段名= "promotion_total" ) 属性还包括(length= 200 等)      
@Temporal (TemporalType.TIMESTAMP)       --声明时间格式      
@Enumerated                              --声明枚举      
@Version                                 --声明添加对乐观锁定的支持      
@OneToOne                                --可以建立实体bean之间的一对一的关联      
@OneToMany(mappedBy = "oneId")          --可以建立实体bean之间的一对多的关联      
@ManyToOne                               --可以建立实体bean之间的多对一的关联      
@ManyToMany                              --可以建立实体bean之间的多对多的关联      
@Formula                                 --一个SQL表达式,这种属性是只读的,不在数据库生成属性(可以使用sum、average、max等)     
@OrderBy                                 --取出的集合排序
@JoinColumn                              --设置对应数据表的列名和引用的数据表的列名 

入门案列

sql准备

DROP TABLE IF EXISTS `t_user`;
CREATE TABLE `t_user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(32) DEFAULT NULL,
  `age` varchar(32) DEFAULT NULL,
  `gender` varchar(32) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

application.properties配置

spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/springboot?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=root

# 如果需要,可以进行自动建表
#spring.jpa.hibernate.ddl-auto=update

# 如果需要,可以执行指定的sql文件进行建表
#spring.datasource.schema=sql/test.sql

# 如果需要,可以显示执行的sql语句
spring.jpa.show-sql=true
# 如果需要,可以格式化sql语句
spring.jpa.properties.hibernate.format_sql=true

pom.xml

pom使用ideal建springboot项目 选 web jpa mysql

代码

package com.yjf.bean;

import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = "t_user")
public class User {
    @Id
    private int id;
    private String name;
    private int age;
    private String gender;

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                ", gender='" + gender + '\'' +
                '}';
    }
}
import com.yjf.bean.User;
import org.springframework.data.jpa.repository.JpaRepository;

import java.util.List;

public interface UserDao extends JpaRepository<User, Integer> {
        List<User> findAll();
}
package com.yjf;

import com.yjf.bean.User;
import com.yjf.dao.UserDao;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

import java.util.List;

@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests {
    @Autowired
    private UserDao userDao;

    @Test
    public void contextLoads() {
        List<User> res = userDao.findAll();
        res.stream().forEach(System.out::println);
    }

}
2019-09-11 15:23:08.557  INFO 2832 --- [           main] o.h.h.i.QueryTranslatorFactoryInitiator  : HHH000397: Using ASTQueryTranslatorFactory
Hibernate: 
    select
        user0_.id as id1_0_,
        user0_.age as age2_0_,
        user0_.gender as gender3_0_,
        user0_.name as name4_0_ 
    from
        t_user user0_
User{id=7, name='briup', age=20, gender='MAN'}
User{id=8, name='woodcool1', age=21, gender='MAN'}
User{id=9, name='woodcool2', age=22, gender='MAN'}

转载于:https://www.cnblogs.com/sm1128/p/11506534.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值