第四题:
- package com.heima.text;
- import java.sql.Connection;
- import java.sql.PreparedStatement;
- import java.sql.ResultSet;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.Iterator;
- import java.util.Map;
- import java.util.Scanner;
- import java.util.Set;
- import org.junit.Test;
- /*
- *
- * map中有如下数据(电话号=套餐价格)
- 【13265477888=168,15241698745=11,13699989898=20,18986866666=120】
- 在IP为127.0.0.1数据库名为stdb,连接数据库的用户名和密码为admin 和 123456中有一个numinfo表 相关字段为(id,iphonenum,tcmoney)(15分)
- ① 将map中的手机号取出来打印在控制台上。(3分)
- ② 判断map中所有的手机号在numinfo表中是否存在如果存在则输出“该机主已登记” 如果查询不到则将该号码以及对应的套餐价格存入到numinfo表中
- (map中的数据不需要修改)(12分)
- * */
- public class Demo4 {
-
- @Test
- //首先遍历集合 获取集合中每一个健值 看是否包含在表中
- public void fun1() throws Exception{
- Map<String, Integer> m = new HashMap<>();
- ArrayList<String> al = new ArrayList<>();
-
- m.put("13265477888", 168);
- m.put("15241698745", 11);
- m.put("18986866666", 120);
- Set<String> keySet = m.keySet();
- Iterator<String> it = keySet.iterator();
- String[] strArr = new String[m.size()];
- int num = 0;
- while(it.hasNext()) {
- strArr[num++] = it.next();
- }
-
- Connection con = null;
- PreparedStatement pre = null;
- PreparedStatement pre2 = null;
- ResultSet rs = null;
- try {
- con = JdbcUtils.getConnection();
- String sql = "select * from numinfo";
- String sql2 = "insert into numinfo(iphonenum, tcmoney) values(?, ?)";
- pre = con.prepareStatement(sql);
- pre2 = con.prepareStatement(sql2);
-
- rs = pre.executeQuery();
- while(rs.next()) {
- al.add(rs.getString("iphonenum"));
- }
-
-
- for(int x = 0; x < strArr.length; x++) {
-
- if(!al.contains(strArr[x])) {
- pre2.setString(1, strArr[x]);
- pre2.setInt(2, m.get(strArr[x]));
- pre2.executeUpdate();
- }else {
- System.out.println(strArr[x] +"该机主已登记");
- }
- }
- }finally {
- if(rs != null) pre.close();
- if(pre != null) pre.close();
- if(pre2 != null) pre.close();
- if(con != null) con.close();
- }
- }
- @Test
- //向numinfo表中存储已有的数据 键盘录入的方式
- public void fun2() throws Exception{
- Connection con = null;
- PreparedStatement pre = null;
- Scanner sc = new Scanner(System.in);
- try {
- con = JdbcUtils.getConnection();
- String sql = "insert into numinfo values(?, ?, ?)";
- pre = con.prepareStatement(sql);
- for(int x = 0; x < 5; x++) {
- String line = sc.nextLine();
- String[] strArr = line.split(",");
- pre.setString(1, strArr[0]);
- pre.setString(2, strArr[1]);
- pre.setInt(3, Integer.parseInt(strArr[2]));
- pre.addBatch();
- }
- pre.executeBatch();
-
- }finally {
- sc.close();
- if(pre != null) pre.close();
- if(con != null) con.close();
-
- }
- }
- @Test
- //① 将map中的手机号取出来打印在控制台上。
- public void fun3() {
- Map<String, Integer> m = new HashMap<>();
- m.put("13265477888", 168);
- m.put("15241698745", 11);
- m.put("18986866666", 120);
- Set<String> keySet = m.keySet();
- Iterator<String> it = keySet.iterator();
- while(it.hasNext()) {
- System.out.println(it.next());
- }
- }
- }
复制代码 |