JSP网站开发基础总结《四》
经过前几篇的摸爬滚打,下面我们就开始我们真正的数据库操作了,本篇重点在于如何在网站端编写数据库操作语句,内容不多,就是我们常见的增删改查。
0、数据库对象创建:
在JAVASE基础知识总结时,就为大家点明了,JAVA是一种面向对象编程语言,所以我们再进行数据库创建之前,要先创建一个对象类。
/*
* 实例化数据库中的对象
*/
public class Student {
private int id;//学生ID
private String name;//学生姓名
private int sex;//学生性别
private int year;//学生年龄
private String from;//学生故乡
private String school;//学生所在学校 //为属性添加set()、get()方法
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getSex() {
return sex;
}
public void setSex(int sex) {
this.sex = sex;
}
public int getYear() {
return year;
}
public void setYear(int year) {
this.year = year;
}
public String getFrom() {
return from;
}
public void setFrom(String from) {
this.from = from;
}
public String getSchool() {
return school;
}
public void setSchool(String school) {
this.school = school;
}
}
1、接口创建:
这里采用了面向接口编程,方便我们管理我们的数据库操作方法。
/*
* 数据库操作方法接口
*/
public interface StudentMa { public boolean add(Student student);//添加
public boolean del(int id);//删除
public boolean update(Student student);//修改
public Student getById(int id);//精确查询
public List<Student> getByName(String name);//模糊查询
public List<Student> getAll();//遍历 }
2、增加操作:
如何通过JAVA语句为数据库添加数据呢?下面就是具体的方法实现。
public boolean add(Student student) {
boolean flag = false;
Connection conn = null;
PreparedStatement pst = null;
conn = DBO.getConnection();
String sql = "insert into students (name,sex,year,from,school) values (?,?,?,?,?)";//'?'表示占位符
try {
pst = conn.prepareStatement(sql);
pst.setString(1, student.getName());
pst.setInt(2, student.getSex());
pst.setInt(3, student.getYear());
pst.setString(4, student.getFrom());
pst.setString(5, student.getSchool());
int n = pst.executeUpdate();
if(n>0){
flag = true;
}
} catch (SQLException e) {
e.printStackTrace();
}
return flag;
}
3、删除操作:
如何通过JAVA语句删除数据库中的数据呢?下面就是具体的方法实现。
public boolean del(int id) {
boolean flag = false;
Connection conn = null;
PreparedStatement pst = null;
conn = DBO.getConnection();
String sql = "delete from students where id="+id;
try {
pst = conn.prepareStatement(sql);
int n = pst.executeUpdate();
if(n>0){
flag = true;
}
} catch (SQLException e) {
e.printStackTrace();
}
return flag;
}
4、修改操作:
如何通过JAVA语句修改数据库中的数据呢?下面就是具体的方法实现。
public boolean update(Student student) {
boolean flag = false;
Connection conn = null;
PreparedStatement pst = null;
conn = DBO.getConnection();
String sql = "update students set name=?,sex=?,year=?,from=?,school=? where id=?";//'?'表示占位符
try {
pst = conn.prepareStatement(sql);
pst.setString(1, student.getName());
pst.setInt(2, student.getSex());
pst.setInt(3, student.getYear());
pst.setString(4, student.getFrom());
pst.setString(5, student.getSchool());
pst.setInt(6, student.getId());
int n = pst.executeUpdate();
if(n>0){
flag = true;
}
} catch (SQLException e) {
e.printStackTrace();
}
return flag;
}
5、查询操作:
a、精确查询:
如何通过JAVA语句精确查找数据库中的数据呢?下面就是具体的方法实现。
public Student getById(int id) {
Student student = new Student();
Connection conn = null;
Statement st = null;
ResultSet rs = null;
conn = DBO.getConnection();
String sql = "select * from students where id="+id;
try {
st = conn.createStatement();
rs = st.executeQuery(sql);
while(rs.next()){
student.setId(id);
student.setName(rs.getString("name"));
student.setSex(rs.getInt("sex"));
student.setYear(rs.getInt("year"));
student.setFrom(rs.getString("from"));
student.setSchool(rs.getString("school"));
}
} catch (SQLException e) {
e.printStackTrace();
}
return student;
}
b、模糊查询:
如何通过JAVA语句模糊查找数据库中的数据呢?下面就是具体的方法实现。
public List<Student> getByName(String name) {
List<Student> list = null;
Connection conn = null;
PreparedStatement pst = null;
ResultSet rs = null;
conn = DBO.getConnection();
String sql = "select * from students where name like ?";
try {
pst = conn.prepareStatement(sql);
pst.setString(1, "%"+name+"%");
rs = pst.executeQuery();
while(rs.next()){
Student student = new Student();
student.setId(rs.getInt("id"));
student.setName(rs.getString("name"));
student.setSex(rs.getInt("sex"));
student.setYear(rs.getInt("year"));
student.setFrom(rs.getString("from"));
student.setSchool(rs.getString("school"));
list.add(student);
}
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
6、遍历操作:
如何通过JAVA语句遍历数据库中的数据呢?下面就是具体的方法实现。
public List<Student> getAll() {
List<Student> list = new ArrayList<Student>();
Connection conn = null;
Statement st = null;
ResultSet rs = null;
conn = DBO.getConnection();
String sql = "select * from students";
try {
st = conn.createStatement();
rs = st.executeQuery(sql);
while(rs.next()){
Student student = new Student();
student.setId(rs.getInt("id"));
student.setName(rs.getString("name"));
student.setSex(rs.getInt("sex"));
student.setYear(rs.getInt("year"));
student.setFrom(rs.getString("from"));
student.setSchool(rs.getString("school"));
list.add(student);
}
} catch (SQLException e) {
e.printStackTrace();
}
return list;
}
好了到这里,关于数据库的增删改查操作的JAVA实现已经为大家总结完毕。下一篇select实现jsp页面与数据库交互。
JSP网站开发基础总结《四》的更多相关文章
- JSP网站开发基础总结《二》
有了上一篇的学习,我相信大家对于JSP一定有了一定的认识,从今天开始我们真正开启JSP模式,如果你有HTML的基础,那学起JSP来也就方便了很多了,首先JSP做为网站开发语言,它与HTML有很多相似的 ...
- JSP网站开发基础总结《一》
经过JAVASE的学习相信大家对JAVA已经不再陌生,那么JAVA都可以干什么呢?做算法.应用程序.网站开发都可以,从今天开始为大家奉上JAVAEE之JSP动态网站开发基础总结. 既然是动态网站开发, ...
- JSP网站开发基础总结《八》
JSP的学习总结到本篇已经八篇了,内容比较多,但都是实战,本篇最后为大家介绍一个小效果:百度分页.就是当我们遍历的数据对象较多时,这时我们就会看到了这个效果了,那他是如何实现的呢?下面我们就一起学习一 ...
- JSP网站开发基础总结《七》
按照计划本篇将为大家总结搜索功能的两种实现:确定搜索与模糊搜索.所谓精确搜索便是指,根据用户的输入的搜索内容,在数据库中寻找具有一一对应的关系的数据,一般都是用户在数据库中的主键值.而模糊搜索,是一种 ...
- JSP网站开发基础总结《十二》
前两篇已经简单为大家介绍了一下,有关Filter接口的知识,本篇就让我们以一个登录小功能,来具体实现一下过滤器的作用,便于大家掌握.具体为大家介绍一下如何使用Filter对访问进行过滤,及如何防止中文 ...
- JSP网站开发基础总结《十三》
继上一篇为大家补充过滤器类后,本篇为大家简单介绍一下如何实现验证码效果.验证码的作用是什么呢?1.防止恶意注册2.防止恶意提交3.防止盗取账户等等,总的来说验证码的存在就是为了,防止非人为的操作,不过 ...
- JSP网站开发基础总结《九》
本篇属于附加篇,在之前的总结中给大家提到过一个关于登录状态验证的效果,当时是通过Session对象完成的,今天我查了一下,JSP为我们封装了一个用于过滤用的过滤器类Filter,通过它我们就可以非常轻 ...
- JSP网站开发基础总结《六》
对于本篇需要总结的内容,量估计有点大,大家好好看哈,绝对全是干货,代码的已经运行测试,不存在问题,大家可以参考学习,下面开始本篇的内容. 1.添加数据到数据库: 如何用户在JSP页面的填写的信息输入到 ...
- JSP网站开发基础总结《九》(转)
本篇属于附加篇,在之前的总结中给大家提到过一个关于登录状态验证的效果,当时是通过Session对象完成的,今天我查了一下,JSP为我们封装了一个用于过滤用的过滤器类Filter,通过它我们就可以非常轻 ...
随机推荐
- SQL之DDL
DDL是SQL定义语言,它主要包括三个关键字:create ,alter , drop(数据库关键字不分大小写 ),主要操作对象 有数据库.表.索引.视图等 操作 ...
- Minimum configuration for openldap to proxy multiple AD into a single search base
[root@localhost ~]# cd /etc/openldap[root@localhost openldap]# cat slapd.confloglevel 0x900include / ...
- [置顶]PADS PCB功能使用技巧系列之NO.001- 如何走蛇形线?
蛇形线是布线过程中常用的一种走线方式,其主要目的是为了调节延时满足系统时序设计要求,但是设计者应该有这样的认识:蛇形线会破坏信号质量,改变传输延时,布线时要尽量避免使用,因此一块PCB上的蛇形线越多并 ...
- Testng之使用@DataProvider注解做数据驱动【转】
原文:http://www.jianshu.com/p/8e333a0ec42a 前两天学了一下@DataProvider,今天有时间总结一下.testng很强大,提供了很多注解,其中利用@DataP ...
- 【转】VC中的字符串处理
http://hi.baidu.com/nmn714/item/ab8d2a96d0f2d6f228164727 貌似不少人刚开始做windows程序时都会纠结在字符串处理上,所以我把关于字符串处理的 ...
- 七牛php sdk 生成上传凭证时出现 undefined function Qiniu_SetKeys()
将qiniu/http.php文件改名即可,原因是xampp等集成环境会安装pear存在了http.php
- 负载均衡的mariadb集群搭建
集群介绍: Galera是一个MySQL(也支持MariaDB,Percona)的同步多主集群软件,目前只支持InnoDB引擎. 主要功能: 同步复制 真正的multi-master,即所有节点可以同 ...
- ASP.NET 4.5.256 has not been registered on the Web server. You need to manually configure your Web server for ASP.NET 4.5.256 in order for your site to run correctly
Microsoft .NET Framework 4.6安装后,用户可能会在使用Microsoft Visual Studio 创建(或打开现有项目时)网站.或Windows Azure项目时遇到下面 ...
- [.NET领域驱动设计实战系列]专题五:网上书店规约模式、工作单元模式的引入以及购物车的实现
一.前言 在前面2篇博文中,我分别介绍了规约模式和工作单元模式,有了前面2篇博文的铺垫之后,下面就具体看看如何把这两种模式引入到之前的网上书店案例里. 二.规约模式的引入 在第三专题我们已经详细介绍了 ...
- 解决IE6下png图片透明度不显示的问题
世界上最遥远的距离,不外乎我在搞前端,你却在用旧IE,现在随着XP要退休了,IE6的市场占有率应该也会逐步下滑.不过基于天朝人民的惰性以及企鹅微软的“扎篱笆”活动,做网站的朋友依旧不能忽视IE6的存在 ...