Skip to content
Toggle navigation
Projects
Groups
Snippets
Help
public
/
sequelize
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
不要怂,就是干,撸起袖子干!
Commit 8d3e2253
authored
Jul 25, 2010
by
Sascha Depold
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
moved queries to a special method
1 parent
323c472d
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
59 additions
and
36 deletions
src/Sequelize.js
src/SequelizeHelper.js
src/SequelizeTable.js
src/Sequelize.js
View file @
8d3e225
...
@@ -19,7 +19,30 @@ var classMethods = {
...
@@ -19,7 +19,30 @@ var classMethods = {
switch
(
command
)
{
switch
(
command
)
{
case
'create'
:
case
'create'
:
query
=
"CREATE TABLE IF NOT EXISTS %{table} (%{fields})"
query
=
"CREATE TABLE IF NOT EXISTS %{table} (%{fields})"
break
;
break
case
'drop'
:
query
=
"DROP TABLE IF EXISTS %{table}"
break
case
'select'
:
query
=
"SELECT %{fields} FROM %{table}"
if
(
values
.
where
)
query
+=
" WHERE %{where}"
if
(
values
.
order
)
query
+=
" ORDER BY %{order}"
if
(
values
.
group
)
query
+=
" GROUP BY %{group}"
if
(
values
.
limit
)
{
if
(
values
.
offset
)
query
+=
" LIMIT %{offset}, %{limit}"
else
query
+=
" LIMIT %{limit}"
}
values
.
fields
=
values
.
fields
||
"*"
break
case
'insert'
:
query
=
"INSERT INTO %{table} (%{fields}) VALUES (%{values})"
break
case
'update'
:
query
=
"UPDATE %{table} SET %{values} WHERE id = %{id}"
break
case
'delete'
:
query
=
"DELETE FROM %{table} WHERE id = %{id} LIMIT 1"
break
}
}
return
SequelizeHelper
.
evaluateTemplate
(
query
,
values
)
return
SequelizeHelper
.
evaluateTemplate
(
query
,
values
)
}
}
...
...
src/SequelizeHelper.js
View file @
8d3e225
...
@@ -24,7 +24,6 @@ SequelizeHelper = {
...
@@ -24,7 +24,6 @@ SequelizeHelper = {
},
},
transformValueByDataType
:
function
(
value
,
dataType
)
{
transformValueByDataType
:
function
(
value
,
dataType
)
{
SequelizeHelper
.
log
(
Sequelize
)
var
result
=
null
var
result
=
null
switch
(
dataType
)
{
switch
(
dataType
)
{
case
Sequelize
.
INTEGER
:
case
Sequelize
.
INTEGER
:
...
...
src/SequelizeTable.js
View file @
8d3e225
...
@@ -15,41 +15,44 @@ SequelizeTable = function(sequelize, tableName, attributes) {
...
@@ -15,41 +15,44 @@ SequelizeTable = function(sequelize, tableName, attributes) {
sync
:
function
(
callback
)
{
sync
:
function
(
callback
)
{
var
fields
=
[
"id INT NOT NULL auto_increment PRIMARY KEY"
]
var
fields
=
[
"id INT NOT NULL auto_increment PRIMARY KEY"
]
SequelizeHelper
.
Hash
.
keys
(
attributes
).
forEach
(
function
(
name
)
{
fields
.
push
(
name
+
" "
+
attributes
[
name
])
})
SequelizeHelper
.
Hash
.
keys
(
attributes
).
forEach
(
function
(
name
)
{
fields
.
push
(
name
+
" "
+
attributes
[
name
])
})
var
query
=
"CREATE TABLE IF NOT EXISTS "
+
tableName
+
" ("
+
fields
.
join
(
', '
)
+
")"
sequelize
.
query
(
query
,
function
()
{
sequelize
.
query
(
if
(
callback
)
callback
(
table
)
Sequelize
.
sqlQueryFor
(
'create'
,
{
table
:
tableName
,
fields
:
fields
.
join
(
', '
)
}
),
})
function
()
{
if
(
callback
)
callback
(
table
)
}
)
},
},
drop
:
function
(
callback
)
{
drop
:
function
(
callback
)
{
var
query
=
"DROP TABLE IF EXISTS "
+
tableName
var
query
=
"DROP TABLE IF EXISTS "
+
tableName
sequelize
.
query
(
query
,
function
()
{
sequelize
.
query
(
if
(
callback
)
callback
(
table
)
Sequelize
.
sqlQueryFor
(
'drop'
,
{
table
:
tableName
}),
})
function
()
{
if
(
callback
)
callback
(
table
)
}
)
},
},
findAll
:
function
(
callback
)
{
findAll
:
function
(
callback
)
{
var
query
=
"SELECT * FROM "
+
tableName
sequelize
.
query
(
sequelize
.
query
(
query
,
function
(
result
)
{
Sequelize
.
sqlQueryFor
(
'select'
,
{
table
:
tableName
}),
var
objects
=
[]
function
(
result
)
{
result
.
forEach
(
function
(
resultSet
)
{
var
objects
=
[]
objects
.
push
(
table
.
sqlResultToObject
(
resultSet
))
})
result
.
forEach
(
function
(
resultSet
)
{
objects
.
push
(
table
.
sqlResultToObject
(
resultSet
))
})
if
(
callback
)
callback
(
objects
)
if
(
callback
)
callback
(
objects
)
})
}
)
},
},
find
:
function
(
conditions
,
callback
)
{
find
:
function
(
conditions
,
callback
)
{
var
query
=
SequelizeHelper
.
evaluateTemplate
(
sequelize
.
query
(
"SELECT * FROM %{table} WHERE %{conditions} ORDER BY id DESC LIMIT 1"
,
Sequelize
.
sqlQueryFor
(
'select'
,
{
{
table
:
tableName
,
conditions
:
SequelizeHelper
.
SQL
.
hashToWhereConditions
(
conditions
)
}
table
:
tableName
,
where
:
SequelizeHelper
.
SQL
.
hashToWhereConditions
(
conditions
),
order
:
'id DESC'
,
limit
:
1
}),
function
(
result
)
{
if
(
callback
)
callback
(
table
.
sqlResultToObject
(
result
[
0
]))
}
)
)
sequelize
.
query
(
query
,
function
(
result
)
{
if
(
callback
)
callback
(
table
.
sqlResultToObject
(
result
[
0
]))
})
},
},
sqlResultToObject
:
function
(
result
)
{
sqlResultToObject
:
function
(
result
)
{
...
@@ -73,17 +76,12 @@ SequelizeTable = function(sequelize, tableName, attributes) {
...
@@ -73,17 +76,12 @@ SequelizeTable = function(sequelize, tableName, attributes) {
save
:
function
(
callback
)
{
save
:
function
(
callback
)
{
var
query
=
null
var
query
=
null
var
self
=
this
var
self
=
this
if
(
this
.
id
==
null
)
{
if
(
this
.
id
==
null
)
query
=
SequelizeHelper
.
evaluateTemplate
(
query
=
Sequelize
.
sqlQueryFor
(
'insert'
,
{
"INSERT INTO %{table} (%{fields}) VALUES (%{values})"
,
table
:
this
.
tableName
,
fields
:
SequelizeHelper
.
SQL
.
fieldsForInsertQuery
(
this
),
values
:
SequelizeHelper
.
SQL
.
valuesForInsertQuery
(
this
)
{
table
:
this
.
tableName
,
fields
:
SequelizeHelper
.
SQL
.
fieldsForInsertQuery
(
this
),
values
:
SequelizeHelper
.
SQL
.
valuesForInsertQuery
(
this
)
}
})
)
else
}
else
{
query
=
Sequelize
.
sqlQueryFor
(
'update'
,
{
table
:
this
.
tableName
,
values
:
SequelizeHelper
.
SQL
.
valuesForUpdate
(
this
),
id
:
this
.
id
})
query
=
SequelizeHelper
.
evaluateTemplate
(
"UPDATE %{table} SET %{values} WHERE id = %{id}"
,
{
table
:
this
.
tableName
,
values
:
SequelizeHelper
.
SQL
.
valuesForUpdate
(
this
),
id
:
this
.
id
}
)
}
sequelize
.
query
(
query
,
function
()
{
sequelize
.
query
(
query
,
function
()
{
if
(
self
.
id
==
null
)
{
if
(
self
.
id
==
null
)
{
...
@@ -108,7 +106,10 @@ SequelizeTable = function(sequelize, tableName, attributes) {
...
@@ -108,7 +106,10 @@ SequelizeTable = function(sequelize, tableName, attributes) {
},
},
destroy
:
function
(
callback
)
{
destroy
:
function
(
callback
)
{
sequelize
.
query
(
Sequelize
.
sqlQueryFor
(
'delete'
,
{
table
:
this
.
tableName
,
id
:
this
.
id
}),
callback
)
}
}
}
}
...
...
Write
Preview
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment