关于servlet中使用sql server的一些疑问

苍月妖狼 2015-01-07 04:38:02
在servlet中我想先用向sql server数据库中插入数据,然后用select IDENT_CURRENT ('表名')来查询到到最后更改的那条记录的id。这样做的会不会导致,当两个用户AB同时访问这个servlet的时候,A用户读取到B用户的id啊?如果会到,是不是涉及到事务隔离级别,这个在代码中要怎么实现呢?
...全文
149 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
街头小贩 2015-01-09
  • 打赏
  • 举报
回复
2.哪个示例不对哈,贴错了

		String SQL="INSERT INTO king_channel(uid,url,channelname,encode,status,lastbuildate,path)VALUES(?,?,?,?,?,?,?)";
		int rid=0;
		
		Connection conn=null;
		PreparedStatement ps=null;
				
		try {
			conn=JdbcUtil.getInstance();
			ps=conn.prepareStatement(SQL,new String[]{"rid"});
			
			ps.setInt(1,userId);
			ps.setString(2, rssUrl);
			ps.setString(3, channelName);
			ps.setString(4, encode);
			
			ps.setString(5, status);
			ps.setLong(6, UtilCollection.converJavaTimeStampToPhp(lastbuildate.getTime()));
			ps.setString(7, visPath);
			ps.executeUpdate();
			ResultSet rs=ps.getGeneratedKeys();
			if(rs!=null && rs.next()){
				rid=rs.getInt(1);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			return 0;
		}finally{
			JdbcUtil.release(ps);JdbcUtil.release(conn);
		}
		
		return rid;
街头小贩 2015-01-09
  • 打赏
  • 举报
回复
1事务隔离级别 数据库都有默认的事务隔离级别,mysql默认的是:REPEATABLE-READ 2.jdbc是可以取到insert后的自增ID

	public int associateSpecialChannel(int userId, int channelID) {
		// TODO Auto-generated method stub
		//ChannelSQL.ASSOCIATE
		String SQL="INSERT INTO king_user_channel(uid,rid)VALUES(?,?)";
		int record=0;
		
		Connection conn=null;
		PreparedStatement ps=null;
		
		try {
			conn=JdbcUtil.getInstance();
			ps=conn.prepareStatement(SQL,new String[]{"ucid"});
			
			ps.setInt(1, userId);
			ps.setInt(2, channelID);
		
			record=ps.executeUpdate();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			return 0;
		}finally{
			JdbcUtil.release(ps);JdbcUtil.release(conn);
		}
		return record;
	}
3.这样做的会不会导致,当两个用户AB同时访问这个servlet的时候,A用户读取到B用户的id啊 不会,可以放心使用,如果是特殊的实体:像订单号或会员ID最好是事先根据属性生成,不要用自增ID 订单号:可以根据地区+日成交量+商品类型+时间点 会员ID:可以根据:身份证或邮箱或手机号定一个算法生成一个uid 数据库表的主键最好要有意义,

24,923

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Apache
社区管理员
  • Apache
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧