Alternatives to MyBatis logo

Alternatives to MyBatis

Hibernate, Flyway, Spring Data, jOOQ, and guava are the most popular alternatives and competitors to MyBatis.
206
176
+ 1
17

What is MyBatis and what are its top alternatives?

It is a first class persistence framework with support for custom SQL, stored procedures and advanced mappings. It eliminates almost all of the JDBC code and manual setting of parameters and retrieval of results. It can use simple XML or Annotations for configuration and map primitives, Map interfaces and Java POJOs (Plain Old Java Objects) to database records.
MyBatis is a tool in the Object Relational Mapper (ORM) category of a tech stack.
MyBatis is an open source tool with 19.3K GitHub stars and 12.6K GitHub forks. Here’s a link to MyBatis's open source repository on GitHub

Top Alternatives to MyBatis

  • Hibernate
    Hibernate

    Hibernate is a suite of open source projects around domain models. The flagship project is Hibernate ORM, the Object Relational Mapper. ...

  • Flyway
    Flyway

    It lets you regain control of your database migrations with pleasure and plain sql. Solves only one problem and solves it well. It migrates your database, so you don't have to worry about it anymore. ...

  • Spring Data
    Spring Data

    It makes it easy to use data access technologies, relational and non-relational databases, map-reduce frameworks, and cloud-based data services. This is an umbrella project which contains many subprojects that are specific to a given database. ...

  • jOOQ
    jOOQ

    It implements the active record pattern. Its purpose is to be both relational and object oriented by providing a domain-specific language to construct queries from classes generated from a database schema. ...

  • guava
    guava

    The Guava project contains several of Google's core libraries that we rely on in our Java-based projects: collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, and so forth. ...

  • Prisma
    Prisma

    Prisma is an open-source database toolkit. It replaces traditional ORMs and makes database access easy with an auto-generated query builder for TypeScript & Node.js. ...

  • SQLAlchemy
    SQLAlchemy

    SQLAlchemy is the Python SQL toolkit and Object Relational Mapper that gives application developers the full power and flexibility of SQL. ...

  • Sequelize
    Sequelize

    Sequelize is a promise-based ORM for Node.js and io.js. It supports the dialects PostgreSQL, MySQL, MariaDB, SQLite and MSSQL and features solid transaction support, relations, read replication and more. ...

MyBatis alternatives & related posts

Hibernate logo

Hibernate

1.5K
1.1K
33
Idiomatic persistence for Java and relational databases.
1.5K
1.1K
+ 1
33
PROS OF HIBERNATE
  • 22
    Easy ORM
  • 8
    Easy transaction definition
  • 3
    Is integrated with spring jpa
CONS OF HIBERNATE
  • 3
    Can't control proxy associations when entity graph used

related Hibernate posts

Flyway logo

Flyway

280
558
33
Version control for your database
280
558
+ 1
33
PROS OF FLYWAY
  • 13
    Superb tool, easy to configure and use
  • 9
    Very easy to config, great support on plain sql scripts
  • 6
    Is fantastic and easy to install even with complex DB
  • 4
    Simple and intuitive
  • 1
    Easy tool to implement incremental migration
CONS OF FLYWAY
  • 3
    "Undo Migrations" requires pro version, very expensive

related Flyway posts

Miguel Suarez

Flyway vs Liquibase #Migration #Backwards-compatible

We were looking for a tool to help us integrating the migration scripts as part of our Deployment. At first sight both tools look very alike, are well integrated with Spring, have a fairly frequent development activity and short release cycles.

Liquibase puts a lot of emphasis on independence with the DB, allowing you to create the scripts on formats like JSON and YML, abstracting away from SQL, which it's also supported. Since we only work with one DB type across services we wouldn't take much advantage of this feature.

Flyway on the other hand has the advantage on being actively working on the integration with PostgreSQL 11, for it's upcoming version 6. Provides a more extensive set of properties that allow us to define what's allowed on what's not on each different environment.

Instead of looking for a tool that will allow us to rollback our DB changes automatically, we decided to implement backwards-compatible DB changes, for example adding a new column instead of renaming an existing one, postponing the deletion of the deprecated column until the release has been successfully installed.

See more
Shared insights
on
FlywayFlywayLiquibaseLiquibase

All the DB deployments in our current organization are manual. We want to automate them. We are leaning toward Liquibase since it has versioning and rollbacks. Is Flyway better or Liquibase?

See more
Spring Data logo

Spring Data

587
404
0
Provides a consistent approach to data access – relational, non-relational, map-reduce, and beyond
587
404
+ 1
0
PROS OF SPRING DATA
    Be the first to leave a pro
    CONS OF SPRING DATA
      Be the first to leave a con

      related Spring Data posts

      Остап Комплікевич

      I need some advice to choose an engine for generation web pages from the Spring Boot app. Which technology is the best solution today? 1) JSP + JSTL 2) Apache FreeMarker 3) Thymeleaf Or you can suggest even other perspective tools. I am using Spring Boot, Spring Web, Spring Data, Spring Security, PostgreSQL, Apache Tomcat in my project. I have already tried to generate pages using jsp, jstl, and it went well. However, I had huge problems via carrying already created static pages, to jsp format, because of syntax. Thanks.

      See more
      jOOQ logo

      jOOQ

      106
      97
      1
      A light database-mapping software library
      106
      97
      + 1
      1
      PROS OF JOOQ
      • 1
        Easy dsl
      CONS OF JOOQ
        Be the first to leave a con

        related jOOQ posts

        guava logo

        guava

        1.2K
        193
        6
        Google Core Libraries for Java 6+
        1.2K
        193
        + 1
        6
        PROS OF GUAVA
        • 5
          Interface Driven API
        • 1
          Easy to setup
        CONS OF GUAVA
          Be the first to leave a con

          related guava posts

          Prisma logo

          Prisma

          1K
          927
          54
          Modern Database Access for TypeScript & Node.js
          1K
          927
          + 1
          54
          PROS OF PRISMA
          • 12
            Type-safe database access
          • 10
            Open Source
          • 8
            Auto-generated query builder
          • 6
            Supports multible database systems
          • 6
            Increases confidence during development
          • 4
            Built specifically for Postgres and TypeScript
          • 4
            Productive application development
          • 2
            Supports multible RDBMSs
          • 2
            Robust migrations system
          CONS OF PRISMA
          • 2
            Doesn't support downward/back migrations
          • 1
            Doesn't support JSONB
          • 1
            Do not support JSONB
          • 1
            Mutation of JSON is really confusing
          • 1
            Do not support JSONB

          related Prisma posts

          Divine Bawa
          at PayHub Ghana Limited · | 16 upvotes · 483.1K views

          I just finished a web app meant for a business that offers training programs for certain professional courses. I chose this stack to test out my skills in graphql and react. I used Node.js , GraphQL , MySQL for the #Backend utilizing Prisma as a database interface for MySQL to provide CRUD APIs and graphql-yoga as a server. For the #frontend I chose React, styled-components for styling, Next.js for routing and SSR and Apollo for data management. I really liked the outcome and I will definitely use this stack in future projects.

          See more
          Collins Ogbuzuru
          Front-end dev at Evolve credit · | 11 upvotes · 25.6K views
          Shared insights
          on
          GraphQLGraphQLPrismaPrismaAWS LambdaAWS Lambda

          We are starting to build one shirt data logic, structure and as an online clothing store we believe good ux and ui is a goal to drive a lot of click through. The problem is, how do we fetch data and how do we abstract the gap between the Front-end devs and backend-devs as we are just two in the technical unit. We decided to go for GraphQL as our application-layer tool and Prisma for our database-layer abstracter.

          Reasons :

          GraphQL :

          1. GraphQL makes fetching of data less painful and organised.

          2. GraphQL gives you 100% assurance on data you getting back as opposed to the Rest design .

          3. GraphQL comes with a bunch of real-time functionality in form of. subscriptions and finally because we are using React (GraphQL is not React demanding, it's doesn't require a specific framework, language or tool, but it definitely makes react apps fly )

          Prisma :

          1. Writing revolvers can be fun, but imagine writing revolvers nested deep down, curry braces flying around. This is sure a welcome note to bugs and as a small team we need to focus more on what that matters more. Prisma generates this necessary CRUD resolves, mutations and subscription out of the box.

          2. We don't really have much budget at the moment so we are going to run our logic in a scalable cheap and cost effective cloud environment. Oh! It's AWS Lambda and deploying our schema to Lambda is our best bet to minimize cost and same time scale.

          We are still at development stage and I believe, working on this start up will increase my dev knowledge. Off for Lunch :)

          See more
          SQLAlchemy logo

          SQLAlchemy

          948
          498
          7
          The Python SQL Toolkit and Object Relational Mapper
          948
          498
          + 1
          7
          PROS OF SQLALCHEMY
          • 7
            Open Source
          CONS OF SQLALCHEMY
          • 2
            Documentation

          related SQLAlchemy posts

          Hello everybody! I want to create an easy to use website (and simplified) builder. Users create a site, add their domain and edit Pages inside an Admin Area inside predefined "Blocks" like with Wagtail.

          There should be several default templates/themes and layouts. Choosing a different theme might change both the layout and styling. And I'm looking for SSR or SSG with a focus on the end-user's Page performance.

          Current Stack:

          • GraphQL for the dynamic part (for example data to Pricing might not be required on the homepage, or images might go into gallery in one theme, and on the homepage in another theme)

          • FastAPI and SQLAlchemy to store Data. I have prior experience with Wagtail and Django and want to stay with Python and learn Fastapi

          • NGINX to handle domain-specific things (the how is not yet refined)

          I want a scalable architecture and especially a fast frontend. I'm tending to use SvelteKit, but I'm afraid that the dynamic part won't make me happy after having hundreds of sites, as the bundler cannot load themes dynamically. sveltekit - dynamic import

          I want to handle the scenario: Admin-User chooses a theme and other options for the site (domain) and the End-User Frontend/Session/Cookie will have to fetch and store data about the theme and load subsequent calls to prerendered sites.

          Also the "hundreds of sites" might not be all covered by 5 Themes, because users may purchase a custom-made theme, and I would have to manage one big project having lots of different Styleguides and flows. I even thought of statically building the site whenever the user makes a change, maybe using Hugo (or VitePress?). Then I would have to take more care with the page recreation and it would be easily routable instead of nesting every component with logic in the frontend... I think. But this I haven't thought through yet.

          Can anyone please help?

          See more
          Django Stars
          Developer at Django Stars · | 3 upvotes · 224K views

          Merging Django ORM with SQLAlchemy for Easier Data Analysis (Video Inside)

          Development of products with Django framework is usually easy and straightforward; great documentation, many tools out of the box, plenty of open source libraries and big community. Django ORM takes full control about SQL layer protecting you from mistakes, and underlying details of queries so you can spend more time on designing and building your application structure in Python code. However, sometimes such behavior may hurt - for example, when you’re building a project related to data analysis. Building advanced queries with Django is not very easy; it’s hard to read (in Python) and hard to understand what’s going on in SQL-level without logging or printing generated SQL queries somewhere. Moreover, such queries could not be efficient enough, so this will hit you back when you load more data into DB to play with. In one moment, you can find yourself doing too much raw SQL through Django cursor, and this is the moment when you should do a break and take a look on another interesting tool, which is placed right between ORM layer and the layer of raw SQL queries.

          See more
          Sequelize logo

          Sequelize

          861
          1.4K
          142
          Easy-to-use multi SQL dialect ORM for Node.js
          861
          1.4K
          + 1
          142
          PROS OF SEQUELIZE
          • 42
            Good ORM for node.js
          • 31
            Easy setup
          • 21
            Support MySQL & MariaDB, PostgreSQL, MSSQL, Sqlite
          • 14
            Open source
          • 13
            Free
          • 11
            Promise Based
          • 4
            Recommend for mongoose users
          • 3
            Typescript
          • 3
            Atrocious documentation, buggy, issues closed by bots
          CONS OF SEQUELIZE
          • 30
            Docs are awful
          • 10
            Relations can be confusing

          related Sequelize posts

          Dieudonné ALLOGNON
          Junior Fullstack Developer · | 5 upvotes · 327K views

          Hey! I am actually in internship and have an app to create for my structure. It will be an intern app which will allow crud dashboard actions with some data provided by the use of an API of one of the structure partner and make a correspondence to data contained in a private database. Since it's an intern app, I thought about Electron for a desktop app because I did a lot of web with Laravel and the structure goes more for the desktop app. But it will be my first occasion working with this tech.

          Is Electron a good choice? Wich ORM should be more complete and adapted to this between Sequelize and TypeORM? (Database will be MySQL) Some charts will be displayed in the app. Is there a library (preferably without jQuery) that suits this stack?

          Thank you !

          See more
          Vyshnav KPI
          Application Developer at KPI suite tech · | 4 upvotes · 126.1K views
          Shared insights
          on
          SequelizeSequelizePrismaPrisma

          Can you help me with the following:

          1. What additional functionality is present in Prisma when compared with Sequelize?
          2. Is getter and setter method available in Prisma? If then please provide any reference or resource.
          3. Is Hooks, hierarchy present in Prisma?
          See more