spring 配置数据库

参考教程

相关环境

环境等事宜,参见 IDEA/SpringMVC/Jetty/Maven 配置

具体步骤

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

1. Mysql 相关配置。

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文件。
  • 数据库相关配置。左边点击 Persistence(如果没有则点击下面的小方框),右键选择 Generate Persistence Mapping/By Database Schema,具体如下图
    persistence_mapping.png
  • 配置数据源,点击 Choose Data Source 右边的三个点选择数据源,在弹出的界面左上角选择 “+”,选择 Mysql。配置如下:


    data_source_and_driver.png
  • 打开model包,发现生成了两个 Java Bean,在 SpringMVC中成为两个实体,BlogEntity / UserEntity
  • 把自动生成的代码中的 import java.sql.Date; 改成import java.util.Date;

3. 配置数据库

  • 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>

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

<!-- 开启事务管理注解 -->
<tx:annotation-driven transaction-manager="transactionManager"/>
  • 填充 persistence.xml,将 persistence-unit 的 name改为 defaultPersistenceUnit。在下面的文件中,我添加了一些更为详细的配置:
<?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"/>
            <!-- 数据库连接的URL地址 -->
            <property name="hibernate.connection.url"
                      value="jdbc:mysql://localhost:3306/springdemo"/>
            <!-- 数据库连接的驱动 -->
            <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
            <!-- 数据库连接的用户名 -->
            <property name="hibernate.connection.username" value="root"/>
            <!-- 数据库连接的密码 -->
            <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创建DDL语句 -->
            <property name="hbm2ddl.auto" value="update"/>

            <!-- 数据库连接超时后自动重连 -->
            <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 测试

重启程序,如果没有报错,说明配置成功。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容