返回目录:《学生信息管理系统(Java+JSP)》

这里以JDBC操作MySQL数据库为例。

假设有一个名为test的数据库,里面有一张学生表,表名称为student,表结构如下:

student表结构

表中数据如下:

student表数据

(假设工程名称为test1,学生类在com.test1.entity包中。)

在工程中创建与表结构对应的学生类:

package com.test1.entity;public class Student {private Integer sid;private String sname;private Integer sage;private String ssex;private String snativeplace;private String smajor;private String sclass;private String snative;public Integer getSid() {return sid;}public String getSname() {return sname;}public Integer getSage() {return sage;}public String getSsex() {return ssex;}public String getSnativeplace() {return snativeplace;}public String getSmajor() {return smajor;}public String getSclass() {return sclass;}public String getSnative() {return snative;}public void setSid(Integer sid) {this.sid = sid;}public void setSname(String sname) {this.sname = sname;}public void setSage(Integer sage) {this.sage = sage;}public void setSsex(String ssex) {this.ssex = ssex;}public void setSnativeplace(String snativeplace) {this.snativeplace = snativeplace;}public void setSmajor(String smajor) {this.smajor = smajor;}public void setSclass(String sclass) {this.sclass = sclass;}public void setSnative(String snative) {this.snative = snative;}public Student(Integer sid, String sname, Integer sage, String ssex, String snativeplace, String smajor, String sclass, String snative) {this.sid = sid;this.sname = sname;this.sage = sage;this.ssex = ssex;this.snativeplace = snativeplace;this.smajor = smajor;this.sclass = sclass;this.snative = snative;}public Student() {super();}@Overridepublic String toString() {return "Student{" +"sid=" + sid +", sname='" + sname + '\'' +", sage=" + sage +", ssex='" + ssex + '\'' +", snativeplace='" + snativeplace + '\'' +", smajor='" + smajor + '\'' +", sclass='" + sclass + '\'' +", snative='" + snative + '\'' +'}';}
}

创建一个操作数据库的类:

package com.test1.db;import com.test1.entity.Student;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;/***  操作数据库的类*/
public class StudentDb {//写一个获取mysql数据库连接的函数/***  函数功能:获取数据库连接对象* @return 返回数据库连接对象*  使用说明:提前知道获取数据库连接对象时所需要的四大参数*  1、驱动类的名称(数据库不同,驱动类的名称不同)*  2、数据库的URL*  3、使用数据库时的用户名*  4、用户名对应的密码*  一定要导入相对应的jar包*/private static Connection getConn(){//第一步:加载驱动类(如果有异常,则抛出异常或者使用try..catch..语句块处理)try {Class.forName("com.mysql.jdbc.Driver");} catch (ClassNotFoundException e) {e.printStackTrace();System.out.println("驱动类加载失败。");/***  这里可能报错:ClassNotFoundException*  错误原因:可能是驱动类的名称拼写错误,也可能是所需要的jar包没有导入*/}//第二步:获取连接对象String url = "jdbc:mysql://localhost:3306/test";String  username = "root";String  password = "123456";Connection conn = null;try {conn = DriverManager.getConnection(url,username,password);} catch (SQLException e) {e.printStackTrace();System.out.println("连接对象获取失败。");}//返回一个连接对象return conn;}/***  函数功能:通过查询语句来获取数据库中的表格信息* @param sql* @return 返回一个List对象* @throws SQLException*/public List<Student> getStudent(String sql) throws SQLException {//查询语句的执行结果为一个表格,即多个学生对象的集合,所有可以创建数组列表对象来存储List<Student> lst = new ArrayList<Student>();//获取连接对象Connection conn = getConn();try {//连接对象conn调用createStatement()方法,创建一个执行SQL语句的对象stStatement st = conn.createStatement();//执行SQL语句的对象st调用executeQuery()方法,执行查询语句,将查询到的结果返回到一个结果集中ResultSet rs = st.executeQuery(sql);//遍历结果集对象while(rs.next()){Student stu = new Student();stu.setSid(rs.getInt("sid"));stu.setSname(rs.getString("sname"));stu.setSage(rs.getInt("sage"));stu.setSsex(rs.getString("ssex"));stu.setSnativeplace(rs.getString("snativeplace"));stu.setSmajor(rs.getString("smajor"));stu.setSclass(rs.getString("sclass"));stu.setSnative(rs.getString("snative"));lst.add(stu);}}catch (Exception e){System.out.println(e.getMessage());}finally {//资源使用完之后,如果没有关闭,则需要关闭if (conn!=null){conn.close();}}return lst;}/***  函数功能:对表中数据进行增删改操作* @param sql* @return true或者false* @throws SQLException*/public boolean studentUpdate(String sql) throws SQLException {//获取数据库连接对象Connection conn = getConn();try {//连接对象调用createStatement()方法,创建一个执行SQL语句的对象Statement st = conn.createStatement();//执行SQL语句的对象st,调用executeUpdate()方法执行SQL语句,执行结果为int类型,表示受到影响的记录条数//executeUpdate( )方法可以执行增删改DML语句和创建表、删除表等DDL语句int cnt = st.executeUpdate(sql);return cnt>0; //如果有记录受到影响,则表示更新操作成功}catch (Exception e){System.out.println(e.getMessage());return false;}finally {if (conn!=null)conn.close();}}//测试一下public static void main(String[] args) throws SQLException {List<Student> lst = new ArrayList<Student>();lst=(new StudentDb()).getStudent("select * from student");for (Student stu: lst) {//调用Student实体类中的toString()方法,将Student对象转换成字符串输出System.out.println(stu.toString());}boolean tf =(new StudentDb()).studentUpdate("update student set sage=24 where sid = 10002");lst=(new StudentDb()).getStudent("select * from student");for (Student stu: lst) {//调用Student实体类中的toString()方法,将Student对象转换成字符串输出System.out.println(stu.toString());}}
}

运行StudentDb.java,结果如下:

StudentDb.java运行结果图

问:如何将数据库中的表格信息输出到页面?

答:详见博客《将数据库中的表格信息输出到页面上》

返回目录:《学生信息管理系统(Java+JSP)》

JDBC操作数据库实例相关推荐

  1. JDBC 操作数据库实例

    JDBC是什么 JDBC代表Java数据库连接(Java Database Connectivity),它是用于Java编程语言和数据库之间的数据库无关连接的标准Java API,换句话说:JDBC是 ...

  2. JavaWeb:用JDBC操作数据库

    JDBC系列阅读 JavaWeb:用JDBC操作数据库 JavaWeb:JDBC之事务 JavaWeb:JDBC之数据库连接池 使用JDBC实现水果超市管理系统 1. 什么是JDBC JDBC的全称是 ...

  3. 24、jdbc操作数据库(1)

    什么是jdbc? 看一下官方怎么说,JDBC 英文名Java DataBase Connectivity,使用java连接数据库的工具,就是一组使用java代码来执行SQL语句的API. Jdbc有什 ...

  4. java完整JDBC操作数据库

    java使用JDBC操作数据库的包含以下7个主要步骤: 1.加载JDBC驱动程序 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过java.lang.Class类的 ...

  5. 说说JDBC 操作数据库的步骤?

    分析&回答 1)加载(注册)数据库驱动(到JVM). 2)建立(获取)数据库连接. 3)创建(获取)数据库操作对象. 4)定义操作的SQL语句. 5)执行数据库操作. 6)获取并操作结果集. ...

  6. Java数据库开发与应用之MySQL数据库、JDBC操作数据库、C3P0数据库连接池,Java反射等

    MySQL数据库,JDBC接口,MyBatis框架等,掌握的数据的存放和管理. Java数据库开发基础,介绍MySQL数据库.JDBC操作数据库.C3P0数据库连接池,Java反射等内容,进行油画商城 ...

  7. 20.JDBC操作数据库

    目录 1. Java基本介绍 2. JDK下载安装及其环境配置 3. 一个简单的java程序 4. Eclipse基本使用.数据类型.运算符 5. 控制语句(if.switch.for.while.f ...

  8. Java笔记(第七篇 JDBC操作数据库)

    JDBC是连接数据库和java程序的桥梁,通过JDBC API可以方便地实现对各种主流数据库的操作.学习java语言,必须学习JDBC技术,因为JDBC技术实在java语言中被广泛使用的一种操作数据库 ...

  9. php django mysql配置文件_Mysql学习Django+mysql配置与简单操作数据库实例代码

    <Mysql学习Django+mysql配置与简单操作数据库实例代码>要点: 本文介绍了Mysql学习Django+mysql配置与简单操作数据库实例代码,希望对您有用.如果有疑问,可以联 ...

最新文章

  1. Php 获取xml中的节点值
  2. NET使用了UpdatePanel后如何弹出对话框!
  3. python编写爬虫的步骤-python网络爬虫(二)编写第一个爬虫
  4. 计算机科学期刊拒稿概率大吗,发表论文初审过了复审被拒概率高不高
  5. 正则表达式中(?:)的巨大作用
  6. asp.net core合并压缩资源文件引发的学习之旅
  7. 《Python Cookbook 3rd》笔记(1.15):通过某个字段将记录分组
  8. pip install 时报错 ERROR: Could not install packages due to an EnvironmentError: [WinError 5] 拒绝访问(已解决)
  9. leaflet自定标签json_Windows Terminal更新后,自定义配置失效?快捷键无法使用?
  10. 想知道账号被封的感觉么?
  11. 网络工程师成长日记368-榆林通信大楼项目回忆录
  12. 關于dotNet開發中的框架思考
  13. 超快捷的源代码编辑器「Textastic」
  14. 【Caffe安装】caffe安装系列——史上最详细的安装步骤
  15. MySQL生成测试数据相关脚本(持续更新)
  16. 保研推免经历经验分享——2018北大软微、北航计算机、南大计算机夏令营保研经历
  17. 汇编指令-bic(位清除)、orr(位或)(3)
  18. 人工智能真正值得担心的是缺德,而不是聪明
  19. 《Android 应用 之路》一个类似今日头条的APP
  20. 【word】常用数学符号、数学表达式的快捷键(持更)

热门文章

  1. linux命令 iperf-网络性能测试工具
  2. 如何对正在运行的进程,进行heap profile
  3. Lua生成Guid(uuid)
  4. 汇编试验十五:安装新的int 9中断例程
  5. 转载 iOS js oc相互调用(JavaScriptCore) --iOS调用js
  6. Fedora 19下Guacamole的安装使用
  7. C#利用lambda在函数中创建内部函数
  8. 关系管理系统:js代码生成select的出生日期
  9. SLAM前端中的视觉里程计和回环检测
  10. 多传感器融合之滤波(二)EKF