UsersDao.java

package a;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List; /*
* 对数据库进行增删改查
*
*/
public class UsersDao{
//1.提供添加方法
public boolean insert(User user){
Connection con= null;
Statement st = null;
try{
//1.获取连接对象
con=JDBCUtils.getCon();
//2.获取执行sql语句的对象
st=con.createStatement();
//3.执行sql
java.util.Date birthday = user.getBirthday();
String sqlBirthday = String.format("%tF", birthday);
String sql="insert into users(id,name,password,email,birthday)"+"values('"+user.getId()+"','"
+user.getUsername()+"','"
+user.getPassword()+"','"
+user.getEmail()+"','"
+sqlBirthday+"'"
+")";
int row=st.executeUpdate(sql);
if(row>0){
//插入成功
return true;
} }catch(Exception e){
throw new RuntimeException(e);
}finally{
JDBCUtils.realse(null, st, con);
} return false;
} //2.提供查询所有方法
public List<User>findAllUser(){
Connection con = null;
Statement st = null;
ResultSet rs = null;
try{
//1.获取连接对象
con = JDBCUtils.getCon();
//2.获取执行SQL语句对象
st = con.createStatement();
//3.执行SQL
String sql = "select * from users";
rs = st.executeQuery(sql);
//4.遍历rs
List<User>list = new ArrayList<User>();
while(rs.next()){
User user = new User();
user.setId(rs.getInt("id"));
user.setUsername(rs.getString("name"));
user.setPassword(rs.getString("password"));
user.setEmail(rs.getString("email"));
user.setBirthday(rs.getDate("birthday"));
//把对象添加到集合中
list.add(user);
}
return list;
}catch(Exception e){
throw new RuntimeException(e);
}finally{
JDBCUtils.realse(rs, st, con);
}
}
//3.提供根据id查询方法
public User findUserById(int id){
Connection con = null;
ResultSet rs= null;
PreparedStatement st = null;
try{
//1.获取连接
con = JDBCUtils.getCon();
//2.获取执行sql语句对象
String sql = "select * from users where id =?";
st = con.prepareStatement(sql);
//3.执行aql
st.setInt(1, id);
rs = st.executeQuery();
//4.遍历rs
if(rs.next()){
User user = new User();
user.setId(rs.getInt("id"));
user.setUsername(rs.getString("name"));
user.setPassword(rs.getString("password"));
user.setEmail(rs.getString("email"));
user.setBirthday(rs.getDate("birthday"));
return user;
}
}catch(Exception e){
throw new RuntimeException(e);
}finally{
JDBCUtils.realse(rs, st, con);
}
return null;
}
//4.提供修改方法
public boolean update(User user){
Connection con = null;
PreparedStatement st = null;
ResultSet rs = null;
try{
//1.获取连接
con = JDBCUtils.getCon();
//2.执行SQL语句对象
String sql = "update from users name=?,password=? where id=? " ;
st = con.prepareStatement(sql);
//3.执行SQL,给占位符赋值
st.setString(1, user.getUsername());
st.setString(2, user.getPassword());
st.setInt(3, user.getId());
int row = st.executeUpdate();
if(row>0){
//修改成功
return true;
}
}catch(Exception e){
throw new RuntimeException(e);
}finally{
JDBCUtils.realse(rs, st, con);
}
return false;
}
//5.提供删除方法
public boolean delete(int id){
Connection con = null;
PreparedStatement st =null;
ResultSet rs = null;
try{
//1.获取连接
con = JDBCUtils.getCon();
//2.执行SQL语句对象
String sql = "delete from users where id=?";
st = con.prepareStatement(sql);
//3.执行SQL,给占位符赋值
st.setInt(1, id);
int row = st.executeUpdate();
if(row>0){
//删除成功
return true;
}
}catch(Exception e){
throw new RuntimeException(e);
}finally{
JDBCUtils.realse(rs, st, con);
}
return false;
}
}

JDBCUtils.java

package a;
/*
* 工具类
* */
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; public class JDBCUtils {
//获取连接对象的方法
public static Connection getCon() throws Exception{
//1.注册和加载驱动
Class.forName("com.mysql.jdbc.Driver");
//2.获取连接
Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/jdbc","root","root");
return con;
}
//关闭连接,释放资源
public static void realse(ResultSet rs,Statement st,Connection con){
if (rs!=null) {
try{
rs.close();
}catch (SQLException e){
e.printStackTrace();
}
rs=null;
}
if (st!=null) {
try{
st.close();
}catch (SQLException e){
e.printStackTrace();
}
st=null;
}
if (con!=null) {
try{
con.close();
}catch (SQLException e){
e.printStackTrace();
}
con=null;
}
}
}

User.java

package a;

import java.util.Date;
public class User { private int id;
private String username;
private String password;
private String email;
private Date birthday;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
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 String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
} }

jsp第6个作业—jdbc的更多相关文章

  1. JSP第十一次作业

    1.第十二周上机作业(邮件功能)的控制层代码改用为servlet实现.2.学习通发布了考试,截止到本周六.  com.gd.dao  BaseDao 1 package com.gd.dao; 2 3 ...

  2. JSP第八次作业

    数据库test 中建个表 stu(stuid 主键 自动增长 ,用户名,密码,年龄) 1.设计一个注册页面,实现用户注册功能2.设计一个登陆页面,实现用户名密码登陆3.两个页面可以互相超链接 1 pa ...

  3. jsp内置对象作业3-application用户注册

    1,注册页面 zhuCe.jsp <%@ page language="java" contentType="text/html; charset=UTF-8&qu ...

  4. jsp内置对象作业2-留言簿

    1.留言簿页面:liuYan.jsp <%@ page language="java" contentType="text/html; charset=UTF-8& ...

  5. jsp内置对象作业1-用户登录

    题目:编写一个jsp程序,实现用户登录,当用户输入的用户名或密码错误时,将页面重定向到错误提示也,并在该页面显示30秒后,自动返回到用户登录页面. 1.用户登录页面 <%@ page langu ...

  6. 比较满意设计的一次作业 JDBC宠物管理

    package com.dao; import java.util.List; import com.entity.Master; public interface MasterDao { publi ...

  7. jsp第七周作业

    1.p78-p79的例4-9 <%@ page language="java" import="java.util.*" pageEncoding=&qu ...

  8. jsp第六次作业

    1. <%@ page language="java" import="java.util.*" pageEncoding="utf-8&quo ...

  9. jsp第三次作业

    1.在jsp页面中使用include动态标记加载音频 <%@ page language="java" import="java.util.*" page ...

  10. JSP第七次作业

    1.做一个图书类Book id,name,price ,get,set访问器,构造方法2个,1个无参,1个有参做一个测试类,在main中创建3个图书对象,放到list集合中.做一个菜单,可以添加,删除 ...

随机推荐

  1. ConvTranspose的output_padding问题

    当stride>=2时,反向传播,由dy, w得到dx的时候,dx的形状不唯一. 例如input_shape (7,7)或者(8,8)在kernel(3,3)上,以stride=2进行卷积, 最 ...

  2. http头部meta 作用

    <meta charset="utf-8"> <!-- 设置文档字符编码 --> <meta http-equiv="x-ua-compat ...

  3. 混淆css类名

    使用vite:

  4. ONOS中新建分支并关联远程库

    新建分支并关联远程库 廖雪峰学习git教程网站:(多人协作) https://www.liaoxuefeng.com/wiki/896043488029600/900375748016320 git远 ...

  5. 08 安装虚拟机:Windows 10

    08 安装虚拟机:Windows 10 在安装虚拟机之前,总是要有安装来源媒体(例如:ISO映像之类),方可顺利进行.在Proxmox VE中有几种将ISO档置入Proxmox VE的方式,本节介绍其 ...

  6. localStorage/sessionStorage/cookie

    html5本地存储主要有两种localStorage和sessionStorage        都是使用相同api,存入后都是字符串类型 localStorage和sessionStorage使用方 ...

  7. mariadb数据库用户管理(创建、赋权、)

    数据库查看当前用户 select user(): MariaDB [(none)]> select user(); +----------------+ | user() | +-------- ...

  8. laravel 邮件发送

    1.首先你要在qq悠闲中开启你的   SMPT(设置->账户)   获取到你的授权码 2.配置laravel MAIL_DRIVER=smtpMAIL_HOST=smtp.qq.comMAIL_ ...

  9. DHCP中继(cisco)

    DHCP中继(cisco) 要求:PC0.PC1和PC2的IP地址从DHCP-server里获取,并ping通PC3 IP地址规划表: 设备 接口 IP地址 Multilayer Switch0 Fa ...

  10. 关于npm和yarn的坑

    遇到下载出错的情况,这两个两个双管齐下