用策略模式对数据库的增删改操作
2008-04-23 15:20
417 查看
这是前一阵写的篇文章,不知道为什么今天登上来没有了,郁闷了好半天,只好重发一遍了。。。。
DataBaseContext
package com;
import java.util.Map;
public class DataBaseContext ...{
DataBaseSuper dbs;
public void setOperate(DataBaseSuper dbs)...{
this.dbs=dbs;
}
public void excuteOperate()...{
this.dbs.operate();
}
}
DataBaseSuper
package com;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.util.Map;
import java.util.Iterator;
import java.util.Map.Entry;
public abstract class DataBaseSuper ...{
Connection conn;
Statement stmt;
public void openDB() throws Exception...{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url =
"jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=lesson";
String user = "sa";
String password = "123";
conn = DriverManager.getConnection(url, user, password);
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
}
public void closeDB() throws Exception...{
stmt.close();
conn.close();
}
public abstract void operate();
}
class Insert extends DataBaseSuper...{
Map map;
public Insert(Map map)...{
this.map=map;
}
public void operate()...{
try ...{
openDB();
String s1="";
String s2="";
Iterator iterator=map.entrySet().iterator();
while(iterator.hasNext())...{
Map.Entry entry= (Map.Entry)iterator.next();
String key=(String)entry.getKey();
String value=(String)entry.getValue();
s1+=key+",";
s2+="'"+value+"'"+",";
}
s1=s1.substring(0,s1.length()-1);
s2=s2.substring(0,s2.length()-1);
String sql="insert into test("+s1+") values("+s2+")";
stmt.executeUpdate(sql);
closeDB();
}
catch (Exception ex) ...{
ex.printStackTrace();
}
}
}
class Delete extends DataBaseSuper...{
Map map;
public Delete(Map map)...{
this.map=map;
}
public void operate()...{
try ...{
openDB();
String s="";
Iterator iterator=map.entrySet().iterator();
while(iterator.hasNext())...{
Map.Entry entry= (Map.Entry)iterator.next();
String key=(String)entry.getKey();
String value=(String)entry.getValue();
s+=key+"='"+value+"' and ";
}
s=s.substring(0,s.length()-5);
String sql="delete from test where "+s;
stmt.executeUpdate(sql);
closeDB();
}
catch (Exception ex) ...{
ex.printStackTrace();
}
}
}
class Update extends DataBaseSuper...{
int id;
Map map;
public Update(int id,Map map)...{
this.id=id;
this.map=map;
}
public void operate()...{
try ...{
openDB();
String s="";
Iterator iterator=map.entrySet().iterator();
while(iterator.hasNext())...{
Map.Entry entry= (Map.Entry)iterator.next();
String key=(String)entry.getKey();
String value=(String)entry.getValue();
s+=key+"='"+value+"',";
}
s=s.substring(0,s.length()-1);
String sql="update test set "+s+" where id='"+id+"'";
stmt.executeUpdate(sql);
closeDB();
}
catch (Exception ex) ...{
ex.printStackTrace();
}
}
}
DataBaseContext
package com;
import java.util.Map;
public class DataBaseContext ...{
DataBaseSuper dbs;
public void setOperate(DataBaseSuper dbs)...{
this.dbs=dbs;
}
public void excuteOperate()...{
this.dbs.operate();
}
}
DataBaseSuper
package com;
import java.sql.Connection;
import java.sql.Statement;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.util.Map;
import java.util.Iterator;
import java.util.Map.Entry;
public abstract class DataBaseSuper ...{
Connection conn;
Statement stmt;
public void openDB() throws Exception...{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url =
"jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=lesson";
String user = "sa";
String password = "123";
conn = DriverManager.getConnection(url, user, password);
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
}
public void closeDB() throws Exception...{
stmt.close();
conn.close();
}
public abstract void operate();
}
class Insert extends DataBaseSuper...{
Map map;
public Insert(Map map)...{
this.map=map;
}
public void operate()...{
try ...{
openDB();
String s1="";
String s2="";
Iterator iterator=map.entrySet().iterator();
while(iterator.hasNext())...{
Map.Entry entry= (Map.Entry)iterator.next();
String key=(String)entry.getKey();
String value=(String)entry.getValue();
s1+=key+",";
s2+="'"+value+"'"+",";
}
s1=s1.substring(0,s1.length()-1);
s2=s2.substring(0,s2.length()-1);
String sql="insert into test("+s1+") values("+s2+")";
stmt.executeUpdate(sql);
closeDB();
}
catch (Exception ex) ...{
ex.printStackTrace();
}
}
}
class Delete extends DataBaseSuper...{
Map map;
public Delete(Map map)...{
this.map=map;
}
public void operate()...{
try ...{
openDB();
String s="";
Iterator iterator=map.entrySet().iterator();
while(iterator.hasNext())...{
Map.Entry entry= (Map.Entry)iterator.next();
String key=(String)entry.getKey();
String value=(String)entry.getValue();
s+=key+"='"+value+"' and ";
}
s=s.substring(0,s.length()-5);
String sql="delete from test where "+s;
stmt.executeUpdate(sql);
closeDB();
}
catch (Exception ex) ...{
ex.printStackTrace();
}
}
}
class Update extends DataBaseSuper...{
int id;
Map map;
public Update(int id,Map map)...{
this.id=id;
this.map=map;
}
public void operate()...{
try ...{
openDB();
String s="";
Iterator iterator=map.entrySet().iterator();
while(iterator.hasNext())...{
Map.Entry entry= (Map.Entry)iterator.next();
String key=(String)entry.getKey();
String value=(String)entry.getValue();
s+=key+"='"+value+"',";
}
s=s.substring(0,s.length()-1);
String sql="update test set "+s+" where id='"+id+"'";
stmt.executeUpdate(sql);
closeDB();
}
catch (Exception ex) ...{
ex.printStackTrace();
}
}
}
相关文章推荐
- 09月14日学习杂记(用两种模式操作数据库[模板模式与策略模式])
- java 使用策略模式操作JDBC数据库
- Yii 框架里数据库操作详解-[增加、查询、更新、删除的方法 'AR模式'](转)
- mysql常用基础操作语法(二)~~对表的增删改操作【命令行模式】
- JAVA操作数据库方式与设计模式应用-Java基础-Java-编程开发
- QueryRunner 核心运行类;在一般情况下如果执行CRUD的操作; 使用核心类QueryRunner 对数据库进行 增删改
- hibernate操作数据库遇到问题的时候检查主键生成策略
- Yii数据库操作增删改查-[增加\查询\更新\删除 AR模式]
- jdbc数据库操作(二)单例模式
- Yii 框架里数据库操作详解-[增加、查询、更新、删除的方法 'AR模式']
- Jquery easyui开启行编辑模式增删改操作
- .NET数据库增删改操作及批量处理
- MySQL数据库学习笔记(八)----JDBC入门及简单增删改数据库的操作
- Yii 框架里数据库操作详解-[增加、查询、更新、删除的方法 'AR模式']
- JFina连接数据库(mysql)并执行增删改操作+jsp(vue.js)
- JAVA中操作数据库方式与设计模式的应用(文章地址整理)
- Java中Dao模式中两种Dao的数据库操作(BaseDao的写法)
- Yii 框架里数据库操作详解-[增加、查询、更新、删除的方法 'AR模式']
- JAVA中数据库操作的各种方式与设计模式的应用(转载)希望能对网友们有用
- JAVA操作数据库方式与设计模式应用