初學j2ee的人很有可能喜歡使用jsp來完成其網站的所有功能,因為其簡單方便易學,但是這樣的網站維護升級十分困難,並且和asp,PHP做的網站沒有什麼區別,顯示不出java的優點.MVC模式可以說是一個經典的模式,它將視圖,模式,控制三者分開,資料庫處理,邏輯處理全部放到後台,客戶端只負責顯示,維護和升級十分方便,並且由於和XML結合的很好,資料庫的移植等都十分方便,只需要修改配置文件,而不必修改源程序再重新編譯.再MVC模式中,一般用一個javaBean來存放數據,以實現對數據的封裝,下面是一個例子 public class UserBean
{
private String name=null;
private String pwd=null;
private int id;
public UserBean(String un,String up,int ui)
{
this.name=un;
this.pwd=up;
this.id=ui;
}
public UserBean()
{
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public String getPwd()
{
return pwd;
}
public void setPwd(String pwd)
{
this.pwd = pwd;
}
public int getId()
{
return id;
}
public void setId(int id)
{
this.id = id;
}
}
一個資料庫操作的文件實現對資料庫操作的封裝,注意防止SQL注入,例如
import java.sql.Connection; import java.sql.DriverManager;
import java.sql.PreparedStatement; import java.sql.ResultSet;
import java.sql.SQLException; import java.sql.Statement;
import java.util.ArrayList;
public class DBCon
{
private String DBDriver = "org.gjt.mm.mysql.Driver";
private String connStr ="jdbc:mysql://localhost/cdemo?user=root&password=243161193&useUnicode=true&characterEncoding=GBK";
private Connection conn = null;
private ResultSet rs = null;
private PreparedStatement ps=null;
public DBCon()
{
try
{
Class.forName(DBDriver);//sDBDriver);
}
catch(java.lang.ClassNotFoundException e)
{
System.err.println("conn(): " e.getMessage());
}
}
public boolean findUser(String name,String pwd)
{
boolean find=true;
try {
conn=DriverManager.getConnection(connStr);
//Statement stmt=conn.createStatement();
String sql="select*from fenye where name=? and pwd=?";
ps=conn.prepareStatement(sql);
ps.setString(1, name);
ps.setString(2, pwd);
rs=ps.executeQuery();
//rs=stmt.executeQuery(name);
if(rs.next())
find=true;
// TODO Auto-generated catch block
e.printStackTrace();
}finally
{
//關閉資源
close();
return find;
}
}
public ArrayList fenYe(int now,int size)
{
int start=(now-1)*size;
int end=now*size;
ArrayList al=new ArrayList();
try {
conn=DriverManager.getConnection(connStr);
//Statement stmt=conn.createStatement();
String sql="select*from fenye where id between ? and ?";
ps=conn.prepareStatement(sql);
ps.setInt(1, start);
ps.setInt(2, end);
rs=ps.executeQuery();
while(rs.next())
{
int id=rs.getInt(1);
String name=rs.getString(2);
String pwd=rs.getString(3);
UserBean ub=new UserBean(name,pwd,id);
al.add(ub);
}
}
catch (SQLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}finally
{
//關閉資源
close();
return al;
}
}
public int getSize()
{
int size=0;
try {
conn=DriverManager.getConnection(connStr);
//Statement stmt=conn.createStatement();
String sql="select count(*) from fenye";
ps=conn.prepareStatement(sql);
rs=ps.executeQuery();
if(rs.next())
size=rs.getInt(1);
}
catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally
{
//關閉資源
close();
return size;
}
}
public void close()
{
if(conn!=null)
try {
conn.close();
conn=null;
}
catch (SQLException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
if(ps!=null)
try {
ps.close();
ps=null;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(rs!=null)
{
try {
rs.close();
rs=null;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
[火星人 ] MVC模式之我的見解已經有696次圍觀