12. DDL-数据库的管理

        本小节我们开始学习进入数据定义语言DDL,包括数据库的管理,主要涉及关键字:creat,alter,drop等。

        本小节主要讲解数据库的管理,包括数据库的创建,信息查看,信息修改以及删除。

1. 创建数据库方式

        数据库的创建通常可以使用如下3种方式:

        1、直接创建数据库

                create databases 数据库名;

        2、判断数据库是否存在,如果存在则不创建,不存在则创建。

                create database if not exists 数据库名;

        如果使用if not exists关键字,则当指定的数据库名存在时,不创建数据库。如果不使用if not exists关键字,当创建的数据库名存在时,将产生错误。

3、创建数据库并指定字符集。

        create database 数据库名 charachter set 字符集;

        字符集:规定了字符在数据库中的存储格式,比如占多少空间,能支持哪些字符等等。在使用MySQL数据库中,选取合适的字符集非常重要,如果选择不恰当,轻则影响数据库性能,严重的可能导致数据存储乱码。常见的MySQL字符集主要有以下四种:

字符集

一个字符占字节长度

说明

GBK

2

支持中文,但是不是国际通用字符集

UTF-8

3

支持中英文混合场景,是国际通用字符集

latin1

1

MySQL8版本之前的默认字符集

utf8mb4

4

MySQL8版本的默认字符集,mb4是most bytes 4的缩写。UTF-8的超级,完全兼容UTF-8,用4个字节存储一个字符,因此能存储更多的字符

2. 查看数据库方式

        通过如下两个SQL,可以查看数据库的信息。

        1、查看所有的数据库

                show database;

        当我们安装 MySQL 8.0并初始化数据库之后,默认会创建4个系统数据库:information_schema、performance_schema、sys、mysql。这几个数据库保存MySQL正常运行的基本信息,因此,我们不要轻易修改这几个数据库的信息。

        2、查看某个数据库的定义信息

                show create database 数据库名;

3. 修改数据库方式

        通过如下SQL,可以修改数据库默认字符集。

        1、修改数据库字符集

                alter database 数据库名 default character set 字符集;

        例:将db2数据库的字符集改成utf8mb4

alter database db2 default character set utf8mb4;

4. 删除数据库方式

        通过如下SQL,可以删除指定的数据库。

        1、删除数据库

                drop database 数据库名;

                注意:数据库删除后,将无法恢复,因此要谨慎操作。

5. 切换数据库方式

        1、查看正在使用的数据库

                select database();

        2、使用/切换数据库

                use 数据库名;

### 回答1: 可以在application.properties或者application.yml文件中配置spring.jpa.hibernate.ddl-auto属性来改变实体类的扫描。配置方式如下: ``` spring.jpa.hibernate.ddl-auto=create-drop ``` 其中create-drop表示在程序启动时创建表,程序停止时删除表。也可以使用其它值,如create、update、validate等。 如果想要指定扫描的实体类,可以使用@EntityScan注解,如下: ``` @EntityScan(basePackages = {"com.example.entity1", "com.example.entity2"}) ``` 这样只会扫描com.example.entity1和com.example.entity2包中的实体类。 ### 回答2: 要改变spring.jpa.hibernate.ddl-auto扫描的实体,可以按照以下步骤进行操作: 1. 首先,在应用的配置文件中找到spring.jpa.hibernate.ddl-auto属性,并将其值设置为none。这样会禁止自动创建、更新和删除数据库表结构。 2. 然后,创建一个命名为HibernateConfig的类,并使用@Configuration注解进行标记。在这个类中,可以使用@EnableJpaAuditing注解来启用JPA的审计功能。 3. 在HibernateConfig类中,创建一个名为entityManagerFactory的方法,并使用@Primary和@Bean注解进行标记。在这个方法中,可以通过LocalContainerEntityManagerFactoryBean来创建并配置一个EntityManagerFactory,并通过设置其packagesToScan属性来指定要扫描的实体类所在的包。 4. 接下来,在配置类中创建一个名为transactionManager的方法,并使用@Primary和@Bean注解进行标记。在这个方法中,可以通过JpaTransactionManager来创建一个事务管理器,并将EntityManagerFactory作为参数传递给它。 5. 最后,在应用的主类中使用@EnableJpaRepositories注解来启用JPA的存储库功能。 通过以上步骤,就可以改变spring.jpa.hibernate.ddl-auto扫描的实体。在配置文件中设置ddl-auto为none,表示禁止自动创建表结构。然后,在配置类中使用packagesToScan属性指定要扫描的实体类所在的包,从而指定要进行实体扫描的范围。最后,通过@EnableJpaRepositories注解来启用JPA的存储库功能,以便能够在应用中使用JPA的CRUD操作。 ### 回答3: 在Spring Boot中,可以通过设置`spring.jpa.hibernate.ddl-auto`属性来指定Hibernate在应用启动时自动创建、更新或验证数据库表结构。该属性默认值为`create-drop`,表示每次启动应用程序时创建数据库表并在应用程序关闭时删除表。 要改变`spring.jpa.hibernate.ddl-auto`属性扫描哪些实体,可以通过以下方式进行操作: 1. **使用@EntityScan注解**:在Spring Boot的主应用程序类上使用`@EntityScan`注解,该注解允许指定要扫描的包或类,以查找实体类。例如,如果要扫描`com.example.entity`包下的实体类,可以在主应用程序类上添加`@EntityScan("com.example.entity")`注解。 2. **使用LocalContainerEntityManagerFactoryBean**:在Spring Boot的配置类中,可以使用`LocalContainerEntityManagerFactoryBean`来自定义EntityManagerFactory的创建过程。通过设置`packagesToScan`属性,可以指定要扫描的实体类所在的包。例如: ```java @Configuration public class JpaConfig { @Bean public LocalContainerEntityManagerFactoryBean entityManagerFactory() { LocalContainerEntityManagerFactoryBean emf = new LocalContainerEntityManagerFactoryBean(); emf.setPackagesToScan("com.example.entity"); // 其他配置... return emf; } } ``` 这样配置后,Hibernate将只扫描指定包下的实体类。 通过上述两种方式,可以改变`spring.jpa.hibernate.ddl-auto`属性扫描哪些实体。可以根据实际需求选择适合的方式,以便根据需要自定义实体类的扫描范围。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

记乐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值