DBconnectionUtil 连接数据
public class DBconnectionUtil {
//方法获取连接
private static String jdbcDrive="";
private static String jdbcUrl = "";
private static String jdbcUser = "";
private static String password = "";
//静态初始化只会执行一次,在类加载的时候
static{
try {
//读取文件
InputStream is = DBconnectionUtil.class.getClassLoader().getResourceAsStream("jdbc.properties");
Properties p =new Properties();
p.load(is);
jdbcDrive=p.getProperty("jdbcDrive");
jdbcUrl=p.getProperty("jdbcUrl");
jdbcUser=p.getProperty("jdbcUser");
password=p.getProperty("password");
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
public static Connection getConnection(){
Connection conn =null;
try {
Class.forName(jdbcDrive);
conn = DriverManager.getConnection(jdbcUrl, jdbcUser, password);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
public static void main(String[] args) {
System.out.println(getConnection());
}
//关闭
public static void closeAll(ResultSet rs,PreparedStatement ps ,Connection conn){
//关闭资源,先产生后关闭
if(rs!=null)
try {
rs.close();
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
if(ps!=null)
try {
ps.close();
} catch (SQLException e) {
// TODO: handle exception
e.printStackTrace();
}
if(conn != null)
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
数据库连接的信息 jdbc.properties
jdbcDrive=com.mysql.jdbc.Driver
jdbcUrl=jdbc\:mysql\://localhost\:3306/jdbctestt
jdbcUser=root
password=123456
user类
public class User {
private int userId;
private String username;
private String password;
private int sex;
private int flag;
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getSex() {
return sex;
}
public void setSex(int sex) {
this.sex = sex;
}
public int getFlag() {
return flag;
}
public void setFlag(int flag) {
this.flag = flag;
}
}
UserDao接口
定义两个接口:登录和注册
public interface UserDao {
public User login(String username,String password);
public int register(User user);
}
UserDao的实现类
public class UserDaoImpl implements UserDao{
@Override
public User login(String username, String password) {
// TODO Auto-generated method stub
User user = null;
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
conn = DBconnectionUtil.getConnection();
String sql = "select * from user where username = ? and password =?";
try {
ps = conn.prepareStatement(sql);
ps.setString(1,username);
ps.setString(2, password);
rs = ps.executeQuery();
if(rs.next()){
user = new User();
user.setUserId(rs.getInt("userId"));
user.setUsername(rs.getString("username"));
user.setPassword(rs.getString("password"));
user.setFlag(rs.getInt("flag"));
user.setSex(rs.getInt("sex"));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
DBconnectionUtil.closeAll(rs, ps, conn);
}
return user;
}
@Override
public int register(User user) {
// TODO Auto-generated method stub
int row =0;
Connection conn = null;
PreparedStatement ps = null;
conn = DBconnectionUtil.getConnection();
String sql = "insert into user (username,password) values (?,?)";
try {
ps = conn.prepareStatement(sql);
ps.setString(1, user.getUsername());
ps.setString(2, user.getPassword());
row = ps.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
DBconnectionUtil.closeAll(null, ps, conn);
}
return row;
}
}
业务层 UserService
public interface UserService {
public User login(String username,String password);
public int register(User user);
实现类
public class UserServiceImpl implements UserService {
private UserDao userDao = new UserDaoImpl();
@Override
public User login(String username, String password) {
// TODO Auto-generated method stub
return userDao.login(username, password);
}
@Override
public int register(User user) {
// TODO Auto-generated method stub
return userDao.register(user);
}
}
servlet–RegisterServlet
public class RegisterServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String username = request.getParameter("username");
String password = request.getParameter("password");
UserService userService = new UserServiceImpl();
User user = new User();
user.setUsername(username);
user.setPassword(password);
userService.register(user);
request.getRequestDispatcher("login.jsp").forward(request, response);
}
}
Servlet–LoginServlet
public class LoginServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//获取参数
//调用service
//根据返回结果处理
String username = request.getParameter("username");
String password = request.getParameter("password");
//左边接口 右边是实现类
UserService userService = new UserServiceImpl();
User user = userService.login(username, password);
if(user !=null){
HttpSession session =request.getSession();//一次会话有效
response.sendRedirect("success.jsp");//可以调到其他项目
}
else {
request.getRequestDispatcher("error.jsp").forward(request, response);
}
}
}
注册页面
<!DOCTYPE html>
<html>
<head>
<title>Package signup Form a Responsive Widget Template :: w3layouts</title>
</head>
<body>
<div class="form">
<h1>Package Signup Form</h1>
<div class="form-content">
<form action="RegisterServlet" method="post">
<div class="form-info">
<h2>Signup</h2>
</div>
<div class="name">
<label>Name</label>
<input class="input1" type="text" name="username" placeholder="username" required="">
</div>
<div class="pass1">
<label>Password</label>
<input class="input1" type="password" name="password" placeholder="**********" required="">
</div>
<div class="pass2">
<label>Re-Password</label>
<input class="input1" type="password" name="confirm pasdsword" placeholder="**********" required="">
</div>
<div class="signup">
<input type="submit" value="SIGN UP">
</div>
</form>
</div>
</div>
<footer>© 2018 Package signup form. All rights reserved | Design by <a href="#">W3layouts</a></footer>
</body>
</html>
**登录页面**
登录
<div class="signin">
<input type="submit" value="登录" >
</div>
</form>
``` 这就实现了简单的注册登录。