A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package datebase;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;

public class Demo02 {

        /*map中有如下数据(电话号=套餐价格)
        [13265477888=168,15241698745=11,13699989898=20,1898686666=120]
        在ip为127.0.0.1数据库名为stdb,连接数据库的用户名和密码为:admin和123456中有一个numinfo表相关字段为(id,iphonenum,tomoney)(15分)
        (1)将map中的手机号码取出来打印到控制台上(3分)
        (2)判断map中所有的手机号在numinfo表中是否存在存在则输出"该主机已登录"如果不存在将该号码及对应的套餐价格存入到numinfo表中.(12分)*/
        public static void main(String[] args) throws SQLException, ClassNotFoundException {
               
               
                //思路:拿着map中的电话号码,作为条件,传入到查询语句中,看看map中的电话号码在数据库中是否存在
                //如果能查出来,输出该主机已登录
                //如果不能查出来,则进行插入操作
               
                Map<String,Integer> map = new HashMap<String, Integer>();
                map.put("13265477888", 168);
                map.put("15241698745", 11);
                map.put("13699989898", 20);
                map.put("1898686666", 120);
                Class.forName("com.mysql.jdbc.Driver");
                String url = "jdbc:mysql://localhost:3306/gjp";
               
                // 查询操作
                Connection conn = DriverManager.getConnection(url, "root", "root");
                String sql = "select * from numinfo where iphonenum = ?";
                PreparedStatement ps = conn.prepareStatement(sql);
                //插入操作
                String sql2 = "insert into numinfo (iphonenum,tomoney) values (?,?)";
                PreparedStatement ps2 = conn.prepareStatement(sql2);
               
                //遍历Map的原因:我们要拿着map中的每一条数据到数据库中去查询,看这些数据在数据库中存在不存在,所以要得到map的每一条数据
               
               
                for(Map.Entry<String, Integer> entry:map.entrySet()){
                        String key = entry.getKey();     //遍历出来的key
                        Integer value = entry.getValue(); //遍历出来的value
                        System.out.println( key+ " = " +value);  
                        ps.setString(1, key);  // 将key作为条件传入第一个sql语句中去查询看看数据是否存在,如果返回的结果集为true ,表示有数据
                                               // 有数据则提醒主机已登录
                        ResultSet rs = ps.executeQuery();
                       
                        if(rs.next()){
                                System.out.println("这个主机已登录");
                        }else{
                                System.out.println("这个套餐不存在");
                    //如果不存在,则执行第二条sql
                     ps2.setString(1, key);
                                ps2.setInt(2, value);
                                int executeUpdate = ps2.executeUpdate();
                                if(executeUpdate > 0){
                                        System.out.println("已保存");
                                }
                        }
                          
                }
       
               
               
        }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马