练习一:插入一个学生的四六级成绩:

//课后练习
public class task3 { //添加一条数据
@Test
public void testInsert()
{
int id=1;
Scanner scanner =new Scanner(System.in);
System.out.println("四季/六级");
int type=scanner.nextInt(); System.out.println("身份证号");
String idCard = scanner.next();
System.out.println("准考证号");
String examCard=scanner.next(); System.out.println("学生姓名:");
String name=scanner.next(); System.out.println("学生成绩:");
int grade=scanner.nextInt(); String sql="insert into examstudent(flowId,type,idCard,examCard,name,Grade)values(?,?,?,?,?,?)"; //
      int insertCount=update(sql,id++,type,idCard,examCard,name,grade); //根据返回值判断是否插入成功
if(insertCount>0)
{
System.out.println("插入成功");
}
else{
System.out.println("插入失败");
}
} //插入数据函数
public int update(String sql,Object ...args)
{
Connection conn=null;
PreparedStatement ps=null;
try {
conn=JDBCUtils.getConnction5(); ps=(PreparedStatement) conn.prepareStatement(sql);
for(int i=0;i<args.length;i++){
ps.setObject(i+1, args[i]);
} return ps.executeUpdate(); //返回影响了多少条数据
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
JDBCUtils.closeResource(conn, ps);
} return 0;
}
}

  

作业二:四六级成绩查询

@Test
public void queryWithId()
{
System.out.println("请选择您要输入的类型:");
System.out.println("a.准考证号");
System.out.println("b.身份证号");
Scanner scanner=new Scanner(System.in);
String slection =scanner.next();
if("a".equalsIgnoreCase(slection))
{
System.out.println("请输入注考证号:");
String examCard=scanner.next(); String sql="select flowId flowId,idCard IDCard,examCard examCard,name name,Grade grade from examstudent where examCard=?"; //为每个字段取别名,别名需要和Student对象中的数据类型一致
Student student=getInstance(Student.class, sql, examCard);
System.out.println(student); }else if("b".equalsIgnoreCase(slection))
{
System.out.println("请输入身份证号:");
String Idcard=scanner.next(); String sql="select flowId flowId,idCard IDCard,examCard examCard,name name,Grade grade from examstudent where examCard=?";
Student student=getInstance(Student.class, sql, Idcard); //调用通用查询接口
System.out.println(student);
}
else
{
System.out.println("您输入的数据有误,请重新输入!");
} } //通用查询的函数
public <T> T getInstance(Class<T> clazz,String sql,Object ...args){ Connection conn =null;
PreparedStatement ps=null;
ResultSet rs=null; try {
conn=JDBCUtils.getConnction5();
ps=(PreparedStatement) conn.prepareStatement(sql); for(int i=0;i<args.length;i++)
{
ps.setObject(i+1,args[i]);
} rs=ps.executeQuery(); ResultSetMetaData rsmd=(ResultSetMetaData) rs.getMetaData();
int columnCount=rsmd.getColumnCount(); if(rs.next()){
T t=clazz.newInstance(); //反射 for(int i=0;i<columnCount;i++){
Object columValue=rs.getObject(i+1);
String columnLable1=rsmd.getColumnLabel(i+1); java.lang.reflect.Field field=clazz.getDeclaredField(columnLable1);
field.setAccessible(true);
field.set(t,columValue);
} return t; }
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null; } }

  

最新文章

  1. 【日记】搭建一个node本地服务器
  2. windows下自动FTP的脚本
  3. jQuery判断网页中的id是否有重复的
  4. html php 重定向 跳转 刷新
  5. SharePoint 2013中规划企业搜索体系结构
  6. Bungie Interview with Halo3 Developer
  7. Android串口通信(基于Tiny6410平台)
  8. javaScript中with的用法
  9. tweenanim动画
  10. 【ASP.NET MVC】MVC概述
  11. webpack学习之路
  12. 用Laravel Sms实现 laravel短信验证码的发送
  13. vue 组件复用不刷新
  14. js判断是否安装某个android app,没有安装下载该应用(websocket通信,监听窗口失去焦点事件)
  15. 回调函数: 一定要在函数名前加上 CALLBACK,否则有可能引起内存崩溃!
  16. BZOJ.2597.[WC2007]剪刀石头布(费用流zkw)
  17. 劈配 [多省省选] [BZOJ5251] [网络流]
  18. 框架&amp;样式表
  19. Tomcat启动报错:[The configuration may be corrupt or incomplete]的解决方案
  20. 安装后没有IP

热门文章

  1. java继承实现的基本原理
  2. .NET Core开源Quartz.Net作业调度框架实战演练
  3. centos 分区挂载准备工作
  4. BFS --- 素数环
  5. Vue框架(一)——Vue导读、Vue实例(挂载点el、数据data、过滤器filters)、Vue指令(文本指令v-text、事件指令v-on、属性指令v-bind、表单指令v-model)
  6. C语言环境搭建
  7. python ---升级所有安装过的package
  8. java之mybatis之使用mybatis实现crud操作
  9. C# vb .net实现邮戳效果滤镜
  10. 利用jQuery-Word-Export导出word (含ECharts)