jsp第6个作业—jdbc
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的更多相关文章
- JSP第十一次作业
1.第十二周上机作业(邮件功能)的控制层代码改用为servlet实现.2.学习通发布了考试,截止到本周六. com.gd.dao BaseDao 1 package com.gd.dao; 2 3 ...
- JSP第八次作业
数据库test 中建个表 stu(stuid 主键 自动增长 ,用户名,密码,年龄) 1.设计一个注册页面,实现用户注册功能2.设计一个登陆页面,实现用户名密码登陆3.两个页面可以互相超链接 1 pa ...
- jsp内置对象作业3-application用户注册
1,注册页面 zhuCe.jsp <%@ page language="java" contentType="text/html; charset=UTF-8&qu ...
- jsp内置对象作业2-留言簿
1.留言簿页面:liuYan.jsp <%@ page language="java" contentType="text/html; charset=UTF-8& ...
- jsp内置对象作业1-用户登录
题目:编写一个jsp程序,实现用户登录,当用户输入的用户名或密码错误时,将页面重定向到错误提示也,并在该页面显示30秒后,自动返回到用户登录页面. 1.用户登录页面 <%@ page langu ...
- 比较满意设计的一次作业 JDBC宠物管理
package com.dao; import java.util.List; import com.entity.Master; public interface MasterDao { publi ...
- jsp第七周作业
1.p78-p79的例4-9 <%@ page language="java" import="java.util.*" pageEncoding=&qu ...
- jsp第六次作业
1. <%@ page language="java" import="java.util.*" pageEncoding="utf-8&quo ...
- jsp第三次作业
1.在jsp页面中使用include动态标记加载音频 <%@ page language="java" import="java.util.*" page ...
- JSP第七次作业
1.做一个图书类Book id,name,price ,get,set访问器,构造方法2个,1个无参,1个有参做一个测试类,在main中创建3个图书对象,放到list集合中.做一个菜单,可以添加,删除 ...
随机推荐
- 《ImageNet Classification with Deep Convolutional Neural Networks (AlexNet)2012》
Abstract 作者训练了一个大型的深度卷积神经网络,用于在 ImageNet LSVRC-2010 比赛中对120万张高分辨率图像分为1000个不同的类别.在测试数据上,作者们达到了 top-1 ...
- openssl的自签名证书不被信任问题
1.不同的浏览器安全策略不同 1.1谷歌系的会提示没有绑定域名. 此服务器无法证实它就是 192.168.0.127 - 它的安全证书没有指定主题备用名称(Subject Alternative Na ...
- body传参和query传参
get请求只能传query参数,query参数都是拼接在请求地址上的.post可以传body和query两种形式的参数. get请求在url中传送的参数是有长度限制的,而post没有限制.get比po ...
- 【小记】如果 golang 内存不够了怎么办
在看 redis 1.0 源码时,总会看到需要申请内存的地方,如果申请不到需要大的内存就会返回 NULL,然后在调用层抛出 oom. 比如 listDup 中在复制特殊 value 或者加入新节点时都 ...
- C++future promise
A future is an object that can retrieve a value from some provider object or function, properly sync ...
- 95、linux安装es
参考大佬文章 https://blog.csdn.net/b13001216978/article/details/110817204 1.由于elasticsearch7.4.0需要jdk11支持, ...
- 2347. 最好的扑克手牌 (Easy)
问题描述 2347. 最好的扑克手牌 (Easy) 给你一个整数数组 ranks 和一个字符数组 suit .你有 5 张扑克牌,第 i 张牌大小为 ranks[i] ,花色为 suits[i] . ...
- 【C学习笔记】day2-5 求两个数的最大公约数
#include <stdio.h> int main() { int a, b; int min; scanf_s("%d %d", &a, &b); ...
- php基础教程(三)
PHP语法概述 A. 基本语法 即使初次接触PHP的用户也会发现自己对PHP的语法风格并不陌生. 例如:<?php echo "Hello!": ?> 显示结果为&qu ...
- go读取excel的内容
import "github.com/360EntSecGroup-Skylar/excelize" func SimulationDataHandler(){ f, err := ...