java代码怎么获取行锁 java实现锁的几种方式

Java如何实现对Mysql数据库的行锁

用以下sql语句就可以实现行锁定,前提是innodb模式:

创新互联公司专注于集安网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供集安营销型网站建设,集安网站制作、集安网页设计、集安网站官网定制、小程序开发服务,打造集安网络公司原创品牌,更为您提供集安网站排名全网营销落地服务。

SELECT ... FOR UPDATE

或者

SELECT ... LOCK IN SHARE MODE

java如何给数据库加行锁

与java无关,要用sql语句实现

前提目标表要有索引,查询要开启事物,使用select * from tb with(updlock) where col = xxx将一行数据锁住,其他连接不能再修改表

java中 请问我应该如何如何锁这段代码才符合要求

public Object getObject(String key,Object o) {

synchronized (map) {

if(map.get(key)==null) {

map.put(key,o)

}else {

return map.get(key);

}}// 格式没法弄,自己弄一下

}

// demol0326 的回答意思使用MyTest的实例来加锁,但是map是static的,无法锁住

// MyTest的多个实例在多个线程中的请求

//禾木双子 :如果A线程在getObject方法的第二行停止,此时B线程进入getObject后执行部分代码, 此时B线程停止,A线程启动,他不会执行'多线程处理', 仍然有线程线程安全问题,(想像一下更多的线程进入该方法的情况,num甚至会得到负值)

如何用java poi编写代码来设置Excel单元格是否锁定功能?

import org.apache.poi.hssf.usermodel.HSSFCell;

import org.apache.poi.hssf.usermodel.HSSFCellStyle;

import org.apache.poi.hssf.usermodel.HSSFRow;

import org.apache.poi.hssf.usermodel.HSSFSheet;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.apache.poi.poifs.filesystem.POIFSFileSystem;

/**

* @param inputFile 输入模板文件路径

* @param outputFile 输入文件存放于服务器路径

* @param dataList 待导出数据

* @throws Exception

* @roseuid:

*/

public void exportExcelFile(String inputFile, String outputFile, List dataList) throws Exception

{

//用模板文件构造poi

POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(inputFile));

//创建模板工作表

HSSFWorkbook templatewb = new HSSFWorkbook(fs);

//直接取模板第一个sheet对象

HSSFSheet templateSheet = templatewb.getSheetAt(1);

//得到模板的第一个sheet的第一行对象 为了得到模板样式

HSSFRow templateRow = templateSheet.getRow(0);

//HSSFSheet timplateSheet = templatewb.getSheetAt(1);

//取得Excel文件的总列数

int columns = templateSheet.getRow((short) 0).getPhysicalNumberOfCells();

Debug.println("columns is : " + columns);

//创建样式数组

HSSFCellStyle styleArray[] = new HSSFCellStyle[columns];

//一次性创建所有列的样式放在数组里

for (int s = 0; s columns; s++)

{

//得到数组实例

styleArray[s] = templatewb.createCellStyle();

}

//循环对每一个单元格进行赋值

//定位行

for (int rowId = 1; rowId dataList.size(); rowId++)

{

//依次取第rowId行数据 每一个数据是valueList

List valueList = (List) dataList.get(rowId - 1);

//定位列

for (int columnId = 0; columnId columns; columnId++)

{

//依次取出对应与colunmId列的值

//每一个单元格的值

String dataValue = (String) valueList.get(columnId);

//取出colunmId列的的style

//模板每一列的样式

HSSFCellStyle style = styleArray[columnId];

//取模板第colunmId列的单元格对象

//模板单元格对象

HSSFCell templateCell = templateRow.getCell((short) columnId);

//创建一个新的rowId行 行对象

//新建的行对象

HSSFRow hssfRow = templateSheet.createRow(rowId);

//创建新的rowId行 columnId列 单元格对象

//新建的单元格对象

HSSFCell cell = hssfRow.createCell((short) columnId);

//如果对应的模板单元格 样式为非锁定

if (templateCell.getCellStyle().getLocked() == false)

{

//设置此列style为非锁定

style.setLocked(false);

//设置到新的单元格上

cell.setCellStyle(style);

}

//否则样式为锁定

else

{

//设置此列style为锁定

style.setLocked(true);

//设置到新单元格上

cell.setCellStyle(style);

}

//设置编码

cell.setEncoding(HSSFCell.ENCODING_UTF_16);

//Debug.println("dataValue : " + dataValue);

//设置值 统一为String

cell.setCellValue(dataValue);

}

}

//设置输入流

FileOutputStream fOut = new FileOutputStream(outputFile);

//将模板的内容写到输出文件上

templatewb.write(fOut);

fOut.flush();

//操作结束,关闭文件

fOut.close();

}


网站标题:java代码怎么获取行锁 java实现锁的几种方式
URL标题:http://ybzwz.com/article/doihcgi.html