相關(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
,具體如下圖
-
配置數(shù)據(jù)源,點擊 Choose Data Source 右邊的三個點選擇數(shù)據(jù)源咪鲜,在彈出的界面左上角選擇 “+”,選擇 Mysql撞鹉。配置如下:
- 打開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 測試
重啟程序炊琉,如果沒有報錯,說明配置成功又活。