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集合中.做一个菜单,可以添加,删除 ...
随机推荐
- python实现web应用程序(1)虚拟环境与Django
前言 在这个系列博客中,我将使用python实现一个名为"OI笔记"的项目. 1 建立项目目录 第一步,我们先为自己的项目建立一个目录. 首先,打开终端. win+r键,然后输入c ...
- 阿里云初始化,epel库,docker安装的一般步骤,和java8 升级 java11 的一些bug,无法显示验证码,等
1. 反射异常 有些反射异常,不是自己代码的错而是一些框架调用的时候,所带来的,不好处理. 用压制输出的形式,1行为压制,2行为调试模式,输出所有的报错信息.这里用java.base / java.n ...
- SecureCRT保存日志
1.打开Options->Session Options...,选择LogFile 2.Log file name格式 %H_%S_%Y%M%D-%h%m%s.log 参数说明: %H---主机 ...
- One-Shot Transfer Learning of Physics-Informed Neural Networks
本文提出了一种将迁移学习应用到PINN的方法.可以极大的缩短训练PINN所用的时间,目前,PINN所需要的训练次数往往都在成千上万次, 作者通过批量训练PINN,来学习丰富的潜在空间用来执行迁移学习. ...
- <<运算?&=、|=、 ^=、<<=、>>=的意思? 十六进制前缀是 0x。
<<运算? a<<b 表示把a转为二进制后左移b位(在后面添加 b个0).例如100的二进制表示为1100100,100左移2位后(后面加2个零):1100100<< ...
- C#windows 服务 《转载》
转自:https://blog.csdn.net/Code_May/article/details/123909870 c#应用Windows服务 背景 一.创建windows服务 1.创建windo ...
- 【论文写作】Vancouver style
参考文献引用风格之 Vancouver style 需要在引用出使用阿拉伯数字(1,2,3...)标注参考文献序号. 示例: Deep Learning [1]. Reference [1] LeCu ...
- VAE变分自编码器公式推导
VAE变分推导依赖数学公式 (1)贝叶斯公式:\(p(z|x) = \frac{p(x|z)p(z)}{p(x)}\) (2)边缘概率公式:\(p(x) =\int{p(x,z)}dz\) (3)KL ...
- python的global用法
在python中,我们在函数外定义了一个变量,如果我们想在函数内对这个变量进行操作,就需要在函数内部将这个变量声明为global. 例1 x = 1 def func(): x = 2 func() ...
- JavaSE——面向对象(类与对象)
package com.zhao.test1; public class GirlFriend { //属性 String name; int age; String gender; //行为 pub ...