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集合中.做一个菜单,可以添加,删除 ...
随机推荐
- 百题计划-6 codeforces 651 div2 E. Binary Subsequence Rotation 01序列集合划分,2个队列处理
https://codeforces.com/contest/1370/problem/E 队列元素以末尾字符为结尾的序列就好了,这里队列里的元素不重要,队列size重要 #include<bi ...
- Hibernate的工作流程
- LOOP GROUP BY 分组循环的使用方法小栗子
原文链接:https://blog.csdn.net/lmf496891416/article/details/111317377 1.格式: LOOP AT 内表 INTO DATA(工作区) GR ...
- 运行yarn报错:error C:\liuyan\tools\echarts-5.4.0\node_modules\cwebp-bin: Command failed.
完成warning和报错信息如下. 通过报错信息提示,锁定cwebp-bin,在waring中发现有提示说要更新至7或更高版本. 解决方案:在package.json中,将cwebp-bin设置版本为 ...
- v4l2编程
一.video 4 linux 2 ,是linux中关于视频设备的内核驱动.在linux中,视频设备是设备文件,可以像访问普通文件一样对其进行读写,摄像头在/dev/video 0下 二一般操作流程( ...
- maven(web)项目,不自动出现overlays的上级web项目
不自动出现overlays目录,如下: 上面选择一项, 最后部署至tomcat或是其他中间件上面,overlays的上关联的上级项目就会出现
- maven-标准目录结构,常用命令,生命周期,概念模型图
maven-标准目录结构 作为一个maven工程,它的src目录和pom.xml是必备的,进入src目录后,我们发现它里面的目录结构如下: src/main/java -- 存放项目的 . java ...
- mybati之sql集合
mybatis 详解(五)------动态SQL - YSOcean - 博客园 (cnblogs.com) mybatis参数注入: 根据参数名称 使用#{} 注入参数 <insert id= ...
- go 死锁示例
以下代码不会有任何打印.原因是:channel ch 在make 时是无缓冲区的channel.无缓冲区的channel 发送一个数据进入后需要等待这个数据被消耗才能继续发送下一个数据.然而getFr ...
- Excel—时间函数
时间函数,学习之前先普及一个尝试,微软采用的是1900年纪念方式(数字1,代表的是1900年1月1日,数字1.5 代表的是1900年的1月1日的中午12:00,因为1.5正好是1天半的时间,而一天2 ...