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集合中.做一个菜单,可以添加,删除 ...
随机推荐
- html元素全屏展示
参数传入dom对象即可,注意不是jQuery对象,Vue下兼容 /** * 面板全屏展示 */ fullscreen: function () { if (this.isFullScreen) { / ...
- [JavaScript]实例化对象
使用语法结构创建的对象 function Duck(name) { var obj = { name: name, say: function (content) { console.log(cont ...
- Nucmer+LINKVIEW实现序列水平的共线性分析
https://www.cnblogs.com/johnsonzzz/p/15151634.html https://github.com/YangJianshun/LINKVIEW 可以绘制两个基因 ...
- Oracle View的 With Check OPTION 參數有什麼用途?
1. 當通過View Insert數據到定義此View的SQL中的基本表的時候,insert的資料要符合SQL中here條件,否則Insert View 的操作無法成功: 2. 注意:WITH REA ...
- unity GetComponent在android端获取对象错误
PlayerObj pobj = go.GetComponent<PlayerObj>(); if (pobj && pobj.IsMyTeam()) { marchAct ...
- goland使用go mod模式
使用go mod之后,想要在goland中有代码提示,有两种方式,一种是使用gopath下的goimport工具,另一种是使用gomod自身的管理工具 我是用的是非gopath的方式,每次新建项目后总 ...
- 裁员潮下,我月薪3W依旧坚挺
近几年来产品经理一直是求职市场中的香饽饽: 年薪20w起.没有专业限制.职业天花板高,甚至行业中一直流传着一句话:产品经理是CEO的学前班. 在各种光环的加持下,不少应届生或有转行打算的职场人都将目光 ...
- centos7 系统初始化配置
1.设置ip地址 [root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens192 PROXY_METHOD="none ...
- HDLbits——Mt2015 lfsr
1.描述电路图里面的一个子模块 Assume that you want to implement hierarchical Verilog code for this circuit, using ...
- HDLbits——Rotate100
verilog代码: // Build a 100-bit left/right rotator, with synchronous load and left/right enable. //A r ...