JSP与数据库的增删改查

您所在的位置:网站首页 jsp中数据库连接的常用方式 JSP与数据库的增删改查

JSP与数据库的增删改查

2023-12-04 11:39| 来源: 网络整理| 查看: 265

1.准备工作,首先要有一个数据库,在数据库里新建一个表,用来操作id要设置为自动增长列,否则在插入操作无法成功

在MyEclipse中新建一个Web Progect工程

在src目录下建立entity包,dao包

在WebRoot/WebInfo/lib/导入sqljdbc.jar包(用于对数据库进行操作)

2.entity包,用于操作数据库  (这部分用到的成员变量最好直接通过数据库来直接复制,以免存在漏泄,写错单词等低级错误,其他的就是简单的get和set方法了)

package entity; public class UserInfo { private int id; private String user_name; private String user_sex; private int user_age; private String user_hobby; private String user_city; private String mtext; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUser_name() { return user_name; } public void setUser_name(String user_name) { this.user_name = user_name; } public String getUser_sex() { return user_sex; } public void setUser_sex(String user_sex) { this.user_sex = user_sex; } public int getUser_age() { return user_age; } public void setUser_age(int user_age) { this.user_age = user_age; } public String getUser_hobby() { return user_hobby; } public void setUser_hobby(String user_hobby) { this.user_hobby = user_hobby; } public String getUser_city() { return user_city; } public void setUser_city(String user_city) { this.user_city = user_city; } public String getMtext() { return mtext; } public void setMtext(String mtext) { this.mtext = mtext; } }

Dao包下用于对数据库的操作数据库

(1)

BaseDao.java链接数据库(其中的close方法中依次关闭了结果集,操作句柄,链接)

package dao; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class BaseDao { public static Connection getConnection()throws Exception{ Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); String url="jdbc:sqlserver://127.0.0.1:1433;database=mydb"; return DriverManager.getConnection(url, "sa", "sa"); } public static void close(ResultSet rs,Statement sta,Connection con)throws Exception{ if(rs!=null){ //关闭结果集  rs.close(); } if(sta!=null){ //关闭操作句柄  sta.close(); } if(con!=null){ //关闭链接  con.close(); } } } UserinfoDao.java 

是数据库的增删改查的方法

package dao; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import entity.UserInfo; public class UserInfoDao { //查询所有(查) public ArrayList findAll(){ Connection con=null; PreparedStatement psta=null; ResultSet rs=null; ArrayList list=new ArrayList(); String sql="select * from userinfo"; try{ con=BaseDao.getConnection(); psta=con.prepareStatement(sql); rs=psta.executeQuery(); while(rs.next()){ UserInfo obj=new UserInfo(); obj.setId(rs.getInt(1)); obj.setUser_name(rs.getString(2)); obj.setUser_sex(rs.getString(3)); obj.setUser_age(rs.getInt(4)); obj.setUser_hobby(rs.getString(5)); obj.setUser_city(rs.getString(6)); obj.setMtext(rs.getString(7)); list.add(obj); } }catch(Exception e){ e.printStackTrace(); }finally{ try{ BaseDao.close(rs, psta, con); }catch(Exception e){ e.printStackTrace(); } return list; } } //插入方法(增) public boolean save(UserInfo obj){ Connection con=null; PreparedStatement psta=null; String sql="insert into userinfo values(?,?,?,?,?,?)"; boolean flag=false; try{ con=BaseDao.getConnection(); psta=con.prepareStatement(sql); psta.setString(1, obj.getUser_name()); psta.setString(2, obj.getUser_sex()); psta.setString(3, obj.getUser_age()+""); psta.setString(4, obj.getUser_hobby()); psta.setString(5, obj.getUser_city()); psta.setString(6, obj.getMtext()); flag=psta.executeUpdate()>0; }catch(Exception e){ e.printStackTrace(); }finally{ try{ BaseDao.close(null, psta, con); }catch(Exception e){ e.printStackTrace(); } return flag; } } //删除方法(删) public boolean remove(int id){ Connection con=null; PreparedStatement psta=null; boolean flag=false; String sql="delete from userinfo where id=?"; try{ con=BaseDao.getConnection(); psta=con.prepareStatement(sql); psta.setInt(1, id); flag=psta.executeUpdate()>0; }catch(Exception e){ e.printStackTrace(); }finally{ try{ BaseDao.close(null, psta, con); }catch(Exception e){ e.printStackTrace(); } return flag; } } //通过id修改,为更新做准备的(改) public UserInfo findById(int id){ Connection con=null; PreparedStatement psta=null; ResultSet rs=null; UserInfo obj=null; String sql="select * from userinfo where id=?"; try{ con=BaseDao.getConnection(); psta=con.prepareStatement(sql); psta.setInt(1, id); rs=psta.executeQuery(); if(rs.next()){ obj=new UserInfo(); obj.setId(rs.getInt(1)); obj.setUser_name(rs.getString(2)); obj.setUser_sex(rs.getString(3)); obj.setUser_age(rs.getInt(4)); obj.setUser_hobby(rs.getString(5)); obj.setUser_city(rs.getString(6)); obj.setMtext(rs.getString(7)); } }catch(Exception e){ e.printStackTrace(); }finally{ try{ BaseDao.close(rs, psta, con); }catch(Exception e){ e.printStackTrace(); } return obj; } } //更新方法(修改数据)(改) public boolean update(UserInfo obj){ Connection con=null; PreparedStatement psta=null; String sql="update userinfo set user_name=?,user_sex=?,user_age=?,user_hobby=?,user_city=?,mtext=? where id=?"; boolean flag=false; try{ con=BaseDao.getConnection(); psta=con.prepareStatement(sql); psta.setString(1, obj.getUser_name()); psta.setString(2, obj.getUser_sex()); psta.setString(3, obj.getUser_age()+""); psta.setString(4, obj.getUser_hobby()); psta.setString(5, obj.getUser_city()); psta.setString(6, obj.getMtext()); psta.setInt(7,obj.getId()); flag=psta.executeUpdate()>0; }catch(Exception e){ e.printStackTrace(); }finally{ try{ BaseDao.close(null, psta, con); }catch(Exception e){ e.printStackTrace(); } return flag; } } }

3.界面演示

查找界面

在WebRoot/WEB-INF下的index.jsp下设计要演示的界面

这里为了方便操作还增加了一些删除和修改的跳转链接(这部分是为了方便后续的删除和修改操作)

function myAction(pid){ document.forms[0].id.value=pid; document.forms[0].submit(); } 用户信息 添加新信息 编号 姓名 性别 年龄 爱好 城市 描述 操作 function myBack(){ //将浏览器导航为index.jsp,location.href属性可以更改当前浏览器地址栏的内容 location.href="index.jsp"; //window.location.href="index.jsp"; } //mySubmit方法用于提交表单,并且在提交之前验证表单数据的格式是否符合要求 function mySubmit(){ //先来个简单的,验证姓名必须有填写,不能为空 //首先获取姓名输入框的数据 //document是文档对象,代表整个HTML页面 //forms是表单集合,如果存在多个表单的话,索引从0开始,并且是从上往下编号 如果表单有表单名可以用document.表单名.控件名.value //user_name是表单下控件的名字 //value是获取这个控件的value值 //length是一个属性,返回长度 //var是变量,JavaScript是弱类型语言,也就是说不区分int,double,Object这些类型 //而是统一使用var表示 var name=document.forms[0].user_name; //通过document.getElementById(“id名”) 可以获取非 中的内容,但是dojsp无法获取   var name_msg=document.getElementById("name_msg"); var hobby_msg=document.getElementById("hobby_msg"); name_msg.innerHTML=""; hobby_msg.innerHTML=""; if(name.value.length==0){ //提示用户 //alert("姓名为必填项"); name_msg.innerHTML="*姓名为必填项"; //聚焦(鼠标定位) name.focus(); return ;//中断方法的运行 } //对于多选的控件判断会稍微麻烦点点哦 var hobby_item=document.forms[0].user_hobby; var flag=false; for(var i=0;i 性别: 男 女 年龄: 爱好: 唱歌 跳舞 阅读 城市: 北京         南京         成都         杭州         深圳         西安         长沙         武汉         上海         描述:     

这个界面要将新添加的信息发送给doadd.jsp页面,因此表单中要有post方式

界面如下

而doadd.jsp 是处理操作的页面,并非用于显示数据,所以无需任何HTML代码,只是将上一个add.jsp传递过来的数据进行处理,不用于在浏览器上显示出来

姓名: 性别: 年龄: 爱好: 城市:          描述:      doUpdate.jsp


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3