黑马程序员技术交流社区

标题: 分享一道JDBC综合MAP的习题 [打印本页]

作者: 水月灬清影    时间: 2016-9-1 17:43
标题: 分享一道JDBC综合MAP的习题
个人觉得这题不错,直接上我的代码:
[Java] 纯文本查看 复制代码
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.HashMap;
import java.util.Set;

/*
* map中有如下数据(电话号=套餐价格)
[13265477888=168,15241698745=11,13699989898=20,1898686666=120]

数据库信息如下:ip为127.0.0.1数据库名为stdb,连接数据库的用户名和密码为:admin和123456
数据库stdb中有一个表numinfo,相关字段为(id,iphonenum,tomoney)

(1)将map中的手机号码取出来打印到控制台上
(2)判断map中所有的手机号在numinfo表中是否存在,存在则输出"该主机已登录"
如果不存在将该号码及对应的套餐价格存入到numinfo表中.
(map中的数据不需要修改)
*/
public class Demo {
        public static void main(String[] args) throws Exception {
                HashMap<String, Integer> hm = new HashMap<String, Integer>();
                hm.put("13265477888", 168);
                hm.put("15241698745", 11);
                hm.put("13699989898", 20);
                hm.put("1898686666", 120);

                Set<String> set = hm.keySet();
                for (String key : set) {
                        System.out.println(key);
                }

                // 数据库操作
                Connection conn = null;
                PreparedStatement pstmt = null;
                ResultSet rs = null;
                try{
                        Class.forName("com.mysql.jdbc.Driver");
                        conn = DriverManager
                                        .getConnection(
                                                        "jdbc:mysql://localhost:3306/stdb?useServerPropStmts=true&cachePropStmts=true",
                                                        "admin", "123456");
                       
                        String qsql="SELECT * FROM numinfo where iphonenum=?";
                        String sql = "INSERT INTO numinfo (iphonenum,tomoney) VALUES (?,?)";
                        for (String key : set) {
                                pstmt=conn.prepareStatement(qsql);
                                pstmt.setString(1, key);
                                rs=pstmt.executeQuery();
                                if(rs.next()){
                                        System.out.println("该主机已登录");
                                }else{
                                        pstmt=conn.prepareStatement(sql);
                                        pstmt.setString(1, key);
                                        pstmt.setInt(2, hm.get(key));
                                        pstmt.executeUpdate();
                                        System.out.println(1);
                                }
                        }
                       
                }catch(Exception e){
                        throw new RuntimeException(e);
                }finally{
                        if(rs!=null)rs.close();
                        if(pstmt!=null)pstmt.close();
                        if(conn!=null)conn.close();
                }
               

        }
}


其中,数据库的新建,表的新建,用户的新建、授权都是在小黑窗中进行的,不会用JDBC做,哪位朋友会请指导一下,谢谢。
作者: 哈韩浪子    时间: 2016-9-1 18:02
怎么弄? 直接用hibernate




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