Springboot基础(二):数据库+Thymeleaf

Spring Data

对于数据访问层,无论是sql 还是nosql, springboot底层都是通过springdata来进行封装的

SpringData也是和springBoot,springcloud齐名的项目

使用idea构建项目的时候可以选择springdata:

在这里插入图片描述

在这里插入图片描述

这里面封装了大量的模板,就是xxxTemplate

工具:供我们使用,里面封装了带昂的模板,

xxxTemplate:

集成jdbc

1.创建一个springboot项目: 按照上面的依赖创建

spring-boot-starter-data-jdbc:里面导入了jdbc的配置,还导入了HiKari数据源,这个是springboot默认的数据源

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.5.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example.springdata</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>springdata</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>  默认是8.0.19的
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

2.在数据库中创建一个springboot数据库,然后创建相应的表:

DROP TABLE IF EXISTS `department`;

CREATE TABLE `department` (
  `id` int(3) NOT NULL AUTO_INCREMENT COMMENT '部门id',
  `department_name` varchar(20) NOT NULL COMMENT '部门名字',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=106 DEFAULT CHARSET=utf8;

/*Data for the table `department` */

insert  into `department`(`id`,`department_name`) values (101,'技术部'),(102,'销售部'),(103,'售后部'),(104,'后勤部'),(105,'运营部');

/*Table structure for table `employee` */

DROP TABLE IF EXISTS `employee`;

CREATE TABLE `employee` (
  `id` int(5) NOT NULL AUTO_INCREMENT COMMENT '雇员id',
  `last_name` varchar(100) NOT NULL COMMENT '名字',
  `email` varchar(100) NOT NULL COMMENT '邮箱',
  `gender` int(2) NOT NULL COMMENT '性别1 男, 0 女',
  `department` int(3) NOT NULL COMMENT '部门id',
  `birth` datetime NOT NULL COMMENT '生日',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1006 DEFAULT CHARSET=utf8;

/*Data for the table `employee` */

insert  into `employee`(`id`,`last_name`,`email`,`gender`,`department`,`birth`) values (1001,'张三','24736743@qq.com',1,101,'2020-03-06 15:04:33'),(1002,'李四','24736743@qq.com',1,102,'2020-03-06 15:04:36'),(1003,'王五','24736743@qq.com',0,103,'2020-03-06 15:04:37'),(1004,'赵六','24736743@qq.com',1,104,'2020-03-06 15:04:39'),(1005,'孙七','24736743@qq.com',0,105,'2020-03-06 15:04:45');

3.使用idea连接数据库:

1、选择数据源

在IDEA中新建一个Java工程后,最右侧侧边栏会有个 Database 标签,点击此标签,然后点击+按钮
,选择Data Source,选择MySQL,如果是其他数据源,选择其他对应按钮即可。过程如下图所示。

在这里插入图片描述

2、下载驱动

如下图是下载好MySQL驱动的情况。如果是第一次进入此界面并且没有驱动,IDEA会在Driver处提示没有下载对应数据库类型的驱动,直接点击,就会自动下载,稍作等待后,结果显示为MySQL,若点击此标签,可以对MySQL的驱动文件进行进一步配置。

注意:mysql8的话需要配置时区,就是红框标注的哪些,这个区域可以手写的

在这里插入图片描述

3、配置账户、密码信息

如上图所示,需要填写数据库账户信息,这里我的用户名User为root,由于是本地数据库,所以Host填写为localhost,端口Port为3306,Password填写用户名对应的密码即可,Database可以填写想连接的数据库名,也可以暂时不填,待连接上后再设置。填写以上所有信息后,点击Test Connection按钮,如果显示成功Successful,说明连接成功,点击OK按钮,配置完成。

4、查看、修改数据库
  • 连接到数据库后,在Database标签下,可以查看数据库结果,如下图所示,可以看到testjdbc库下有两张表,分别是emp_table 和 t_user,并且能看到表的列信息。如下图所示。

在这里插入图片描述

  • 点击表名或者列名,就可以查看表信息,也可以修改表信息,如下图所示。

在这里插入图片描述

连接到MySQL数据库

1.编写配置文件:

spring:
  datasource:
    username: root
    password: 123456
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/springboot?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8

2.编写test类:

@SpringBootTest
class SpringdataApplicationTests {
   
    @Autowired
    DataSource dataSource;
    @Test
    void contextLoads() throws SQLException {
   
        System.err.println(dataSource.getClass());
        Connection connection = dataSource.getConnection();
        System.err.println(connection);
        //真实开发需要使用数据源,
        connection.close();

    }

}
结果  
    class com.zaxxer.hikari.HikariDataSource
2020-03-16 23:18:57.891  INFO 520 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...
2020-03-16 23:18:57.893  WARN 520 --- [           main] com.zaxxer.hikari.util.DriverDataSource  : Registered driver with driverClassName=com.mysql.jdbc.Driver was not found, trying direct instantiation.
2020-03-16 23:18:59.075  INFO 520 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Start completed.
HikariProxyConnection@1846435308 wrapping com.mysql.cj.jdbc.ConnectionImpl@48a663e9

表明springboot默认的数据源就是Hikari

自动配置核心类

DataSourceConfiguration: 自动配置的数据源
DataSourceAutoConfiguration:自动配置类
DataSourceProperties: 	配置文件绑定类

Hikari

号称当前java web速度最快的数据源,和Druid相比,效率更高一点

不同的数据源拥有不同的配置

使用JDBC操作数据库

JDBCTemplate:封装了一些常用的操作,并且会自动的提交事务

@RestController
@RequestMapping("/jdbcTest")
public class JDBCController {
   
    @Autowired
    JdbcTemplate jdbcTemplate;
    @GetMapping("/getList")
    public List<Map<String ,Object>> userList(){
   
        String sql = "select * from employee";
        List<Map<String, Object>> maps = jdbcTemplate.queryForList(sql);
        return maps;

    }
    
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值