哪位大侠能给这段Java语言加上注释,谢谢!再能对程序的功能分析、参数的选择依据给出分析就好了。

public class PhoneDao {
private Connection conn = null;
DBConnect jdbc=new DBConnect();
jdbc.connection();
connection=jdbc.con
private PreparedStatement ps = null;
public PhoneDao() { }
public Vector UserLogin(){
Vector vlist=new Vector();
LoginForm form=new LoginForm();
String strsql="select * from t_yhxx";
try{
form.setYhyx(rs.getString(10));
form.setZwjs(rs.getString(11));
form.setZcrq(rs.getString(12));
form.setDlcs(rs.getInt(13));
form.setZhsj(rs.getString(14))
vlist.add(form);
}
db.close();

rs=db.exeSQL(str
form.setZsxm(rs.getString(6));
form.setYhnl(rs.getInt(7));
form.setYhxb(rs.getString(8));
sql);
while(rs.next())
{form = new LoginForm();

代码我就不看了 直接给你找段类似的
拷下以前写的论文中部分
2.3.2 使用JDBC的一般流程
加载某个数据库的驱动(Driver类)
通常使用Class.forName(“驱动的类名“);
连接数据库
Connection con = DriverManager.getConnection(url,username,password);
得到会话
Statement stmt = con.createStatement();
执行操作
Result rs = stmt.executeQuery(“SQL查询语句”);
5. 处理结果
while(rs.next()){
String col1 = rs.getString(1);
……
}

XxxDao接口的设计
XxxDao是数据持久化层对数据库进行操作的接口。所有Service层对数据库的操作都是通过调用DAO层相应的XxxDao接口中的方法来实现。以AdminDao为例说明XxxDao接口是如何定义的:
AdminDao.java
public interface AdminDao {
/** 登陆验证,验证指定管理理ID和密码的记录是否存在 */
public Admin getAdminByIdAndPswd(String adminId, String adminPswd);
/*此接口的中其他方法省略*/
//其他方法声明的代码省略...
}
说明:
XxxDao接口总是被相应的XxxDaoJdbcImpl类实现,通过相应方法的重写达到具体的数据操作。
XxxDao接口实现类XxxDaoJdbcImpl的设计
XxxDaoJdbcImpl是XxxDao接口的实现类,该实现类中通过对接口方法的重写,来达到对特定数据表的增删改查等操作。以AdminDaoJdbcImpl为例来说明是如何进行对数据库表的操作,具体操作说明见代码注释:
AdminDaoJdbcImpl.java
public class AdminDaoJdbcImpl implements AdminDao {
/**查询指定用户ID和密码的记录是否存在。若存在返回保存此记录的对象*/
public Admin getAdminByIdAndPswd(String adminId, String adminPswd) {
/*调用utils包中的公共数据库连接类DatabaseConn的静态方法getConnection() 取得指定数据库的连接。*/
Connection conn = DatabaseConn.getConnection();
try {
/*创建(MySql)数据库查询语句*/
String sql = "select * from t_admin where ADMIN_ID=? and ADMIN_PSWD=? and STATE='1'";
/* 表示预编译的 SQL 语句的对象。SQL 语句被预编译并存储在 PreparedStatement 对象中,然后可以使用此对象多次高效地执行该语 句。*/
PreparedStatement prep = conn.prepareStatement(sql);
/*数字1代表第一个问号,表示用实参adminId给sql中的第一个问号赋值。 下一句类同。在这里必须注意实参的类型和数据库中数据类型的匹配。在 这里实参String类型对应于数据库中的varchar()。*/
prep.setString(1, adminId);
prep.setString(2, adminPswd);
/*在此 PreparedStatement 对象中执行 SQL 查询,并返回该查询生成的 ResultSet 对象。不会返回 null。ResultSet 本身是一个interface 。 */
ResultSet rs = prep.executeQuery();
/*如果结果集中有值,表示用户输入的管理理ID和密码是有效的,这样的 记录存在。*/
if (rs.next()) {
// 先把信息取出来,并实例化一个Admin对象。
Admin admin = new Admin();
admin.setAdminId(adminId);
admin.setAdminPswd(adminPswd);
admin.setAdminName(rs.getString("ADMIN_NAME"));
admin.setLastLoginTime(rs.getTimestamp("LASTLOGIN_TIME"));
admin.setLastLoginMes(rs.getString("LASTLOGIN_MES"));
admin.setAdminDesc(rs.getString("ADMIN_DESC"));
/*关闭ResultSet*/
rs.close();
/*关闭PreparedStatement */
prep.close();
// 修改登陆时间,t_admin表中存储着用户最近一次登陆的时间
String updateLoginTime = "update t_admin set LASTLOGIN_TIME=? where ADMIN_ID=? ";
PreparedStatement updatePrep = con.prepareStatement(updateLoginTime);
updatePrep.setTimestamp(1, new Timestamp(new java.util.Date()
.getTime()));
updatePrep.setString(2, adminId);
updatePrep.executeUpdate();
updatePrep.close();
// 返回
return admin;
} else {
/*如果结果集中没有值,表示用户输入的ID密码不正确。
关闭ResultSet,关闭PreparedStatement ,程序返回null。*/
rs.close();
prep.close();
return null;
}
} catch (Exception e) {
e.printStackTrace();
} finally {
/*在程序执行return返回前,finally语句会被执行,在这里执行必须的一 步操作-关闭数据库连接。即使有异常抛出,finally{}语句照样能执行, 保证数据库连接可以安全释放,不会造成数据库出现其它数据异常等问 题。*/
DatabaseConn.closeConnection(conn);
}
return null;
}
/*AdminDao接口中的其他方法的实现*/
//其他方法的实现代码省略...
}
说明:
整个对数据库操作的过程就是:取得数据库连接--〉创建Sql语句--〉创建PreparedStatement 语句--〉对语句中的‘?’进行赋值--〉执行executeX() 操作,获得结果放入ResultSet中--〉根据需求从ResultSet中获得需要的结果-->关闭ResultSet-->关闭PreparedStatement --〉断开数据库连接--〉结果返回。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-10-14
一个封装的访问数据库的类。查询一个表,然后把查询的数据结果保存到LoginForm这个类里面。
不过这个程序写得不规范,问题很多,不值得学习。追问

能帮我修改一下吗?并能够具体分析一下程序的每一步吗,并对参数给出分析。

相似回答