您的位置:首页 > 数据库 > MySQL

mysql练习总结

2011-04-18 14:18 316 查看
/**
* 玩家注册
* @param user
* @return -1 玩家已存在 -2插入失败 1 成功 其他则为刚注册的玩家ID
*/
public int registerUser(BookUser user) {
Connection conn = null;
PreparedStatement pstmt = null;
Statement stmt = null;
ResultSet rs = null;

try {
conn = DBHelper.getConnection();

//注册之前判断用户是否已经存在
String sqlCheck = "select count(*) from bookuser where userName = '"+ user.getUserName() +"';"; //这里要注意sqlCheck语句要加上‘’号,否则语法错误。
stmt = conn.createStatement();
rs = stmt.executeQuery(sqlCheck);
rs.next();
int hasNum = rs.getInt(1);
if(hasNum != 0)
return -1;

String sql = "insert into bookuser(userName, userPwd, nickName," +
"email) values (?, ?, ?, ?)";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, user.getUserName());
pstmt.setString(2, user.getPassWord());
pstmt.setString(3, user.getNickName());
pstmt.setString(4, user.getEmail());

int temp = pstmt.executeUpdate();
if(temp != 1)
return -2;
pstmt.close();

stmt = conn.createStatement();
//获取刚插入的identity //获得IDENTITY
rs = stmt.executeQuery("select @@IDENTITY");
rs.next();
return rs.getInt(1);
} catch (SQLException e) {
e.printStackTrace();
}finally{
DBHelper.close(conn, stmt, rs);
}
return 0;
}

还有不很清楚的就是这样一个注册功能总共连接查询数据库了3次,性能上会不会有影响,在sqlserver中可以使用存储过程,mysql中不清楚怎么写比较好》?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: