New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

xyz.codemeans.protobuf4j:protobuf4j-core

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

xyz.codemeans.protobuf4j:protobuf4j-core

A Facility Framework to Develop with Google Protobuf

  • 1.0.1
  • Source
  • Maven
  • Socket score

Version published
Maintainers
1
Source

Protobuf4j

Introduction

A Facility framework to develop with Google Protobuf, including:

  • Utils to handle Protobuf messages and enums
  • ORM-based DAO for storing Protobuf Message in MySQL
  • Some supports with Spring and SpringBoot

Modules

  • protobuf4j-core: helper class for Protobuf Message and Enum, codec class for Message.
  • protobuf4j-sql: abstraction for SQL fragment and statement.
  • protobuf4j-orm: basic ORM-like DAO framework utilizing protobuf4j-sql
  • protobuf4j-orm-starter: springboot starter for protobuf4j-orm, including autoconfiguration and jdbc injection
  • protobuf4j-spring: some extensions for Protobuf to integrate with spring

ORM Usage

Gradle

implementation("xyz.codemeans.protobuf4j:protobuf4j-orm-starter:$protobuf4jVersion")

The latest version can be found in maven central repository.

Properties

protobuf4j.datasource.auto-enable=<if-auto-configuration-enalbed:default true>

Java

Example Code: example

interface

public interface ExampleDao extends IPrimaryKeyMessageDao<Long, Example> {
}

impl

@Repository
public class ExampleDaoImpl extends PrimaryKeyProtoMessageDao<Long, Example> implements ExampleDao {
  public ExampleDaoImpl() {
    super(Example.class, ExampleNaming.ID);
  }
}

CRUD

@Autowired
ExampleDao exampleDao;

public Example createExample(Example example) {
  long id = exampleDao.insertReturnKey(example).longValue();
  return exampleDao.selectOneByPrimaryKey(id);
}

public Example getExample(long id) {
  return exampleDao.selectOneByPrimaryKey(id);
  // or
  //return exampleDao.selectOneByCond(FieldAndValue.eq(ExampleNaming.ID, id));
}

public Example updateExample(Example newValue, Example oldValue) {
  exampleDao.updateMessageByPrimaryKey(newValue, oldValue);
  return exampleDao.selectOneByPrimaryKey(newValue.getId());
}

public void deleteExample(long id) {
  exampleDao.deleteByPrimaryKey(id);
}

// complex conditions and pagination
public List<Example> listExamples(WhereClause where) {
  return exampleDao.selectByWhere(where);
}

public Map<Long, Example> getExamples(Collection<Long> ids) {
  return exampleDao.selectMultiByPrimaryKey(ids);
}

SQL Usage

// condition
List<IExpression> conds = Lists.newArrayList();
conds.add(FieldAndValue.like(ExampleNaming.NAME, SqlUtil.likePrefix(prefix)));
conds.add(FieldAndValue.gte(ExampleNaming.ID, beg));
conds.add(FieldAndValue.lt(ExampleNaming.ID, end));
IExpression allAndCond = LogicalExpr.and(conds));

// pagination
PaginationClause.newBuilder(limit).buildByOffset(offset);
PaginationClause.newBuilder(limit).buildByPageNo(pn)

// select specified columns
SelectClause selectClause = new SelectClause();
selectClause.select(ExampleNaming.NAME);
FromClause fromClause = QueryCreator.fromType(Example.class);
SelectSql sql = new SelectSql(selectClause, fromClause);
exampleDao.doSelect(sql, new SingleColumnRowMapper<>(String.class));

// update whole message with different fields
exampleDao.updateMessageByPrimaryKey(newValue, oldValue);

Reference

FAQs

Package last updated on 17 Aug 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc