PDA

View Full Version : SPG for mysql and java



ar.mahdian
چهارشنبه 14 اردیبهشت 1390, 18:28 عصر
سلام
اگه با برنامه نویسی دات نت و مخصوصاً سی شارپ درگیر بوده باشید٬ حتماً از برنامه Stored Procedure Generator (http://barnamenevis.org/showthread.php?87372-Stored-Procedure-Generator) جناب DelphiAssistant‏ (http://barnamenevis.org/member.php?1206-DelphiAssistant) خبر دارید و از اون استفاده کردید.
من که خیلی استفاده کردم.
خوبی این برنامه در کاهش خطاهای برنامه است. و باعث میشه تمرکز برنامه نویس روی ساختار اصلی برنامه منعکس بشه.
مدتها بود که فکر میکردم چرا برای mysql یه همچین چیزی نیست. سرچ کردم و یدونه که با php ساخته شده بود رو دیدم.
برم سر اصل مطلب:
من از برنامه موجود ایده گرفتم و نسخه مخصوص mysql و جاوا رو ساختم.
البته کامل تست نشده.
برنامه با جاوای 1٫6 و mysql 5٫5 ساخته شده.

خیلی ساده کدنویسی شده. (یه بچه دبستانی هم میفهمه چی به چیه)
پرتابل هست و فقط به جاوا نیاز داره
ظاهر و نحوه کارش شبیه برنامه جناب DelphiAssistant است.


من چندتا تقاضا دارم:
1-این تاپیک مخصوص درج نسخه های برنامه است پس از درج هرگونه پست مثل نظر٬ انتقاد٬ پیشنهاد و تشکر و … در این تاپیک خودداری کنید.(به علت شلوغی بیش از حد احتمالی). اگر صحبتی بود در تاپیک بحث در مورد SPG for mysql and java (http://barnamenevis.org/showthread.php?285688-%D8%A8%D8%AD%D8%AB-%D8%AF%D8%B1-%D9%85%D9%88%D8%B1%D8%AF-SPG-for-mysql-and-java) ذکر کنید.
2- از دوستانی که اقدام به اصلاح و یا تغییر برنامه میکنند خواهش میکنم سورس برنامه و فایل اجرایی و تغییرات انجام شده را درج نمایند.

نکته:
برای استفاده از کدهای تولید شده برنامه در برنامه خودتان به فایل DBObject نیاز هست که ضمیمه شده. که باید آن را در همان پکیج فایلهای کلاسی که برنامه تحویل شما میدهد درج کنید.
اگر فایل سورس را با نتبینز باز کنید٬ درون پکیج تست نمونه ای از نحوه کاربرد برنامه درج شده است.

69538
در انتها درخواست من از کسانی که این برنامه را مفید یافنتند ذکر صلوات بر محمد و ال محمد٬ جهت تعجیل در فرج امام زمان (ع) است.

موفق باشید.

ar.mahdian
جمعه 30 اردیبهشت 1390, 19:10 عصر
تصویری از محیط برنامه و کدهای تولید شده برای جدولی ساده:


DROP PROCEDURE IF EXISTS `test`.`sp_table1_SelectAll` ;
CREATE PROCEDURE `test`.`sp_table1_SelectAll` ()
SELECT
`id`,
`name`
FROM table1;


DROP PROCEDURE IF EXISTS `test`.`sp_table1_SelectRow` ;
CREATE PROCEDURE `test`.`sp_table1_SelectRow` (
IN `@id` int(11))
SELECT
`id`,
`name`
FROM table1
WHERE
`id` = `@id`;


DROP PROCEDURE IF EXISTS `test`.`sp_table1_InsertRow` ;
CREATE PROCEDURE `test`.`sp_table1_InsertRow` (
IN `@name` varchar(50))
INSERT INTO table1( `name`)
VALUES( `@name`);


DROP PROCEDURE IF EXISTS `test`.`sp_table1_Update` ;
CREATE PROCEDURE `test`.`sp_table1_Update` (
IN `@id` int(11),
IN `@name` varchar(50))
UPDATE table1
SET
`name` = `@name`
WHERE
`id` = `@id`;


DROP PROCEDURE IF EXISTS `test`.`sp_table1_DeleteRow` ;
CREATE PROCEDURE `test`.`sp_table1_DeleteRow` (
IN `@id` int(11))
DELETE FROM table1
WHERE
`id` = `@id`;




package test;

import java.sql.*;

public class table1{
public static ResultSet SelectAll() {
Connection con=null;
CallableStatement stmt = null;
ResultSet rs = null;
DbObject.init();
con = DbObject.getcon();
try {
stmt = con.prepareCall("{CALL sp_table1_SelectAll}");
rs = stmt.executeQuery();
} catch (SQLException ex) {
ex.printStackTrace();
}
return rs;
}
public static ResultSet SelectRow(java.lang.Integer id){
Connection con = null;
CallableStatement stmt = null;
ResultSet rs = null;
DbObject.init();
con = DbObject.getcon();
try {
stmt = con.prepareCall("{CALL sp_table1_SelectRow(?)}");
stmt.setInt(1,id);
rs = stmt.executeQuery();
} catch (SQLException ex) {
ex.printStackTrace();
}
return rs;
}
public static long InsertRow(java.lang.String name){
long insertedID = -1;
Connection con=null;
CallableStatement stmt = null;
ResultSet rs = null;
DbObject.init();
con = DbObject.getcon();
try {
stmt = con.prepareCall("{CALL sp_table1_InsertRow(?)}");
stmt.setString(1,name);
if(stmt.executeUpdate()==1){
rs = stmt.executeQuery("SELECT LAST_INSERT_ID()");
rs.next();
insertedID = rs.getLong(1);
}
} catch (SQLException ex) {
ex.printStackTrace();
}
return insertedID;
}
public static int UpdateRow(java.lang.Integer id, java.lang.String name){
int affectedRows = -1;
Connection con=null;
CallableStatement stmt = null;
DbObject.init();
con = DbObject.getcon();
try {
stmt = con.prepareCall("{CALL sp_table1_Update(?, ?)}");
stmt.setInt(1,id);
stmt.setString(2,name);
affectedRows = stmt.executeUpdate();
} catch (SQLException ex) {
ex.printStackTrace();
}
return affectedRows;
}
public static int DeleteRow(java.lang.Integer id){
int affectedRows = -1;
Connection con=null;
CallableStatement stmt = null;
DbObject.init();
con = DbObject.getcon();
try {
stmt = con.prepareCall("{CALL sp_table1_DeleteRow(?)}");
stmt.setInt(1,id);
affectedRows = stmt.executeUpdate();
} catch (SQLException ex) {
ex.printStackTrace();
}
return affectedRows;
}
}

L u k e
جمعه 30 اردیبهشت 1390, 19:21 عصر
خیلی وقت بود می خواستم یه همچین چیزی بسازم که شما کارمو راحت کردین
خیلی ممنون
ابزار بدرد بخوریه
به نظر من یه کاری کن که خودش entity و نحوه ی تبدیل resultset به اون entity رو بنویسه

ar.mahdian
یک شنبه 01 خرداد 1390, 06:27 صبح
خیلی وقت بود می خواستم یه همچین چیزی بسازم که شما کارمو راحت کردین
خیلی ممنون
ابزار بدرد بخوریه
به نظر من یه کاری کن که خودش entity و نحوه ی تبدیل resultset به اون entity رو بنویسه

خواهش میکنم
کد این برنامه در اختیار شماست
چنانچه تغییراتی را صلاح میدانید اعمال کنید و در اختیار دیگران قرار دهید