经过前几篇的摸爬滚打,下面我们就开始我们真正的数据库操作了,本篇重点在于如何在网站端编写数据库操作语句,内容不多,就是我们常见的增删改查。

 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网站开发基础总结《四》的更多相关文章

  1. JSP网站开发基础总结《二》

    有了上一篇的学习,我相信大家对于JSP一定有了一定的认识,从今天开始我们真正开启JSP模式,如果你有HTML的基础,那学起JSP来也就方便了很多了,首先JSP做为网站开发语言,它与HTML有很多相似的 ...

  2. JSP网站开发基础总结《一》

    经过JAVASE的学习相信大家对JAVA已经不再陌生,那么JAVA都可以干什么呢?做算法.应用程序.网站开发都可以,从今天开始为大家奉上JAVAEE之JSP动态网站开发基础总结. 既然是动态网站开发, ...

  3. JSP网站开发基础总结《八》

    JSP的学习总结到本篇已经八篇了,内容比较多,但都是实战,本篇最后为大家介绍一个小效果:百度分页.就是当我们遍历的数据对象较多时,这时我们就会看到了这个效果了,那他是如何实现的呢?下面我们就一起学习一 ...

  4. JSP网站开发基础总结《七》

    按照计划本篇将为大家总结搜索功能的两种实现:确定搜索与模糊搜索.所谓精确搜索便是指,根据用户的输入的搜索内容,在数据库中寻找具有一一对应的关系的数据,一般都是用户在数据库中的主键值.而模糊搜索,是一种 ...

  5. JSP网站开发基础总结《十二》

    前两篇已经简单为大家介绍了一下,有关Filter接口的知识,本篇就让我们以一个登录小功能,来具体实现一下过滤器的作用,便于大家掌握.具体为大家介绍一下如何使用Filter对访问进行过滤,及如何防止中文 ...

  6. JSP网站开发基础总结《十三》

    继上一篇为大家补充过滤器类后,本篇为大家简单介绍一下如何实现验证码效果.验证码的作用是什么呢?1.防止恶意注册2.防止恶意提交3.防止盗取账户等等,总的来说验证码的存在就是为了,防止非人为的操作,不过 ...

  7. JSP网站开发基础总结《九》

    本篇属于附加篇,在之前的总结中给大家提到过一个关于登录状态验证的效果,当时是通过Session对象完成的,今天我查了一下,JSP为我们封装了一个用于过滤用的过滤器类Filter,通过它我们就可以非常轻 ...

  8. JSP网站开发基础总结《六》

    对于本篇需要总结的内容,量估计有点大,大家好好看哈,绝对全是干货,代码的已经运行测试,不存在问题,大家可以参考学习,下面开始本篇的内容. 1.添加数据到数据库: 如何用户在JSP页面的填写的信息输入到 ...

  9. JSP网站开发基础总结《九》(转)

    本篇属于附加篇,在之前的总结中给大家提到过一个关于登录状态验证的效果,当时是通过Session对象完成的,今天我查了一下,JSP为我们封装了一个用于过滤用的过滤器类Filter,通过它我们就可以非常轻 ...

随机推荐

  1. [UE4]逻辑状态机组件

    逻辑状态机 为了实现对目标状态的控制,以及广播改变状态后的事件,可在蓝图中继续处理不同状态下的行为. 实现过程: 1.继承ActorComponent实现LogicStateMachine: 2.被击 ...

  2. java.lang.RuntimeException: Method setUp in android.test.ApplicationTestCase not mocked. See http://g.co/androidstudio/not-mocked for details.

    解决: build.gradle里加入: android { testOptions { unitTests.returnDefaultValues = true } }

  3. java基础(环境设置,基础语法,函数数组)

    框架图 环境搭建 课程中常见dos命令: dir : 列出当前目录下的文件以及文件夹 md : 创建目录 rd : 删除目录 cd : 进入指定目录 cd.. : 退回到上一级目录 cd/ : 退回到 ...

  4. Runtime消息传送

    person.h #import<Foundation/Foundation.h> @interfacePerson :NSObject + (void)eat; - (void)run: ...

  5. Lucene 查询工具 LQT

    Lucene Query Tool (lqt) 是一个命令行工具用来执行 Lucene 查询并对结果进行格式化输出. 使用方法: 01 $ ./lqt 02 usage: LuceneQueryToo ...

  6. javascript 设计模式-----工厂模式

    所谓的工厂模式,顾名思义就是成批量地生产模式.它的核心作用也是和现实中的工厂一样利用重复的代码最大化地产生效益.在javascript中,它常常用来生产许许多多相同的实例对象,在代码上做到最大的利用. ...

  7. 每周一书-《Bootstrap基础教程》

    首先说明,本周活动有效时间为8月15日到21日.本周为大家送出的书是有电子工业出版,贺臣/陈鹏编著的<Bootsrap基础教程>,为前端入门必读书籍. 下面是从书中摘录的内容. “ Boo ...

  8. git 合并分支

    当前git有PreRelease和Release两个分支,现在需要将前者合并到后者. Clone版本 在本地clone一个目标工程. 然后右键 Tortoise-->Switch/Checkou ...

  9. 那些VisualStudio隐藏的调试功能

    VisualStudio是一个强大的调试工具,里面很多隐藏功能少有人问津,但是在特定场景可以节省你很多时间,本文主要介绍一些VisualStudio调试相关的隐藏功能,欢迎大家补充. 运行到指针(Ru ...

  10. Java用来进行批量文件重命名,批量提取特定类型文件

    原因: 因为在网上下载视频教程,有的名字特别长,一般都是机构或者网站的宣传,不方便直接看到视频的简介,所以做了下面的第一个功能. 因为老师发的课件中,文件夹太多,想把docx都放在同一个文件夹下面,一 ...