`

SpringCloud分布式微服务b2b2c电子商务(五)springboot整合 beatlsql

阅读更多

 

 BeetSql是一个全功能DAO工具, 同时具有Hibernate 优点 & Mybatis优点功能,适用于承认以SQL为中心,同时又需求工具能自动能生成大量常用的SQL的应用。

beatlsql 优点

开发效率

无需注解,自动使用大量内置SQL,轻易完成增删改查功能,节省50%的开发工作量

数据模型支持Pojo,也支持Map/List这种快速模型,也支持混合模型SQL 模板基于Beetl实现,更容易写和调试,以及扩展维护性

SQL 以更简洁的方式,Markdown方式集中管理,同时方便程序开发和数据库SQL调试。

可以自动将sql文件映射为dao接口类

灵活直观的支持支持一对一,一对多,多对多关系映射而不引入复杂的OR Mapping概念和技术。

具备Interceptor功能,可以调试,性能诊断SQL,了解springcloud架构可以加求求:三五三六二四七二五,以及扩展其他功能其他内置支持主从数据库支持的开源工具支持跨数据库平台,开发者所需工作减少到最小,目前跨数据库支持mysql,postgres,oracle,sqlserver,h2,sqllite,DB2.

引入依赖

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>com.ibeetl</groupId>
            <artifactId>beetl</artifactId>
            <version>2.3.2</version>
 
        </dependency>
 
        <dependency>
            <groupId>com.ibeetl</groupId>
            <artifactId>beetlsql</artifactId>
            <version>2.3.1</version>
 
        </dependency>
 
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.0.5</version>
        </dependency>

 这几个依赖都是必须的。

整合阶段
由于springboot没有对 beatlsql的快速启动装配,所以需要我自己导入相关的bean,包括数据源,包扫描,事物管理器等。

在application加入以下代码:

@Bean(initMethod = "init", name = "beetlConfig")
    public BeetlGroupUtilConfiguration getBeetlGroupUtilConfiguration() {
        BeetlGroupUtilConfiguration beetlGroupUtilConfiguration = new BeetlGroupUtilConfiguration();
        ResourcePatternResolver patternResolver = ResourcePatternUtils.getResourcePatternResolver(new DefaultResourceLoader());
        try {
            // WebAppResourceLoader 配置root路径是关键
            WebAppResourceLoader webAppResourceLoader = new WebAppResourceLoader(patternResolver.getResource("classpath:/templates").getFile().getPath());
            beetlGroupUtilConfiguration.setResourceLoader(webAppResourceLoader);
        } catch (IOException e) {
            e.printStackTrace();
        }
        //读取配置文件信息
        return beetlGroupUtilConfiguration;
 
    }
 
    @Bean(name = "beetlViewResolver")
    public BeetlSpringViewResolver getBeetlSpringViewResolver(@Qualifier("beetlConfig") BeetlGroupUtilConfiguration beetlGroupUtilConfiguration) {
        BeetlSpringViewResolver beetlSpringViewResolver = new BeetlSpringViewResolver();
        beetlSpringViewResolver.setContentType("text/html;charset=UTF-8");
        beetlSpringViewResolver.setOrder(0);
        beetlSpringViewResolver.setConfig(beetlGroupUtilConfiguration);
        return beetlSpringViewResolver;
    }
 
    //配置包扫描
    @Bean(name = "beetlSqlScannerConfigurer")
    public BeetlSqlScannerConfigurer getBeetlSqlScannerConfigurer() {
        BeetlSqlScannerConfigurer conf = new BeetlSqlScannerConfigurer();
        conf.setBasePackage("com.forezp.dao");
        conf.setDaoSuffix("Dao");
        conf.setSqlManagerFactoryBeanName("sqlManagerFactoryBean");
        return conf;
    }
 
    @Bean(name = "sqlManagerFactoryBean")
    @Primary
    public SqlManagerFactoryBean getSqlManagerFactoryBean(@Qualifier("datasource") DataSource datasource) {
        SqlManagerFactoryBean factory = new SqlManagerFactoryBean();
 
        BeetlSqlDataSource source = new BeetlSqlDataSource();
        source.setMasterSource(datasource);
        factory.setCs(source);
        factory.setDbStyle(new MySqlStyle());
        factory.setInterceptors(new Interceptor[]{new DebugInterceptor()});
        factory.setNc(new UnderlinedNameConversion());//开启驼峰
        factory.setSqlLoader(new ClasspathLoader("/sql"));//sql文件路径
        return factory;
    }
 
 
    //配置数据库
    @Bean(name = "datasource")
    public DataSource getDataSource() {
        return DataSourceBuilder.create().url("jdbc:mysql://127.0.0.1:3306/test").username("root").password("123456").build();
    }
 
    //开启事务
    @Bean(name = "txManager")
    public DataSourceTransactionManager getDataSourceTransactionManager(@Qualifier("datasource") DataSource datasource) {
        DataSourceTransactionManager dsm = new DataSourceTransactionManager();
        dsm.setDataSource(datasource);
        return dsm;
    }

 在resouces包下,加META_INF文件夹,文件夹中加入spring-devtools.properties:

restart.include.beetl=/beetl-2.3.2.jar
restart.include.beetlsql=/beetlsql-2.3.1.jar

在templates下加一个index.btl文件。

加入jar和配置beatlsql的这些bean,以及resources这些配置之后,springboot就能够访问到数据库类。

举个restful的栗子
初始化数据库的表

# DROP TABLE `account` IF EXISTS
CREATE TABLE `account` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) NOT NULL,
  `money` double DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
INSERT INTO `account` VALUES ('1', 'aaa', '1000');
INSERT INTO `account` VALUES ('2', 'bbb', '1000');
INSERT INTO `account` VALUES ('3', 'ccc', '1000');

 bean

public class Account {
    private int id ;
    private String name ;
    private double money;
 
    getter...
 
    setter...
 
  }

 

 

分享到:
评论

相关推荐

    基于Spring Cloud的微服务分布式企业级B2B2C商城系统设计源码

    基于Spring Cloud的微服务分布式企业级B2B2C商城系统设计源码,该项目包含1562个文件,主要文件类型有520个java源文件,以及335个png图像文件。此外,还包括273个javascript文件,以及135个vue前端文件。该项目是一...

    java版spring cloud分布式微服务(二)Session共享-b2b2c小程序电子商务

    了解springcloud架构可以加求求:三五三六二四七二五九 新建一个spring boot项目,命名springcloud-session-redis POM依赖配置 4.0.0 com.carry springcloud-session-redis 0.0.1-SNAPSHOT jar springcloud-...

    B2B2C电子商务模式探讨.doc

    B2B2C电子商务模式探讨 ...B2B2C电子商务模式是一种具有创新性和整合性的商业模式,提供了统一的服务平台,提高了用户体验,改变了人们的生活方式和消费观念。但是,B2B2C模式也存在一些劣势,需要进一步完善和改进。

    B2B2C电子商务模式探讨.docx

    "B2B2C电子商务模式探讨" 随着互联网技术的不断发展,电子商务模式也在不断创新和完善。其中,B2B2C 作为一种独特的商业模式,已经在电商领域中得到了广泛应用。这种模式不仅为消费者提供了便捷的购物体验,也为...

    B2B2C电子商务模式探讨.pdf

    《B2B2C电子商务模式探讨》 B2B2C电子商务模式,是现代商业领域中的一种创新性网络购物模式,它将B2B(Business to Business)和B2C(Business to Consumer)的优点相结合,形成了一种独特的商业运作方式。这种模式...

    恒生B2B2C电子商务平台解决方案电子商务解决方案.docx

    恒生 B2B2C 电子商务平台解决方案电子商务解决方案 本解决方案是一种全面、高效的电子商务解决方案,旨在满足不同行业、不同规模的企业在电子商务领域的全方位需求。该解决方案凭借其灵活性强、安全稳定、便捷高效...

    微服务架构,分布式部署,高性能,全开源一个基于Spring Cloud的B2B2C电商商城系统mall4cloud

    一个基于Spring Cloud、Nacos、Seata、Mysql、Redis、RocketMQ、canal、ElasticSearch、minio的微服务B2B2C电商商城系统,采用主流的互联网技术架构、全新的UI设计、支持集群部署、服务注册和发现以及拥有完整的订单...

    基于Spring Cloud架构的Mall4j微服务B2B2C电商商城系统设计源码

    本项目是一款基于Spring Cloud架构的Mall4j微服务B2B2C电商商城系统设计源码,共包含1644个文件。其中,Java源文件521个,JavaScript文件330个,Vue文件135个,CSS和HTML文件共17个,其他包括TypeScript、图片、SVG...

    畅购商场SpringCloud开发文档.pdf

    SpringCloud微服务电商实战项目是当前电子商务发展的热点话题, 本文档将从畅购商场的角度,透视SpringCloud微服务电商实战项目的框架搭建、电商系统技术特点、主电商模式等方面对 SpringCloud 微服务电商实战项目...

    微服务架构,分布式部署,高性能,全开源,基于Spring Cloud的微服务B2B2C电商商城系统

    一个基于Spring Cloud、Nacos、Seata、Mysql、Redis、RocketMQ、canal、ElasticSearch、minio的微服务B2B2C电商商城系统,采用主流的互联网技术架构、全新的UI设计、支持集群部署、服务注册和发现以及拥有完整的订单...

    B2B2C商城源码.zip

    【标题】"B2B2C商城源码.zip"揭示了这是一个包含B2B2C电子商务平台源代码的压缩文件。B2B2C(Business-to-Business-to-Consumer)模式是电商领域的一种商业模式,它整合了企业对企业(B2B)和企业对消费者(B2C)的...

    基于PHP的UQCMS云商B2B2C电子商务系统.zip

    【标题】"基于PHP的UQCMS云商B2B2C电子商务系统"是指一个采用PHP编程语言开发的电子商务解决方案,特别设计用于构建B2B2C(Business-to-Business-to-Consumer)类型的在线市场平台。这样的系统允许企业对企业和消费...

    B2B2C电子商务网站系统解决方案定义.pdf

    在电子商务领域,B2B2C(Business-to-Business-to-Consumer)模式是一种结合了企业对企业(B2B)和企业对消费者(B2C)的商业模式。B2B2C电子商务网站系统解决方案旨在帮助企业搭建一个既能进行批发交易,也能进行...

    开源商城B2B2C源码

    B2B2C(Business to Business to Consumer)模式是一种电子商务类型的代表,其中企业(B)通过一个平台与另一个企业(B)合作,共同为消费者(C)提供产品和服务。 在这个开源项目中,"jshop_mall"可能是一个主要的...

    springboot+整合rabbitmq的全套代码

    reabbitmq的完整学习 &gt;rabbitMq软件上传到liunx服务器 &gt;RabbitMQ入门 ...&gt;Springboot整合RabbitMQ &gt;SpringBoot整合RabbitMQ(交换机与多个队列绑定) &gt;RabbitMQ-集群搭建&gt;负载均衡-HAProxy 完整链接地址: ...

    shopnc系统b2b2c电子商务系统源码

    "ShopNC系统B2B2C电子商务系统源码"是一个专为构建多商户、多消费者电商平台设计的开源解决方案。B2B2C模式(Business-to-Business-to-Consumer)是一种电商平台模式,其中商家(Business)可以开设店铺,消费者...

    电子商务新模式_B2B2C应用_服装版

    ### 电子商务新模式_B2B2C应用_服装版 #### 模式的背景及意义 《电子商务新模式_B2B2C应用_服装版》一文由王秀才和马大力撰写,发布于2007年。该文章主要探讨了一种新兴的电子商务模式——B2B2C(Business-to-...

    B2B2C——电子商务企业的赢利模式

    ### B2B2C——电子商务企业的赢利模式 #### 一、引言 自电子商务在中国兴起以来,关于其模式的研究始终未停止。虽然各种模式层出不穷,但一直未能找到一种既符合中国国情又易于盈利的方式。近年来,B2B2C...

Global site tag (gtag.js) - Google Analytics