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中不清楚怎么写比较好》?
* 玩家注册
* @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中不清楚怎么写比较好》?
相关文章推荐
- mysql 事务总结 存储过程 + 最近sql查询后的练习反思
- MySQL_知识总结01(基本数据库语句+关于Mysql面试题+select语句的练习)
- mysql 练习之 Alter 用法总结
- mysql练习之Alter用法总结
- mysql语法总结和练习
- mysql 练习总结
- MySQL总结
- [转]mysql变量使用总结
- 牛客练习错题总结
- MySQL触发器学习总结
- Mysql学习总结(12)——21分钟Mysql入门教程
- SQL 条件语句(练习总结)
- MySQL水平分区表实际操作总结
- 【转】MySql索引类型的总结和使用
- 总结Mysql索引相关知识
- MySql常用命令总结
- 《TomCat与Java Web开发技术详解》(第二版) 第八章节的学习总结 -- 访问mysql
- MySql 中游标,事务,终止存储过程方法总结
- mysql复习小结二事务的实验总结
- 【MYSQL经验】MYSQL经验总结