Security News
The Unpaid Backbone of Open Source: Solo Maintainers Face Increasing Security Demands
Solo open source maintainers face burnout and security challenges, with 60% unpaid and 60% considering quitting.
@krishnapawar/kp-mysql-models
Advanced tools
The `kp-mysql-models` library simplifies MySQL database interaction, streamlining tasks such as creating, inserting, updating, and deleting records, as well as handling complex queries like joins, pagination, and conditional operations. By offering an int
The
kp-mysql-models
is a mysql query builder library that simplifies interactions with MySQL databases. It streamlines tasks such as creating, inserting, updating, and deleting records, and handles complex operations like joins, pagination, and conditionals. Its intuitive and efficient approach can greatly expedite development, saving both time and effort.
npm i kp-mysql-models
npm i @krishnapawar/kp-mysql-models
import all method.
const {
setDBConnection,
get,
first,
save,
create,
update,
dbJoin,
dbWith,
} = require("kp-mysql-models");
first you have to setup mysql connection call setBDConnection() method to connect database with lib.
var mysql = require("mysql");
var pool = mysql.createPool({
connectionLimit: 10,
host: "localhost",
user: "root",
password: "",
database: "test",
});
setDBConnection(pool);
after that use (call) all methods like helper function in you code
Somme important methods
Exmaples
first method for geting single data
const data = await first({
table: "users",
select: ["id", "first_name", "last_name"],
limit: 10,
latest: "id",
whereNotIn: {
id: [1, 1221],
},
whereIs: {
last_name: "NULL",
},
where:{
id:1
}
});
get methods
const data = await get({
table: "users",
select: ["id", "first_name", "last_name"],
limit: 10,
latest: "id",
whereNotIn: {
id: [1, 1221],
},
whereIs: {
last_name: "NULL",
},
});
we can make dyanamic pagination with key word (pagination:1) 1 is page No. we can set page limit by (limit:10) key word 10 is 10 data per page
const data = await get({
table: "users",
limit: 10,
pagination: 1,
});
using with() method using with first method to fetch data in specific variable in object
const data = await first({
table: "users",
select: ["id", "first_name", "last_name"],
with: {
doctor: {
table: "appointments",
limit: 2,
select: ["id", "user_id"],
connect: {
user_id: "id",
},
},
clinic: {
table: "appointments",
limit: 2,
select: ["id", "user_id"],
connect: {
doctor_id: "id",
},
},
},
where: {
id: 585,
},
});
using with() method using with get method to fetch data in specific variable in object
const data = await get({
table: "users",
select: ["id", "created_by_id", "first_name", "last_name"],
with: {
doctor: {
table: "appointments",
limit: 2,
select: ["id", "user_id"],
connect: {
user_id: "id",
},
},
clinic: {
table: "appointments",
limit: 2,
select: ["id", "user_id"],
connect: {
doctor_id: "id",
},
},
},
where: {
created_by_id: "1",
},
});
dbJoin for using mysql all types join
let page = req.query.page;
const data = await dbJoin({
table: "users",
limit: 10,
select: [
"users.id as uId",
"appointments.id",
"users.first_name",
"lab.first_name as lab_name",
],
latest: "appointments.id",
join: [
{
type: "hasOne",
table: "appointments",
on: {
"users.id": "appointments.patient_id",
},
},
{
type: "belongsTo",
table: "users lab",
on: {
"lab.id": "appointments.user_id",
},
},
],
where: {
"users.id": 1122,
},
pagination: page,
});
you can also use for this method for join mutipal table
const data = await dbWith({
table: "users",
limit: 10,
select: [
"users.id as uId",
"appointments.id",
"users.first_name",
"lab.first_name as lab_name",
],
latest: "appointments.id",
with: {
hasOne: [
{
table: "appointments",
on: {
"users.id": "appointments.patient_id",
},
},
{
table: "users clinic",
on: {
"clinic.id": "appointments.clinic_id",
},
},
],
belongsTo: [
{
table: "users lab",
on: {
"lab.id": "appointments.user_id",
},
},
],
},
where: {
"users.id": 1122,
},
pagination: page,
});
create method using for create data
const data = await create({
table: "users",
elements: {
first_name: "ram",
last_name: "ji",
}
});
update method using for updating data
const dataj = await update({
table: "users",
elements: {
first_name: "ram",
last_name: "ji",
},
where: {
id: 1223,
}
});
save method using for create or updating data
const dataj = await save({
table: "users",
elements: {
first_name: "ram",
last_name: "ji",
},
// where: {
// id: 1223,
// },
});
using your modele class by extendes BaseModels class for Example
const { BaseModels } = require("kp-mysql-models");
const { pool } =require("./db");
class User extends BaseModels{
constructor(){
super();
this._table="users";
this._connection=pool;
}
}
module.exports= User;
You can access all methods after make User class object for Example
let user = new User;
let data = await user.first();
let data = await user.get();
We can use soft delete as well by using BaseModels class for Example
let user = new User;
//for soft deleteing data
let data = await user.trashed({
where: {
id: 585,
}
});
//for soft deleteing restoring data
let data = await user.restore({
where: {
id: 585,
}
});
//for fetch soft deleted data useing onlyTrashed:true;
let data = await user.first({
onlyTrashed:true,
where: {
id: 585,
}
});
let data = await user.get({ onlyTrashed:true });
or you can use same like abow example.
let data = await user.get({
select: ["id", "firstname", "lastname"],
with: {
doctor: {
table: "appointments",
limit: 2,
select: ["id", "user_id"],
connect: {
user_id: "id",
},
},
clinic: {
table: "appointments",
limit: 2,
select: ["id", "user_id"],
connect: {
doctor_id: "id",
},
},
},
where: {
id: 585,
},
});
Some Important methods that You can also use,
Some Important Key Words that can help in abow methods,
table,
select,
elements,
latest,
limit,
pagination,
with,
connect,
join,
dbWith,
hasOne,
belongsTo,
where,
whereOr,
whereIn,
whereNotIn,
whereIs,
whereRaw,
on,
onOr,
onIn,
onNotIn,
onIs,
onRaw,
onlyTrashed,
some usefull method that can help with that method
where: {
id: 1223,
}
*********************************
whereOr: {
id: 1223,
}
*********************************
whereIn: {
id: [1, 1221],
},
*********************************
whereNotIn: {
id: [1, 1221],
},
*********************************
whereIs: {
last_name: "NULL",
},
*********************************
whereIsNot: {
last_name: "NULL",
},
*********************************
whereRaw:"name='mohan' and age=30 "
on: {
id: 1223,
}
*********************************
onOr: {
id: 1223,
}
*********************************
onIn: {
id: [1, 1221],
},
*********************************
onNotIn: {
id: [1, 1221],
},
*********************************
onIs: {
last_name: "NULL",
},
*********************************
onIsNot: {
last_name: "NULL",
},
*********************************
onRaw:"name='mohan' and age=30 "
FAQs
The `kp-mysql-models` library simplifies MySQL database interaction, streamlining tasks such as creating, inserting, updating, and deleting records, as well as handling complex queries like joins, pagination, and conditional operations. By offering an int
The npm package @krishnapawar/kp-mysql-models receives a total of 9 weekly downloads. As such, @krishnapawar/kp-mysql-models popularity was classified as not popular.
We found that @krishnapawar/kp-mysql-models demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
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.
Security News
Solo open source maintainers face burnout and security challenges, with 60% unpaid and 60% considering quitting.
Security News
License exceptions modify the terms of open source licenses, impacting how software can be used, modified, and distributed. Developers should be aware of the legal implications of these exceptions.
Security News
A developer is accusing Tencent of violating the GPL by modifying a Python utility and changing its license to BSD, highlighting the importance of copyleft compliance.