hibernate基於annotation(註解)的方式建立資料庫表以及儲存資料到資料庫表中(重要)
在這裡建立專案後要把相關jar包與資料庫相關的jar包引入,並且配置好hibernate.cfg.xml檔案,這個專案採用的資料庫名稱是hibernate_anno.
再建立一個實體類User,我們用的是註解的方式,所以不用像上篇文章中建立一個實體類的配置檔案,可以直接在實體類中進行註釋,這樣就簡單很多。
<?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> <!-- Database connection settings --> <property name="connection.driver_class">com.mysql.jdbc.Driver</property> <!-- hibernate_anno表示自己建立的資料庫名稱 --> <property name="connection.url">jdbc:mysql://localhost:3306/hibernate_anno?characterEncoding=utf-8</property> <property name="connection.username">root</property> <property name="connection.password">root</property> <!-- JDBC connection pool (use the built-in) --> <property name="connection.pool_size">1</property> <!-- SQL dialect,根據什麼資料庫進行相關的配置, 在D:\Java相關程式\hibernate-release-4.3.11.Final\documentation\devguide\en-US\html_single中的index.html中可以找到,這裡用mysql --> <property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property> <!-- Enable Hibernate's automatic session context management --> <property name="current_session_context_class">thread</property> <!-- Disable the second-level cache --> <property name="cache.provider_class">org.hibernate.cache.internal.NoCacheProvider</property> <!-- Echo all executed SQL to stdout ,true表示能看到自動生成的sql語句是什麼樣子的--> <property name="show_sql">true</property> <!-- true表示將自動生成出來的sql語句自動分行,在sql語句多的時候用處很大,容易看 --> <property name="format_sql">true</property> <!-- Drop and re-create the database schema on startup,update表示在每次啟動web專案時如果表結構有變化則自動更新資料庫, 沒變化則保持現狀,create則是將所有的表重新建立,之前的表結構會刪除掉 --> <property name="hbm2ddl.auto">update</property> <!-- 在用註解的時候用這種 --> <mapping class="com.User"></mapping> </session-factory> </hibernate-configuration>
package com;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity//表示這是一個實體類的註解
public class User {
@Id//設定id為主鍵
//下面這兩個註釋是對於oracle資料庫是的設定,initialValue是初始值,從什麼地方開始,allocationSize是每次遞增多少,按照自己 //實際情況定義,sequenceName="sql_user"表示在oracle資料庫中建立名為sql_user的序列號名稱。所以他會從序列中拿出主鍵放到id中 //但是在實際開發中可以直接只寫上@GeneratedValue,這樣什麼資料庫都支援 @GeneratedValue(strategy=GenerationType.SEQUENCE,generator="seq_user1") @SequenceGenerator(name="seq_user1",initialValue=1,allocationSize=20,sequenceName="seq_user")
@GeneratedValue//表示id主鍵是遞增的 private Long id; @Column(name="user_name")//表示這個屬性在資料庫表中是user_name,不寫這個註解的話就預設username private String userName; private String pwd; private String sex; private Integer age; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getPwd() { return pwd; } public void setPwd(String pwd) { this.pwd = pwd; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } }
注意,此時也要在hibernate.cfg.xml中進行對於註解的配置,使得其獲得註解資訊:
<mapping class="com.User">//class是User的路徑
都配置完後,建立一個CreateTable檔案,使其能夠根據User實體類建立一個表:
package test;
import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;
public class CreateTable {
public static void main(String[] args) {
//讀取配置檔案hibernate.cfg.xml,hibernate.cfg.xml會讀取User.hbm.xml檔案
Configuration cfg=new Configuration().configure();
SchemaExport se=new SchemaExport(cfg);
se.create(true, true);
}
}
這樣就可以建立一個表。
如果想要儲存資料到資料庫表中,則
package test;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistry;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import com.User;
public class TestSave {
public static void main(String[] args) {
//讀取配置檔案hibernate.cfg.xml,hibernate.cfg.xml會讀取User.hbm.xml檔案
Configuration cfg=new Configuration().configure();
//建立一個註冊類
StandardServiceRegistry srb=new StandardServiceRegistryBuilder().applySettings(cfg.getProperties())
.build();
//建立sessionFactory
SessionFactory sessionFactory=cfg.buildSessionFactory(srb);
//建立session,因為session封裝的方法是用來操作物件的,這裡將物件儲存到資料庫中,所以也是操作資料庫的
Session session=sessionFactory.openSession();
//開啟事務
session.beginTransaction();
//儲存資料到資料庫中
User u=new User();
u.setAge(20);
u.setPwd("342");
u.setUserName("張颯");
session.save(u);//將資料儲存到資料庫,這裡hibernate會自動建立sql語句。
//結束事務
session.getTransaction().commit();
//關閉事務
session.close();
}
}
相關推薦
hibernate基於annotation(註解)的方式建立資料庫表以及儲存資料到資料庫表中(重要)
在這裡建立專案後要把相關jar包與資料庫相關的jar包引入,並且配置好hibernate.cfg.xml檔案,這個專案採用的資料庫名稱是hibernate_anno.再建立一個實體類User,我們用的是註解的方式,所以不用像上篇文章中建立一個實體類的配置檔案,可以直接在實體類
【Python3.6爬蟲學習記錄】(十)爬取教務處成績並儲存到Excel檔案中(哈工大)
前言:基本上每天都會產生一點小想法,在實現的過程中,一步步解決問題,併產生新的想法,就比如,這次是儲存為Excel檔案。這感覺很美妙! 目錄: 一,安裝並簡單使用xlwt 1.1 安裝xlwt 1.2 寫入Excel程式碼 1
Spring使用@AspectJ開發AOP(註解的方式)
自定義 The @aspectj tro 織入 color span for 開啟 前言: AOP並不是Spring框架特有的。Spring只是支持AOP編程 (面向切面編程) 的框架之一。 概念: 1、切面(Aspect) 一系列Advice + Pointcut
RabbitMQ 基本使用(註解的方式)
RabbitMQ 可以採用基於註解的方式來建立佇列,如下: 1. 手動在 RabbitMQ 管理介面建立 myQueue佇列 1. 傳送者程式碼: @Autowired
模組(module)方式建立maven工程
1、建立maven工程的父工程,其餘模組要繼承這個模組的,一些公共的jar包引用,都寫在這個父工程的pom.xml檔案中,子模組則都可以使用了 再建一個model(longkunkun-api) 下面是建立longkunkun-server的工程 建完
作業系統(程序間共享儲存區的通訊):建立一個共享儲存區,大小4個位元組(int大小)。建立一個子程序,然後子父程序獨自執行。父程序寫入一個數字到共享儲存區,子程序在共享儲存區把該數字讀出
題目:建立一個共享儲存區,大小4個位元組(int大小)。建立一個子程序,然後子父程序獨自執行。父程序寫入一個數字到共享儲存區,子程序在共享儲存區把該數字讀出。 程式碼量很少,純屬應付作業 筆者在telnet上寫這些程式碼,由於知識技術及英語太菜,不知道怎樣在telnet上覆製出來這些程式碼,
Oracle備份方式主要分三種:資料泵匯出備份(oracle10g開始推出)、熱備份與冷備份
oracle資料泵備份(Expdp命令) Oracle備份方式主要分為資料泵匯出備份、熱備份與冷備份三種,今天首先來實踐一下資料泵備份與還原。資料泵匯出/匯入屬於邏輯備份,熱備份與冷備份都屬於物理備份。oracle10g開始推出了資料泵(expdp/impdp),可以使用並行引數選項,因此,
React從入門到架構(1)--手把手建立、解讀以及開發第一個ReactApp
在開始建立第一個專案之前,我們有一些準備工作要做: 1. 前置工作–安裝軟體 安裝nodejs軟體,官網都有免費的可以下載:nodejs下載地址. 安裝VS Code軟體,不喜歡VS Code的也可以使用sublime Text都可以的,官網可以免費下載安裝:V
CentOS 基本指令(六)——MySQL建立普通使用者 & 連線RSSBus資料庫埠
CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 使用如下命令對新建使用者賦權: GRANT privileges ON databasename.tablename TO 'username'@'host' 可
ant design pro的採坑之旅 (動態建立選單、訪問mock資料、富文字編輯器)
最近公司做一個後臺管理系統,猶豫半天還是想用ant design,後來發現他們有現成的腳手架 ant design pro ( github地址 ),果斷拉程式碼下來執行起來。 一:ant design pro 專案目錄結構和流程 整體目錄大概長這個樣子
JAVA設計模式(01):建立型-工廠模式【簡單工廠模式】(Simple Factory)
工廠模式是最常用的一類建立型設計模式,通常我們所說的工廠模式是指工廠方法模式,它也是使用頻率最高的工廠模式。本章將要學習的簡單工廠模式是工廠方法模式的“小弟”,它不屬於GoF 23種設計模式,但在軟體開發中應用也較為頻繁,通常將它作為學習其他工廠模式的入門。此
設計模式大雜燴(24種設計模式的總結以及學習設計模式的幾點建議)
作者:zuoxiaolong8810(左瀟龍),轉載請註明出處,特別說明:本博文來自博主原部落格,為保證新部落格中博文的完整性,特複製到此留存,如需轉載請註明新部落格地址即可。 迄今為止
利用sqoop將hive資料匯入Oracle中(踩的坑)
教程很多,這裡只說踩過的坑 1.下載sqoop時,還得下一個bin的包,拿到sqoop-1.4.6.jar 的包,放到hadoop的lib目錄下 2.匯入oracle,執行程式碼時,使用者名稱和表名必須大寫!且資料庫建表時表名必須大寫! 示例程式碼: sqoop expo
搭建自己的部落格(二十六):增加登入註冊以及個人資料按鈕
1、變化的部分 2、上程式碼: {# 引用模板 #} {% extends 'base.html' %} {% load staticfiles %} {% load comment_tags %} {% load likes_tags %} {% block he
資料預處理備忘(特徵選擇,三大降維技術,資料形態處理,模型評估)
這一塊的每一個小點都可以引申出很多的東西,所以先做一個大概,用以備忘,持續更新。 *一般過程: (1)資料採集 資料採集是最基本也很耗時間的工作。比如對於具體的工程事件,需要考慮採集哪些型別的資料?需要哪些屬性?需要多少資料支撐?然後再實際去採集這些資料,離線採集?線上獲取? (2)
DOM(包括獲取元素節點的方法以及獲取和設定元素節點的屬性)
1.文件:DOM中的“D” 當建立了一個網頁並把它載入到Web瀏覽器中時,DOM就在幕後悄然而生。它把編寫的網頁轉化為一個文件物件。 2.物件:DOM中的“O” 物件是是一種自足的資料集合,與某個特定物件相關聯的變數被稱為這個物件的屬性;只能通過某個特定物件去呼叫的
Node.JS入門(五)——後臺接收頁面引數並儲存到資料庫
前言 在學習了nodejs和資料庫mysql互動的情況下,我們來學習一下如何從頁面上獲取引數然後存放到資料庫中,這種方式通常有兩種,一種是get方式,一種是post方式 內容 背景 本篇的主要場景是獲取註冊中的使用者名稱和密碼,然後儲存到資
Mybatis使用註解的方式一次插入多條資料
ORACLE 對於oracle資料庫:不需要進行額外設定,可以直接在方法上使用註解進行多表的插入 @Insert("INSERT ALL INTO city (id,name,state) VALUES (31002, 'Disc','DISC') INTO city2
linux 程序、執行緒(or子程序)、資源佔用檢視以及顯示資料的意義
檢視程序: ps -ef | more (-e:所有程序,-f:全格式) ++++++++++++++++++++++++++++++++++++ + UID :使用者ID + + PID :程序ID
JPA多條件組合查詢,多表關聯查詢,資料條數(CriteriaQuery)
JPA多條件組合查詢(CriteriaQuery) /**查詢Demo結果集 * @return */ public List<Demo> findDemoList(ParamVO param,Pageable pageabl