jdbc插入删除更新db代码

1.插入删除代码如下

public void writeDB(Map<String,Object> map) throws SQLException, ClassNotFoundException, InterruptedException{
		synchronized (lock) {
			System.out.println();
			String url="jdbc:mysql://localhost:3306/mydbname?useUnicode=true&characterEncoding=UTF-8";
			Class.forName("com.mysql.jdbc.Driver");
			Connection conn=DriverManager.getConnection(url,"root","");    
	        //删除
			String sqldel = "delete from spidercontent";
			PreparedStatement stmtdel = conn.prepareStatement(sqldel); 
			stmtdel.executeUpdate();
			stmtdel.close();
			//插入
			String sql = "insert into spidercontent(page,namelink,description,kind)values(?,?,?,?)";
	        PreparedStatement stmt = conn.prepareStatement(sql);  
	        for(Entry<String, Object> mapitem :map.entrySet()){
				for(String item : (ArrayList<String>) mapitem.getValue()){
					stmt.setString(1, mapitem.getKey().split("/")[6]);
					stmt.setString(2, item);
					stmt.setString(3, "");
					stmt.setString(4, "");
					stmt.addBatch();
				}
			}  
	        stmt.executeBatch();	
	        conn.close(); 
	        stmt.close();
		}
	}
第四句不加,插入的中文是乱码


2.插入带自增字段的DB

不能用上面的setInt 或者setString,只能组织出sql再

Class.forName(driverClassName);
		Connection conn=DriverManager.getConnection(dburlPrefix+"?useUnicode=true&characterEncoding=UTF-8",username,password);      
        //插入  
        //String sql = "insert into t_ptmachine(ip,cpu,mem,use_or_not,login_username,login_pass,operate_username,remark)values(?,?,?,?,?,?,?,?)";  
		String sql = "insert into t_ptmachine(cpu,mem,use_or_not,login_username,login_pass,operate_username,remark)values('a','a','a','a','a','a','a')";  
        PreparedStatement stmt = conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS);   
        stmt.executeUpdate();
        ResultSet rs = stmt.getGeneratedKeys(); /*获取主键增长列的结果集*/  
        while (rs.next()) {  
            System.out.println(rs.getInt(1));  /*返回主键自增主键是多少*/  
        }  

3.DB中是int 和 Date类型的数据的插入

不带自增主键,用setInt  setDate(同第一点)

带自增主键,用sql拼接(同第二点)注意代码中的三处红色,并且这里的Date.valueOf 是java.sql.Date不是java.util.Date,而且这个日期只记录年月日

String sql = "insert into t_lptmachine(cpu,mem,use_or_not,login_username,login_pass,operate_username,date) values ('a',5,'a','a','a','a','" + Date.valueOf(("2015-12-17")) +" ')"; 

如果想记录时分秒,用Timestamp

sql = "UPDATE t_ptservice_info SET test_begin_time='"+Timestamp.valueOf("1989-09-09 11:11:11")+"' WHERE task_id="+task.getTaskId();


4.jdbc  update

String sql = "UPDATE t_lptmachine SET cpu= 'changed' ,mem='changed' WHERE taskid ="+taskid;   
PreparedStatement stmt = conn.prepareStatement(sql);
stmt.executeUpdate();

5.insert  空值,只针对db中可以为空的字段,注意不是空串  ‘’ 

String sql = "insert into t_lptmachine(cpu,mem,use_or_not,login_username,login_pass,operate_username,date) values ('a',5,'a','a','a','a',<span style="color:#ff0000;">null</span>)"; 







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值