Spring/Spring-Boot 学习 paoding-rose-jade 连接MySQL数据库

项目依赖

新建一个spring-boot工程,mavenpom文件中添加如下依赖:

       <!--spring-boot起步依赖-->
       <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
 
        <!--lombok依赖,可简化代码-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

        <!--paoding-rose-jade基础依赖, 注意去除paoding-rose-jade中的spring相关依赖,否则会与项目本身的spring-boot冲突引发无法实例化bean的错误-->
        <dependency>
            <groupId>com.54chen</groupId>
            <artifactId>paoding-rose-jade</artifactId>
            <version>1.1</version>
            <!--排除paoding-rose-jade中的Spring相关依赖-->
            <exclusions>
                <exclusion>
                    <artifactId>spring</artifactId>
                    <groupId>org.springframework</groupId>
                </exclusion>
            </exclusions>
        </dependency>

        <!--dbcp数据库连接池依赖-->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-dbcp2</artifactId>
            <version>2.7.0</version>
        </dependency>

        <!--jdbc依赖-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>5.2.1.RELEASE</version>
        </dependency>

        <!--mysql数据库驱动依赖-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

        <!--web应用起步依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

数据库准备

# 创建数据库
CREATE DATABASE db_example;
# 切换到数据库
USE db_example;
# 新建test表
CREATE TABLE test (id INT, msg VARCHAR(200));
# 插入一条数据
INSERT INTO test VALUES(111,'adfaadfa');

项目结构

项目文件目录结构如下:

下面依次展示每个文件的代码

项目代码

JadeConfig.java

@Configuration
public class JadeConfig extends JadeBeanFactoryPostProcessor {
}

说明: 由名称知道这是一个配置类,只需要像如上继承JadeBeanFactoryPostProcessor即可,无需自己实现任何方法。有了如上声明, jade框架会帮我们自动处理被@DAO注解的类(生成对应DAO类的bean并注入到容器中)。

Test.java

//@Data注解属于lombok包,它会在编译阶段帮我们自动生成`getter`和`setter`方法
@Data
public class Test {
    int id;
    String msg;
}

说明: 这是一个简陋的model, 用于返回数据。这里采用lombok的注解节省了settergetter方法

TestDAO.java

@DAO
public interface TestDAO {
    @SQL("select id, msg from test limit 1")//从test表中查询所有数据
     Test getTest();
}

说明:这个类就是DAO类。这个类说明了paoding-rose-jade框架的强大的之处,可以使用 @SQL注解在方法上直接书写SQL语句! 并且只需写如上的接口,加上前面的JadeConfig.java类,就完成了DAO类的所有配置。
!注意!
jade框架强制要求被@DAO注解的类的名称必须以DAO结尾,不能是Daodao等其他形式。如果不是这样,jade框架将不能识别这个DAO类,无法完成这个类的自动注入

TestService.java

@Service
public class TestService {
    @Autowired
    private TestDAO testDAO;

    public Test getTest(){
        return testDAO.getTest();
    }
}

说明: service类,由于上面我们已经配置了@DAO注解的DAO类以及JadeConfig类, 此处的TestDAO打上Autowired注解后会由框架自动注入。对于IDEA编辑器此处可能会提示No beans of 'TestDAO' type found。可不用理会。

TestController.java

@RestController
@RequestMapping("/demo")
public class TestController {
    @Autowired
    TestService testService;

    @RequestMapping(path = "/getTest", method = RequestMethod.GET)
    public Test getTest(){
        return testService.getTest();
    }
}

说明: 处理查询请求。

最后配置数据源:

application.properties

spring.datasource.url=jdbc:mysql://127.0.0.1:3306/db_example
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

说明: spring.datasource.url是连接数据库的url, db_example是数据库名称; spring.datasource.username 指定数据库用户名, spring.datasource.password指定数据库密码;spring.datasource.driver-class-name指定mysql驱动

启动项目

启动项目,使用浏览器访问:
http://localhost:8080/demo/getTest
查询到数据库中的数据如下:

猜你喜欢

转载自www.cnblogs.com/greatLong/p/11937564.html