怎样自动生成学生学号??急急!!!!急

xdr_0911 2008-12-26 11:45:13
在管理员添加学生的时候自动产生学号,
学生有三部分组成:年级号 ,班级号+学号,
当我在选择好学生的年级,班级后,学号自动生成!!
...全文
1744 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
duanlifeng 2009-10-12
  • 打赏
  • 举报
回复
路过
sj2love0qh 2008-12-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jinhuiyu 的回复:]
得到年级和班级号,查询数据库,如果没有跟这个班级年级一样的就年级号+班级号+01,如果有的话就取出年级号班级号相同的最大的那个学号,把后两位+1。 具体实现应该花点心思。
[/Quote]
同意,就这样做啊。还有什么犹豫的,要不就+00001,随便你
1.在程序中查同年级,同班级的学号最大的,+1就是新生成的学号。
2.在sql中拼新学号,具体没有试,估计可能是个复杂sql。
dingzi 2008-12-29
  • 打赏
  • 举报
回复
好像比较简单啊!
具体实现方式是:
得到年级和班级后,传到一个自己编写的方法里自动生成学好。
核心思想是:
年级+班级+随机数(更具要求而定,甚至可以在随机数之前加上入学时间的年月日)
只要在需要学好的时候得到年级,班级,调用方法就可以轻松生成了!很好,很强大!
本人曾经使用过!如果还不懂可以留言!本人愿交流!
szzxm 2008-12-29
  • 打赏
  • 举报
回复
回帖是一种美德!传说每天回帖即可获得 10 分可用分!
lfeng287 2008-12-29
  • 打赏
  • 举报
回复
最后加时间戳new Date().getTime().
sb.append(new Date().getTime());

这样做不可取,虽然说实现起来很好,但是不适用。
现在学校的学号基本都是按照序号一路下来的,不是随机生成。
xdr_0911 2008-12-26
  • 打赏
  • 举报
回复
能教怎么样具体实现吗?
angel753 2008-12-26
  • 打赏
  • 举报
回复
同意一楼的说法!
success000 2008-12-26
  • 打赏
  • 举报
回复
up
jinhuiyu 2008-12-26
  • 打赏
  • 举报
回复
得到年级和班级号,查询数据库,如果没有跟这个班级年级一样的就年级号+班级号+01,如果有的话就取出年级号班级号相同的最大的那个学号,把后两位+1。 具体实现应该花点心思。
thomas.he 2008-12-26
  • 打赏
  • 举报
回复
唉!好像大家的方式都不是很好啊,想一想啊,年级号 ,班级号+学号那個是你要拿到的啊,那個是要變的啊,這樣你才有辦法去做的
凌霄野鹤 2008-12-26
  • 打赏
  • 举报
回复
LS说的是!
mwt_yan 2008-12-26
  • 打赏
  • 举报
回复
得到年级和班级号
StringBuffer sb=new StringBuffer();
sb.append(年级号);
sb.append(班级号);
最后加时间戳new Date().getTime().
sb.append(new Date().getTime());
不用去数据库查,保证唯一,这样影响性能 如果处理不好还会出错.
mwt_yan 2008-12-26
  • 打赏
  • 举报
回复
得到年级和班级号
最后加时间戳new Date().getTime().不用去数据库查,保证唯一,这样影响性能 如果处理不好还会出错.
凌霄野鹤 2008-12-26
  • 打赏
  • 举报
回复 1
代码如下:可以根据实际的更改,数据库链接的自己去写哈!

public class Test {

public static String getStuID() throws SQLException{
DbManager db=new DbManager();
String garde_id="",calss_id="",student_id="";
RowSet rs=db.executeQuery("select g.gid,c.cid from grade g,class c where g.gid='2008' and c.cid='002'");
while(rs.next()){
garde_id=rs.getString("gid");
calss_id=rs.getString("cid");
}

RowSet rs1=db.executeQuery("select max(id) from student");
while(rs1.next()){
int temp=Integer.parseInt(rs1.getString(1).substring(7, rs1.getString(1).length()));

student_id=garde_id+calss_id+(temp+1);
System.out.println(student_id);
}
return student_id;
}
public static void main(String[] args) {
try {
getStuID();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
凌霄野鹤 2008-12-26
  • 打赏
  • 举报
回复
汗!我给你写个算了
xdr_0911 2008-12-26
  • 打赏
  • 举报
回复
就是不会啊 帮帮我吧
凌霄野鹤 2008-12-26
  • 打赏
  • 举报
回复
这种问题还是先自己解决!不会先看书,不懂在问,我也是过来人!要学会多思考!

LZ是不是做毕业设计?

呵呵!
rhythmos 2008-12-26
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 xdr_0911 的回复:]
能教怎么样具体实现吗?
[/Quote]
你自己试试写写呗,数据表字段设置自动递增直接增过去然后补上传进来的前几位就可以了

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧