📄 mysqlidgenerator.java
字号:
package pl.test;
import java.sql.Connection;
/**
* ID generator for the MySql database.
*
* @author:
*/
public class MysqlIdGenerator
extends AbstractHighLowIdGenerator {
/**
* MysqlIdGenerator constructor.
*/
public MysqlIdGenerator() {
super();
}
/**
* Return new high value.
*
* @return new high value
*/
protected long getNextHighValue(pl.map.ClassMap classMap) throws pl.
PlException {
Connection conn = null;
long highValue = 1;
java.sql.Statement st = null;
try {
conn = classMap.getRelationalDatabase().getConnection();
st = conn.createStatement();
st.execute("LOCK TABLES pl_id WRITE");
java.sql.PreparedStatement pst = conn.prepareStatement( "SELECT last_high_value FROM pl_id");
java.sql.ResultSet rs = pst.executeQuery();
if (rs.next()) {
highValue = rs.getLong(1);
highValue++;
java.sql.PreparedStatement tPst = conn.prepareStatement( "UPDATE pl_id " + "SET last_high_value=?");
tPst.setLong(1, highValue);
tPst.executeUpdate();
tPst.close();
}
else {
java.sql.PreparedStatement tPst = conn.prepareStatement( "INSERT INTO pl_id " + "(last_high_value) " +
"VALUES (?)");
tPst.setLong(1, highValue);
tPst.executeUpdate();
tPst.close();
}
pst.close();
st.execute("UNLOCK TABLES");
st.close();
rs.close();
classMap.getRelationalDatabase().freeConnection(conn);
}
catch (Throwable e) {
if (st != null) {
try {
st.execute("UNLOCK TABLES");
}
catch (Throwable ex) {}
}
throw new pl.PlException(e);
}
highValue <<= 16;
highValue &= 0xffffffffffff0000L;
return highValue;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -