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

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

代码我就不看了 直接给你找段类似的

拷下以前写的论文中部分

232 使用JDBC的一般流程

加载某个数据库的驱动(Driver类)

通常使用ClassforName(“驱动的类名“);

连接数据库

Connection con = DriverManagergetConnection(url,username,password);

得到会话

Statement stmt = concreateStatement();

执行 *** 作

Result rs = stmtexecuteQuery(“SQL查询语句”);

5 处理结果

while(rsnext()){

String col1 = rsgetString(1);

……

}

XxxDao接口的设计

XxxDao是数据持久化层对数据库进行 *** 作的接口。所有Service层对数据库的 *** 作都是通过调用DAO层相应的XxxDao接口中的方法来实现。以AdminDao为例说明XxxDao接口是如何定义的:

AdminDaojava

public interface AdminDao {

/ 登陆验证,验证指定管理理ID和密码的记录是否存在 /

public Admin getAdminByIdAndPswd(String adminId, String adminPswd);

/此接口的中其他方法省略/

//其他方法声明的代码省略

}

说明:

XxxDao接口总是被相应的XxxDaoJdbcImpl类实现,通过相应方法的重写达到具体的数据 *** 作。

XxxDao接口实现类XxxDaoJdbcImpl的设计

XxxDaoJdbcImpl是XxxDao接口的实现类,该实现类中通过对接口方法的重写,来达到对特定数据表的增删改查等 *** 作。以AdminDaoJdbcImpl为例来说明是如何进行对数据库表的 *** 作,具体 *** 作说明见代码注释:

AdminDaoJdbcImpljava

public class AdminDaoJdbcImpl implements AdminDao {

/查询指定用户ID和密码的记录是否存在。若存在返回保存此记录的对象/

public Admin getAdminByIdAndPswd(String adminId, String adminPswd) {

/调用utils包中的公共数据库连接类DatabaseConn的静态方法getConnection() 取得指定数据库的连接。/

Connection conn = DatabaseConngetConnection();

try {

/创建(MySql)数据库查询语句/

String sql = "select from t_admin where ADMIN_ID= and ADMIN_PSWD= and STATE='1'";

/ 表示预编译的 SQL 语句的对象。SQL 语句被预编译并存储在 PreparedStatement 对象中,然后可以使用此对象多次高效地执行该语 句。/

PreparedStatement prep = connprepareStatement(sql);

/数字1代表第一个问号,表示用实参adminId给sql中的第一个问号赋值。 下一句类同。在这里必须注意实参的类型和数据库中数据类型的匹配。在 这里实参String类型对应于数据库中的varchar()。/

prepsetString(1, adminId);

prepsetString(2, adminPswd);

/在此 PreparedStatement 对象中执行 SQL 查询,并返回该查询生成的 ResultSet 对象。不会返回 null。ResultSet 本身是一个interface 。 /

ResultSet rs = prepexecuteQuery();

/如果结果集中有值,表示用户输入的管理理ID和密码是有效的,这样的 记录存在。/

if (rsnext()) {

// 先把信息取出来,并实例化一个Admin对象。

Admin admin = new Admin();

adminsetAdminId(adminId);

adminsetAdminPswd(adminPswd);

adminsetAdminName(rsgetString("ADMIN_NAME"));

adminsetLastLoginTime(rsgetTimestamp("LASTLOGIN_TIME"));

adminsetLastLoginMes(rsgetString("LASTLOGIN_MES"));

adminsetAdminDesc(rsgetString("ADMIN_DESC"));

/关闭ResultSet/

rsclose();

/关闭PreparedStatement /

prepclose();

// 修改登陆时间,t_admin表中存储着用户最近一次登陆的时间

String updateLoginTime = "update t_admin set LASTLOGIN_TIME= where ADMIN_ID= ";

PreparedStatement updatePrep = conprepareStatement(updateLoginTime);

updatePrepsetTimestamp(1, new Timestamp(new javautilDate()

getTime()));

updatePrepsetString(2, adminId);

updatePrepexecuteUpdate();

updatePrepclose();

// 返回

return admin;

} else {

/如果结果集中没有值,表示用户输入的ID密码不正确。

关闭ResultSet,关闭PreparedStatement ,程序返回null。/

rsclose();

prepclose();

return null;

}

} catch (Exception e) {

eprintStackTrace();

} finally {

/在程序执行return返回前,finally语句会被执行,在这里执行必须的一 步 *** 作-关闭数据库连接。即使有异常抛出,finally{}语句照样能执行, 保证数据库连接可以安全释放,不会造成数据库出现其它数据异常等问 题。/

DatabaseConncloseConnection(conn);

}

return null;

}

/AdminDao接口中的其他方法的实现/

//其他方法的实现代码省略

}

说明:

整个对数据库 *** 作的过程就是:取得数据库连接--〉创建Sql语句--〉创建PreparedStatement 语句--〉对语句中的‘?’进行赋值--〉执行executeX() *** 作,获得结果放入ResultSet中--〉根据需求从ResultSet中获得需要的结果-->关闭ResultSet-->关闭PreparedStatement --〉断开数据库连接--〉结果返回。

在Java中,获得ResultSet的总行数的方法有以下几种。

第一种:利用ResultSet的getRow方法来获得ResultSet的总行数

Statement stmt = concreateStatement(ResultSetTYPE_SCROLL_INSENSITIVE,ResultSetCONCUR_UPDATABLE);

ResultSet rset = stmtexecuteQuery("select from yourTableName");

rsetlast();

int rowCount = rsetgetRow(); //获得ResultSet的总行数

第二种:利用循环ResultSet的元素来获得ResultSet的总行数

ResultSet rset = stmtexecuteQuery("select from yourTableName");

int rowCount = 0;

while(rsetnext()) {

rowCount++;}rowCount就是ResultSet的总行数。

(1)首先使用last()方法,将数据库游标定位到记录集的最后一行。

(2)使用getRow()方法,返回记录集最后一行的行索引。该索引就等于记录集所包含记录的个数,也就是记录集的行数。getRow()方法是在JDBC API 20中才定义的,在JDBC API 10中没有这个方法。

以上就是关于哪位大侠能给这段Java语言加上注释,谢谢!再能对程序的功能分析、参数的选择依据给出分析就好了。全部的内容,包括:哪位大侠能给这段Java语言加上注释,谢谢!再能对程序的功能分析、参数的选择依据给出分析就好了。、在Java中,如何通过在数据库得到的结果集得到表的列数和行数、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10089255.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存