public boolean register(User user) { boolean flag = false; DBconn.init(); int i =DBconn.addUpdDel("insert into usr(username,password) " + "values('"+user.getUsername()+"','"+user.getPassword()+"')"); if(i>0){ flag = true; } DBconn.closeConn(); return flag; } public boolean register(User user) { boolean flag = false; DBconn.init(); int i =DBconn.addUpdDel("insert into usr(username,password) " + "values('"+user.getUsername()+"','"+user.getPassword()+"')"); if(i>0){ flag = true; } DBconn.closeConn(); return flag;} public static int addUpdDel(String sql){ int i = 0; try { PreparedStatement ps = conn.prepareStatement(sql); i = ps.executeUpdate(); } catch (SQLException e) { System.out.println("sql数据库增删改异常"); e.printStackTrace(); } return i; }优化这两部分代码,使其能够正常完成注册功能
时间: 2023-11-28 12:47:50 浏览: 35
首先,需要将两个重复的 register 方法合并为一个。其次,建议使用 PreparedStatement 来防止 SQL 注入攻击,并且需要在 finally 语句块中关闭 PreparedStatement 和 Connection。
优化后的代码如下所示:
```
public boolean register(User user) {
boolean flag = false;
Connection conn = null;
PreparedStatement ps = null;
try {
conn = DBconn.init();
String sql = "INSERT INTO usr(username,password) VALUES (?,?)";
ps = conn.prepareStatement(sql);
ps.setString(1, user.getUsername());
ps.setString(2, user.getPassword());
int i = ps.executeUpdate();
if (i > 0) {
flag = true;
}
} catch (SQLException e) {
System.out.println("sql数据库增删改异常");
e.printStackTrace();
} finally {
DBconn.closeConn(ps, conn);
}
return flag;
}
public static Connection init() {
Connection conn = null;
try {
Class.forName(driver);
conn = DriverManager.getConnection(url, username, password);
} catch (ClassNotFoundException e) {
System.out.println("未找到驱动程序");
e.printStackTrace();
} catch (SQLException e) {
System.out.println("数据库连接失败");
e.printStackTrace();
}
return conn;
}
public static void closeConn(PreparedStatement ps, Connection conn) {
try {
if (ps != null) {
ps.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
try {
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
```
相关推荐
![.pdf](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)