个人觉得这题不错,直接上我的代码:
[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做,哪位朋友会请指导一下,谢谢。 |