初学j2ee的人很有可能喜欢使用jsp来完成其网站的所有功能,因为其简单方便易学,但是这样的网站维护升级十分困难,并且和asp,PHP做的网站没有什么区别,显示不出java的优点,
MVC模式之我的见解
。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;
}
catch (SQLException e)
{
// 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();
}
}
}
/*public static void main(String[] args)
{
DBCon d=new DBCon();
System.out.println(d.getSize());
ArrayList al=d.fenYe(1, 5);
if(al!=null)
{
for(int i=0;i<5;i++)
{
System.out.println(((UserBean)al.get(i)).getName());
}
}
}
*/
}