黑马程序员技术交流社区

标题: 一个月来单个程序最长的,大神来赐教 [打印本页]

作者: Kaweh.    时间: 2016-7-31 23:04
标题: 一个月来单个程序最长的,大神来赐教
  1. import java.io.FileWriter;
  2. import java.sql.Connection;
  3. import java.sql.PreparedStatement;
  4. import java.sql.ResultSet;
  5. import java.util.ArrayList;
  6. import java.util.HashMap;
  7. import java.util.Map;
  8. import java.util.Map.Entry;
  9. import java.util.Scanner;
  10. import java.util.Set;
  11. public class Test {
  12. public static void main(String[] args) throws Exception {
  13.         Scanner sc=new Scanner(System.in);
  14.         Scanner sc2=new Scanner(System.in);
  15.         //arrayList存储三个学生的信息
  16.         ArrayList<Person> list=new ArrayList<>();
  17.         for(int i=0;i<4;i++){
  18.                 System.out.println("请输入学生的姓名:");
  19.                 String name=sc.nextLine();
  20.               System.out.println("请输入学生的年龄:");
  21.                 int age=sc2.nextInt();
  22.                 System.out.println("请输入学生的性别:");
  23.                 String sex=sc.nextLine();
  24.                 System.out.println("请输入学生的专业:");
  25.                 String study=sc.nextLine();
  26.         list.add(new Person(name,age,sex,study));
  27.         }
  28. //    //循环遍历
  29.     for (Person p : list) {
  30.                 System.out.println(p);
  31.         }
  32.     for (int i = 0; i < list.size(); i++) {
  33.                 System.out.println(list.get(i));
  34.         }   
  35.     //获得数据库连接
  36.     Connection conn=MyJDBCUtils.getConnection();
  37.     PreparedStatement ps;
  38.     //创建操作数据库的对象
  39.     for (Person p : list) {
  40.              String sql="insert into Person(pname,psex,page,pstudy) values('"+p.getName()+"','"+p.getSex()+"','"+p.getAge()+"','"+p.getPstudy()+"'); ";
  41.               ps = conn.prepareStatement(sql);
  42.               ps.executeUpdate(sql);
  43.         }
  44.    // 查询各个学科的人数
  45.     String sql2="select count(*),pstudy from Person group by pstudy ";
  46.       ps = conn.prepareStatement(sql2);
  47.          ResultSet e= ps.executeQuery(sql2);
  48.          while(e.next()){
  49.                  System.out.print(e.getInt(1)+" ");
  50.                  System.out.print(e.getString(2)+"  ");
  51.                  System.out.println();
  52.          }
  53.          
  54.         //提示用户输入三个id号(已有的) 将年龄改为66
  55.    for(int i=0;i<3;i++){
  56.          System.out.println("请输入已经存在的pid");
  57.      int id=sc.nextInt();
  58.          String sql3="update Person set page=66 where pid='"+id+"'";
  59.          ps = conn.prepareStatement(sql3);
  60.          ps.executeUpdate(sql3);
  61.    }
  62.     //将姓名作为键值 将科目作为 值放入map集合中
  63.      Map<String,String> map=new HashMap<String, String>();
  64.      String sql4="select pname,pstudy from Person ";
  65.      ps=conn.prepareStatement(sql4);
  66.      ResultSet re = ps.executeQuery(sql4);
  67.      while(re.next()){
  68.              map.put(re.getString(1), re.getString(2));
  69.      }
  70.      //遍历双列集合
  71.      Set<String> set=map.keySet();
  72.      for (String s : set) {
  73.                 System.out.println(s+"=="+map.get(s));
  74.         }
  75.      Set<Entry<String,String>> set2= map.entrySet();
  76.      for (Entry<String, String> entry : set2) {
  77.                 System.out.println(entry.getKey()+"==="+entry.getValue());
  78.         }
  79.         //将表中的数据写入文件中
  80.     String sql5="select * from Person ";
  81.   ps=conn.prepareStatement(sql5);
  82.   ResultSet  re1 = ps.executeQuery(sql5);
  83.   FileWriter fw=new FileWriter("temp.txt");
  84.   while(re1.next()){
  85.     fw.write(re1.getString("pid")+"   ");
  86.     fw.write(re1.getString("pname")+"   ");
  87.     fw.write(re1.getString("psex")+"   ");
  88.     fw.write(re1.getInt("page")+"   ");
  89.     fw.write(re1.getString("pstudy")+"   \r\n");
  90.    
  91.   }
  92.   fw.close();
  93.   conn.close();
  94.   ps.close();
  95. }
  96. }
复制代码

作者: lxwo584bc    时间: 2016-8-2 20:04
我可说报错么




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2