hibernate框架对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,它可以帮我们自动生成数据表,减少建库建表的工作。
自动生成sql语句的方法非常简单,首先新建一个maven项目,然后导入写好的实体类。
比如user
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
| package com.zhongruan.po;
import javax.persistence.*; import java.util.ArrayList; import java.util.Date; import java.util.List;
@Entity @Table(name = "t_user") public class User {
@Id @GeneratedValue private Long id; private String nickname; private String username; private String password; private String email; private String avatar; private Integer type; @Temporal(TemporalType.TIMESTAMP) private Date createTime; @Temporal(TemporalType.TIMESTAMP) private Date updateTime;
@OneToMany(mappedBy = "user") private List<Blog> blogs = new ArrayList<>();
public User() { }
public Long getId() { return id; }
public void setId(Long id) { this.id = id; }
public String getNickname() { return nickname; }
public void setNickname(String nickname) { this.nickname = nickname; }
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; }
public String getEmail() { return email; }
public void setEmail(String email) { this.email = email; }
public String getAvatar() { return avatar; }
public void setAvatar(String avatar) { this.avatar = avatar; }
public Integer getType() { return type; }
public void setType(Integer type) { this.type = type; }
public Date getCreateTime() { return createTime; }
public void setCreateTime(Date createTime) { this.createTime = createTime; }
public Date getUpdateTime() { return updateTime; }
public void setUpdateTime(Date updateTime) { this.updateTime = updateTime; }
public List<Blog> getBlogs() { return blogs; }
public void setBlogs(List<Blog> blogs) { this.blogs = blogs; }
@Override public String toString() { return "User{" + "id=" + id + ", nickname='" + nickname + '\'' + ", username='" + username + '\'' + ", password='" + password + '\'' + ", email='" + email + '\'' + ", avatar='" + avatar + '\'' + ", type=" + type + ", createTime=" + createTime + ", updateTime=" + updateTime + '}'; } }
|
接下里在yml文件中配置端口,数据库连接(注意要提前建好数据库),比如我这里是生成在一个叫springboot的数据库中,最后设置jpa。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| server: port: 8081 spring: datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql: username: root password: 123456 thymeleaf: mode: HTML
jpa: hibernate: ddl-auto: update show-sql: true
|
然后运行application就行
正常启动的话会看到控制台输出了很多sql语句

然后查看我们的数据库中是否已经生成了表

成功。
PhD Student @ Hong Kong Polytechnic University