spring 配置數(shù)據(jù)庫

參考教程

相關(guān)環(huán)境

環(huán)境等事宜咨堤,參見 IDEA/SpringMVC/Jetty/Maven 配置

具體步驟

在 src/main/java中新建2個 package, model 和 repository.

1. Mysql 相關(guān)配置菇篡。

spring_study
user
blog,其中有個外鍵 user_id 鏈接到 user 表

建表sql:

CREATE TABLE `spring_study_user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `nickname` varchar(45) DEFAULT NULL,
  `password` varchar(45) DEFAULT NULL,
  `first_name` varchar(45) DEFAULT NULL,
  `last_name` varchar(45) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `name` (`nickname`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
create table jack_study.blog(
    id int auto_increment,
    title varchar(100),
    content varchar(255),
    user_id int(11),
    pub_date date,
    primary key (id),
    foreign key(user_id) references jack_study.spring_study_user(id)
);

2. persistemce.xml 的配置

  • 右鍵項目一喘,選擇 Add Framework Support驱还,在彈出框中選擇 Hibernate.
    此時,resources 中自動生成了persistence.xml文件。
  • 數(shù)據(jù)庫相關(guān)配置议蟆。左邊點擊 Persistence(如果沒有則點擊下面的小方框)灼伤,右鍵選擇 Generate Persistence Mapping/By Database Schema,具體如下圖
    persistence_mapping.png
  • 配置數(shù)據(jù)源,點擊 Choose Data Source 右邊的三個點選擇數(shù)據(jù)源咪鲜,在彈出的界面左上角選擇 “+”,選擇 Mysql撞鹉。配置如下:


    data_source_and_driver.png
  • 打開model包疟丙,發(fā)現(xiàn)生成了兩個 Java Bean,在 SpringMVC中成為兩個實體鸟雏,BlogEntity / UserEntity
  • 把自動生成的代碼中的 import java.sql.Date; 改成import java.util.Date;

3. 配置數(shù)據(jù)庫

  • mvc-dispatcher-servlet.xml 添加下列配置
<!-- 表示JPA Repository所在的包 -->
<jpa:repositories base-package="com.example.repository"/>   # 注意自己的包名

<!-- 鏈接到persistence.xml -->
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
    <property name="persistenceUnitName" value="defaultPersistenceUnit"/>
</bean>

<!-- 事務(wù)管理 -->
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>

<!-- 開啟事務(wù)管理注解 -->
<tx:annotation-driven transaction-manager="transactionManager"/>
  • 填充 persistence.xml享郊,將 persistence-unit 的 name改為 defaultPersistenceUnit。在下面的文件中孝鹊,我添加了一些更為詳細(xì)的配置:
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">

    <persistence-unit name="defaultPersistenceUnit">
        <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
        <properties>
            <!-- 使用MySQL方言 -->
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect"/>
            <!-- 數(shù)據(jù)庫連接的URL地址 -->
            <property name="hibernate.connection.url"
                      value="jdbc:mysql://localhost:3306/springdemo"/>
            <!-- 數(shù)據(jù)庫連接的驅(qū)動 -->
            <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
            <!-- 數(shù)據(jù)庫連接的用戶名 -->
            <property name="hibernate.connection.username" value="root"/>
            <!-- 數(shù)據(jù)庫連接的密碼 -->
            <property name="hibernate.connection.password" value="111111"/>
            <!-- 顯示SQL語句 -->
            <property name="hibernate.show_sql" value="true"/>

            <property name="hibernate.connection.useUnicode" value="true"/>
            <property name="hibernate.connection.characterEncoding" value="UTF-8"/>

            <!-- 在顯示SQL語句時格式化語句 -->
            <property name="hibernate.format_sql" value="true"/>
            <property name="hibernate.use_sql_comments" value="false"/>
            <!-- 自動輸出schema創(chuàng)建DDL語句 -->
            <property name="hbm2ddl.auto" value="update"/>

            <!-- 數(shù)據(jù)庫連接超時后自動重連 -->
            <property name="hibernate.connection.autoReconnect" value="true"/>
            <property name="connection.autoReconnectForPools" value="true"/>
            <property name="connection.is-connection-validation-required" value="true"/>
        </properties>
    </persistence-unit>
</persistence>

4 測試

重啟程序炊琉,如果沒有報錯,說明配置成功又活。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末苔咪,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子柳骄,更是在濱河造成了極大的恐慌团赏,老刑警劉巖,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件耐薯,死亡現(xiàn)場離奇詭異舔清,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)曲初,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進(jìn)店門体谒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人臼婆,你說我怎么就攤上這事抒痒。” “怎么了颁褂?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵评汰,是天一觀的道長。 經(jīng)常有香客問我痢虹,道長被去,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任奖唯,我火速辦了婚禮惨缆,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己坯墨,他們只是感情好寂汇,可當(dāng)我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著捣染,像睡著了一般骄瓣。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上耍攘,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天榕栏,我揣著相機(jī)與錄音,去河邊找鬼蕾各。 笑死扒磁,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的式曲。 我是一名探鬼主播妨托,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼吝羞!你這毒婦竟也來了兰伤?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤钧排,失蹤者是張志新(化名)和其女友劉穎医清,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體卖氨,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡会烙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了筒捺。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片柏腻。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖系吭,靈堂內(nèi)的尸體忽然破棺而出五嫂,到底是詐尸還是另有隱情,我是刑警寧澤肯尺,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布沃缘,位于F島的核電站,受9級特大地震影響则吟,放射性物質(zhì)發(fā)生泄漏槐臀。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一氓仲、第九天 我趴在偏房一處隱蔽的房頂上張望水慨。 院中可真熱鬧得糜,春花似錦、人聲如沸晰洒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽谍珊。三九已至治宣,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間砌滞,已是汗流浹背侮邀。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留布持,地道東北人。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓陕悬,卻偏偏與公主長得像题暖,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子捉超,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內(nèi)容