软件工程概论之课堂测试一

程序设计思想:

首先有了以前登录注册的框架,其思想是一致的。所以在jsp中加入相关判断,修改界面即可。

源程序:

package com.jaovo.msg.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;


import com.jaovo.msg.Util.DBUtil;
import com.jaovo.msg.Util.UserException;
import com.jaovo.msg.model.User;

//import sun.net.www.content.text.plain;

public class UserDaoImpl implements IUserDao {

@Override
public void add(User user) {
//鑾峰緱閾炬帴瀵硅薄
Connection connection = DBUtil.getConnection();
//鍑嗗�sql璇�彞
String sql = "select count(*) from t_user where username = ?";
//鍒涘缓璇�彞浼犺緭瀵硅薄
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
try {
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, user.getUsername());
//鎺ユ敹缁撴灉闆?
resultSet = preparedStatement.executeQuery();
//閬嶅巻缁撴灉闆?
while(resultSet.next()) {
if (resultSet.getInt(1) > 0) {
throw new UserException("鐢ㄦ埛宸插瓨鍦?") ;
}
}

sql = "insert into t_user(username,password,nickname) value (?,?,?)";
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, user.getUsername());
preparedStatement.setString(2, user.getPassword());
preparedStatement.setString(3, user.getNickname());
preparedStatement.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
//鍏抽棴璧勬簮
DBUtil.close(resultSet);
DBUtil.close(preparedStatement);
DBUtil.close(connection);
}

}

@Override
public void delete(int id) {
Connection connection = DBUtil.getConnection();
String sql = "delete from t_user where id = ?";
PreparedStatement preparedStatement = null;

try {
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setInt(1, id);
preparedStatement.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
DBUtil.close(preparedStatement);
DBUtil.close(connection);
}

}

@Override
public void update(User user) {
Connection connection = DBUtil.getConnection();
//鍑嗗�sql璇�彞
String sql = "update t_user set password = ? , nickname=? where id = ?";
//鍒涘缓璇�彞浼犺緭瀵硅薄
PreparedStatement preparedStatement = null;
try {
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setString(1, user.getPassword());
preparedStatement.setString(2, user.getNickname());
preparedStatement.setInt(3, user.getId());
preparedStatement.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
DBUtil.close(preparedStatement);
DBUtil.close(connection);
}
}

@Override
public User load(int id) {
Connection connection = DBUtil.getConnection();
//鍑嗗�sql璇�彞
String sql = "select * from t_user where id = ?";
//鍒涘缓璇�彞浼犺緭瀵硅薄
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
User user = null;
try {
preparedStatement = connection.prepareStatement(sql);
preparedStatement.setInt(1, id);
resultSet = preparedStatement.executeQuery();
while(resultSet.next()) {
user = new User();
user.setId(id);
user.setUsername(resultSet.getString("username"));
user.setPassword(resultSet.getString("password"));
user.setNickname(resultSet.getString("nickname"));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
DBUtil.close(resultSet);
DBUtil.close(preparedStatement);
DBUtil.close(connection);
}
return user;
}

@Override
public User load(String username) {
// TODO Auto-generated method stub
return null;
}

@Override
public List<User> load() {
Connection connection = DBUtil.getConnection();
//鍑嗗�sql璇�彞
String sql = "select * from t_user ";
//鍒涘缓璇�彞浼犺緭瀵硅薄
PreparedStatement preparedStatement = null;
ResultSet resultSet = null;
//闆嗗悎涓�彧鑳芥斁鍏�ser瀵硅薄
List<User> users = new ArrayList<User>();
User user = null;
try {
preparedStatement = connection.prepareStatement(sql);
resultSet = preparedStatement.executeQuery();
while(resultSet.next()) {
user = new User();
user.setId(resultSet.getInt("id"));
user.setUsername(resultSet.getString("username"));
user.setPassword(resultSet.getString("password"));
user.setNickname(resultSet.getString("nickname"));
users.add(user);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
DBUtil.close(resultSet);
DBUtil.close(preparedStatement);
DBUtil.close(connection);
}
return users;
}

}

package com.jaovo.msg.Util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class DBUtil {

public static Connection getConnection() {
try {
//1 鍔犺浇椹卞姩
Class.forName("com.mysql.jdbc.Driver").newInstance();
} catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String user = "root";
String password = "a13293581799";
String url = "jdbc:mysql://localhost:3306/jaovo_msg";
Connection connection = null;
try {
//2 鍒涘缓閾炬帴瀵硅薄connection
connection = DriverManager.getConnection(url,user,password);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return connection;
}

//鍏抽棴璧勬簮鐨勬柟娉?
public static void close(Connection connection ) {
try {
if (connection != null) {
connection.close();
}

} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void close(PreparedStatement preparedStatement ) {
try {
if (preparedStatement != null) {
preparedStatement.close();
}

} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void close(ResultSet resultSet ) {
try {
if (resultSet != null) {
resultSet.close();
}

} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}

结果截图:

---恢复内容结束---

原文地址:https://www.cnblogs.com/-2016/p/7911798.html