国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > 幫助中心 > 正文

Mybatis如何自動生成數(shù)據(jù)庫表結(jié)構總結(jié)

2024-07-09 22:41:06
字體:
供稿:網(wǎng)友

一般情況下,用Mybatis的時候是先設計表結(jié)構再進行實體類以及映射文件編寫的,特別是用代碼生成器的時候。

但有時候不想用代碼生成器,也不想定義表結(jié)構,那怎么辦?

這個時候就會想到Hibernate,然后想到它的hibernate.hbm2ddl.auto配置項。

所以手工創(chuàng)表的問題可以很方便的迅速用Hibernate來解決。 那有人問啦:就是不想用Hibernate才換的Mybatis,你這又兜回去了嗎?

其實不是的,我們需要的就是單單一個hbm2ddl功能。

其實應該這么想:有一款工具能夠自動根據(jù)注解的實體類來生成各種數(shù)據(jù)庫相應的表結(jié)構,只需要加幾個jar包  (經(jīng)測試后只要7個)并且 少量配置(3個配置項)

這款工具就是Hibernate。為什么不能是它呢!!!

原理說來也是超級的簡單:   加入hibernate的包, 注解實體類,程序開始時初始化一下hibernate的SessionFactory并清除它。

示例:

需要的Hibernate相關的JAR包 (本例基于Hibernate5.0.7,僅需要7個):

          hibernate-core-5.0.7.Final.jar

          hibernate-commons-annotations-5.0.1.Final.jar

          hibernate-jpa-2.1-api-1.0.0.Final.jar

          geronimo-jta_1.1_spec-1.1.1.jar

          jboss-logging-3.3.0.Final.jar

          dom4j-1.6.1.jar

          javassist-3.18.1-GA.jar

Hibernate.cfg.xml文件:(去掉多余的,精簡后的內(nèi)容)

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"><hibernate-configuration> <session-factory>  <!--不采用InnoDB方式加快速度 -->  <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>  <!-- 注意update方式時對于屬性的刪減并不會刪除數(shù)據(jù)庫字段 -->  <property name="hibernate.hbm2ddl.auto">update</property>  <!-- 注意注解的話,只能用class一個一個引用。除非與Spring整合才能掃描文件夾路徑 -->  <mapping class="com.sunwii.mybatis.bean.User" /> </session-factory></hibernate-configuration>

注解的實體類:

@Entity@Table(name = "t_user")@Data@NoArgsConstructor@ToStringpublic class User implements Serializable { private static final long serialVersionUID = -4013951528313410972L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "id") private Integer id; @Column(length = 30) private String name; @Column private Float height; @Column private Double salary; @Column private Integer vip; @Column @Temporal(TemporalType.DATE) private Date birthday; @Column @Temporal(TemporalType.TIMESTAMP) private Date lastlogin; @Column @Enumerated(EnumType.STRING) // mybatis 默認會將枚舉轉(zhuǎn)化為字符串類型存儲,此時數(shù)據(jù)庫為varchar型 private State state;  @Column @Enumerated(EnumType.ORDINAL) // 可以為mybatis設置枚舉類型存儲為其索引值存儲,此時數(shù)據(jù)庫為int型 private Level level; @Column(length = 10) @Enumerated(EnumType.ORDINAL) // mybatis 自定義類型轉(zhuǎn)換器將枚舉轉(zhuǎn)化為相應數(shù)字類型存儲,此時數(shù)據(jù)庫為int型 private Sex sex;  @Column @Type(type = "string") // mybatis 自定義類型轉(zhuǎn)換器將列表轉(zhuǎn)化為相應字符串類型存儲,此時數(shù)據(jù)庫為varchar型 private List<String> tels;  public User(int id) {  super();  this.id = id; } public User(int id, String name) {  super();  this.id = id;  this.name = name; } public User(String name) {  super();  this.name = name; }}
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 祥云县| 遵义市| 成安县| 廊坊市| 乐昌市| 象山县| 莆田市| 惠来县| 育儿| 桦甸市| 日喀则市| 丰都县| 星座| 万安县| 阿尔山市| 云林县| 汤阴县| 苍山县| 卓尼县| 郁南县| 普兰店市| 东乡| 绥宁县| 和硕县| 景洪市| 榕江县| 武山县| 白山市| 淳安县| 东丽区| 库尔勒市| 遂平县| 牡丹江市| 深圳市| 新龙县| 湄潭县| 高雄县| 通海县| 三门县| 乐都县| 巴青县|