JDBC实验报告
实验九:JDBC编程
实验九JDBC编程一、实验目的1)掌握JDBC的概念与使用场景2)掌握JDBC的工作原理3)掌握使用JDBC操作数据库的基本步骤4)掌握JDBC中几个常用接口和类5)掌握带数据库操作的应用程序开发步骤二、实验环境JDK1.6+Eclpise3.2三、实验准备1)复习课件中理论知识2)练习课堂所讲的例子四、实验内容1)安装MySQL数据库2)在MySQL中创建数据库webdb,并创建表news3)实现对news表的增删改查五、实验过程及结果插入数据调试如图:查询数据调试如图:删除数据调试如图:修改数据调试如图:六、实验感想本次实验,我了解了JDBC的概念与使用场景,理解了JDBC的工作原理,掌握了使用JDBC操作数据库的基本步骤,掌握了JDBC中几个常用接口和类,了解了带数据库操作的应用程序开发步骤等。
七、附录插入数据代码:package zsl;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;public class InsertNews {public static void main(String[] args)throwsClassNotFoundException,SQLException {Class.forName("com.mysql.jdbc.Driver");Connection cn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/webdb?user=root&password=1");Statement stmt=cn.createStatement();int flag=stmt.executeUpdate("insert into news(title,author,hit)values('我院荣获全国独立学院','管理员','888')");if (flag>0){System.out.println("添加成功");}else{System.out.println("添加失败");}stmt.close();cn.close();}}查询数据代码:package zsl;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class SelectNews {public static void main(String[] args)throwsClassNotFoundException,SQLException {Class.forName("com.mysql.jdbc.Driver");Connection cn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/webdb?user=root&password=1");Statement stmt=cn.createStatement();ResultSet rs=stmt.executeQuery("select*from news");while (rs.next()){System.out.println("newsid-->+rs.getInt(1)");System.out.println("title-->+rs.getInt(2)");System.out.println("author-->+rs.getInt(3)");System.out.println("hit-->+rs.getInt(4)");}rs.close();stmt.close();cn.close();}}删除数据代码:package zsl;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;public class DeletNews {public static void main(String[] args)throws SQLException, ClassNotFoundException{Class.forName("com.mysql.jdbc.Driver");Connection cn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/webdb?user=root&password=1");Statement stmt=cn.createStatement();int flag=stmt.executeUpdate(" delete from news where author='管理员'");if (flag>0){System.out.println("删除成功");}else{System.out.println("删除失败");}stmt.close();cn.close();}}修改数据代码:package zsl;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.sql.Statement;public class UpdateNews {public static void main(String[] args)throwsClassNotFoundException,SQLException {Class.forName("com.mysql.jdbc.Driver");Connection cn=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/webdb?user=root&password=1");Statement stmt=cn.createStatement();int flag=stmt.executeUpdate("update news set title='我院荣获河南发展最快独立学院',hit=666 where author='管理员'");if (flag>0){System.out.println("修改成功");}else{System.out.println("修改失败");}stmt.close();cn.close();}}。
实验七 JDBC技术
实验七JDBC技术
【实验目的】
1.理解JDBC思想与体系结构;
2.掌握使用JDBC访问数据库的步骤;
3.掌握JDBCAPI的使用;
4.掌握访问不同数据库所需的相应驱动程序和使用的连接字符串;
5.掌握在Java应用程序中对数据库进行查询操作和更新操作;
6.掌握PreparedStatement与预处理操作。
【实验内容】
(一)建立ODBC数据源
1.建立一个名为student的Access数据库,在其中建立一个名为chengjibiao的数据表,该
表的结构如下(该表不设置主键),并向数据表中添加以下记录:
2.针对上述数据表,建立数据源,名为cheng。
具体步骤请参考第十三章课件。
(二)访问数据源,验证程序。
1.验证例子Example13_1.java,该程序用于查询数据库中chengjibiao里的全部记录,并输
出每条记录的所有字段。
2.验证例子Example13_4.java,该程序用于实现按英语成绩排序查询。
3.验证例子Example13_5.java,该程序用于实现随机查询,随机从结果集中取出4条记录,
并计算记录的书序成绩的平均值。
4.验证例子Example13_6.java,该程序演示对数据库的更新、添加和删除记录的操作。
5.验证例子Example13_8.java,该程序演示使用PreparedStatement对象,实现预处理操作。
(三)编写程序。
1.建立数据库,并建立图书信息表,保存图书编号、书名、作者、价格等信息,编写JDBC 程序实现对图书信息的检索和更新操作。
JDBC实验二使用JDBC实现数据库连接
JDBC实验二使用JDBC实现数据库连接JDBC(Java数据库连接)是Java语言访问数据库的标准接口,通过JDBC可以方便地连接和操作各种关系型数据库。
在本实验中,我将使用JDBC实现数据库连接的步骤和方法。
接下来,我们需要设置Java项目的classpath,将驱动程序添加到项目中。
classpath是指Java虚拟机用来查找类文件的路径。
我们可以通过命令行或者IDE的设置来配置classpath。
在本实验中,我们将通过IDE来设置classpath。
设置classpath的步骤如下(以Eclipse IDE为例):1. 打开Eclipse,并打开你的Java项目。
2. 右击项目文件,选择"Build Path"(构建路径) -> "Configure Build Path"(配置构建路径)。
3. 在弹出的窗口中,选择"Libraries"(库)选项卡。
5. 点击"Apply and Close"(应用并关闭)按钮。
现在,我们已经准备好在Java代码中使用JDBC来连接数据库了。
下面是连接数据库的代码示例:import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public class DatabaseConnectionpublic static void main(String[] args)//数据库连接信息String url = "jdbc:mysql://localhost:3306/test";String username = "root";//连接数据库try//加载数据库驱动程序Connection connection = DriverManager.getConnection(url, username, password);//连接成功,可以进行相关操作connection.close(;} catch (ClassNotFoundException e)e.printStackTrace(;} catch (SQLException e)e.printStackTrace(;}}以上代码示例中,我们通过调用`Class.forName(`方法来加载MySQL 数据库的驱动程序。
jdbc实训报告总结
jdbc实训报告总结实训报告:JDBC(Java Database Connectivity)一、实训目标本次JDBC实训的目标是掌握Java语言如何通过JDBC API与关系型数据库进行交互,包括数据库的连接、查询、更新和断开连接等操作。
二、实训内容1. 了解JDBC的基本概念和用途。
2. 掌握JDBC驱动的安装与配置。
3. 掌握使用JDBC API进行数据库连接、查询、更新和断开连接的步骤。
4. 了解事务处理和批处理的概念及实现方法。
5. 掌握使用PreparedStatement和CallableStatement执行参数化查询和存储过程。
6. 了解JDBC的异常处理机制。
7. 掌握使用连接池管理数据库连接。
三、实训过程1. 在实验环境中安装和配置JDBC驱动。
2. 编写Java程序,实现数据库的连接、查询、更新和断开连接等操作。
3. 编写Java程序,实现事务处理和批处理。
4. 编写Java程序,使用PreparedStatement和CallableStatement执行参数化查询和存储过程。
5. 编写Java程序,实现异常处理。
6. 编写Java程序,使用连接池管理数据库连接。
四、实训总结通过本次实训,我深入了解了JDBC API的使用方法,掌握了Java语言与关系型数据库的交互方式。
在实训过程中,我学会了如何安装和配置JDBC驱动,如何使用JDBC API进行数据库连接、查询、更新和断开连接等操作,以及如何使用PreparedStatement和CallableStatement执行参数化查询和存储过程。
此外,我还了解了事务处理和批处理的概念及实现方法,以及JDBC的异常处理机制和连接池的使用方法。
这些知识和技能将对我今后的学习和工作产生积极的影响。
jdbc增删改查实验报告
JDBC增删改查实验报告一、引言数据库是现代软件开发中不可或缺的一部分,而对数据库的操作也是开发中最常见的任务之一。
JDBC(Java Database Connectivity)是Java语言中用于与数据库进行交互的API。
本实验将通过使用JDBC进行增删改查操作,探索JDBC在数据库操作中的应用。
二、实验目的通过本实验,我们将达到以下目的: 1. 理解JDBC的基本概念和原理; 2. 掌握使用JDBC进行数据库连接和操作的方法; 3. 熟悉JDBC在增删改查中的应用; 4. 实践使用JDBC进行数据库操作。
三、实验环境本实验使用以下环境: - 操作系统:Windows 10 - JDK版本:Java 8 - 数据库:MySQL 8.0 - IDE:Eclipse四、实验步骤4.1 数据库准备在MySQL数据库中创建一个名为”test_db”的数据库,并创建一个名为”users”的表,表结构如下:CREATE TABLE users (id INT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50),age INT,email VARCHAR(50));4.2 配置JDBC连接在Java项目中引入JDBC依赖,例如使用Maven管理依赖的项目,在pom.xml文件中添加以下代码:<dependencies><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.26</version></dependency></dependencies>4.3 连接数据库在Java代码中使用JDBC连接数据库,示例代码如下:import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public class JdbcDemo {public static void main(String[] args) {// JDBC连接数据库String url = "jdbc:mysql://localhost:3306/test_db";String username = "root";String password = "123456";try {Connection connection = DriverManager.getConnection(url, username, password);// 连接成功,进行后续操作// ...} catch (SQLException e) {e.printStackTrace();}}}4.4 插入数据使用JDBC向数据库中插入数据,示例代码如下:import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.SQLException;public class JdbcDemo {public static void main(String[] args) {// JDBC连接数据库// ...try {// 插入数据String insertSql = "INSERT INTO users (name, age, email) VALUES (?, , )";PreparedStatement statement = connection.prepareStatement(insertSq l);statement.setString(1, "张三");statement.setInt(2, 20);statement.setString(3,"********************");int rows = statement.executeUpdate();if (rows > 0) {System.out.println("插入成功");} else {System.out.println("插入失败");}} catch (SQLException e) {e.printStackTrace();}}}4.5 查询数据使用JDBC从数据库中查询数据,示例代码如下:import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class JdbcDemo {public static void main(String[] args) {// JDBC连接数据库// ...try {// 查询数据String selectSql = "SELECT * FROM users";Statement statement = connection.createStatement();ResultSet resultSet = statement.executeQuery(selectSql);while (resultSet.next()) {int id = resultSet.getInt("id");String name = resultSet.getString("name");int age = resultSet.getInt("age");String email = resultSet.getString("email");System.out.println("id: " + id + ", name: " + name + ", age: " + age + ", email: " + email);}} catch (SQLException e) {e.printStackTrace();}}}4.6 更新数据使用JDBC更新数据库中的数据,示例代码如下:import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.SQLException;public class JdbcDemo {public static void main(String[] args) {// JDBC连接数据库// ...try {// 更新数据String updateSql = "UPDATE users SET age = ? WHERE name = ?";PreparedStatement statement = connection.prepareStatement(updateSq l);statement.setInt(1, 25);statement.setString(2, "张三");int rows = statement.executeUpdate();if (rows > 0) {System.out.println("更新成功");} else {System.out.println("更新失败");}} catch (SQLException e) {e.printStackTrace();}}}4.7 删除数据使用JDBC从数据库中删除数据,示例代码如下:import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.SQLException;public class JdbcDemo {public static void main(String[] args) {// JDBC连接数据库// ...try {// 删除数据String deleteSql = "DELETE FROM users WHERE name = ?";PreparedStatement statement = connection.prepareStatement(deleteSq l);statement.setString(1, "张三");int rows = statement.executeUpdate();if (rows > 0) {System.out.println("删除成功");} else {System.out.println("删除失败");}} catch (SQLException e) {e.printStackTrace();}}}五、实验总结通过本次实验,我们成功地使用JDBC进行了增删改查操作。
jdbc实验心得
JDBC实验心得1. 介绍JDBC(Java Database Connectivity)是Java语言访问数据库的标准API。
通过JDBC,可以实现Java程序与各种关系型数据库的连接与交互。
在本次实验中,我深入学习了JDBC的使用方法,并通过实际操作,对JDBC在开发中的重要性有了更深刻的认识。
本文将从以下几个方面详细探讨我在实验中的心得体会:•JDBC的基本概念及原理•JDBC连接数据库的步骤•实际操作中遇到的问题及解决方法•JDBC在开发中的应用场景•实验的收获和不足之处2. JDBC的基本概念及原理2.1 JDBC的作用和优势JDBC是Java语言连接数据库的标准接口。
它使得Java程序能够通过标准的数据库操作语句与数据库进行交互,实现数据的存储和查询等功能。
JDBC的优势在于它能够提供跨平台的数据库访问能力,而不依赖于特定的数据库或操作系统。
2.2 JDBC的工作原理JDBC的工作原理可以分为以下几个步骤:1.加载数据库驱动程序:在使用JDBC之前,需要先加载相应数据库的驱动程序。
通过Class.forName()方法加载驱动类,这个类实现了Java SQL接口规范。
2.建立数据库连接:通过DriverManager类的getConnection()方法,传入数据库URL、用户名和密码等参数,来建立与数据库的连接。
连接成功后,将返回一个Connection对象。
3.创建执行SQL语句的Statement对象:通过Connection对象的createStatement()方法,可以创建一个用于执行SQL语句的Statement对象。
4.执行SQL语句:使用Statement对象的executeQuery()或executeUpdate()方法,可以执行查询或更新操作。
5.处理查询结果或更新结果:当执行查询语句后,可以使用ResultSet对象来遍历查询结果集;当执行更新语句后,可以使用int值表示受影响的行数。
实验六 JDBC连接数据库
课程高级JAVA开发技术 _ 实验名称实验六 JDBC连接数据库教师审批签字一、实验目的掌握JDBC连接数据库二、实验内容1、通过JDBC/ODBC桥接方式访问Oralce数据库6.G.12、JDBC访问数据库6.G.2三、实验过程及结果实验源码:publicclass Constants {publicstatic String DRIVER = "sun.jdbc.odbc.JdbcOdbcDriver";publicstatic String URL = "jdbc:odbc:myscott";publicstatic String USERNAME = "scott";publicstatic String PASSWORD = "tiger";}import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;publicclass DBUtil {Connection conn = null;PreparedStatement pstmt = null;ResultSet rs = null;public Connection getConnection() throws ClassNotFoundException, SQLException, InstantiationException, IllegalAccessException { String DRIVER = Config.getValue("driver");String URL = Config.getValue("url");String USERNAME = Config.getValue("username");String PASSWORD = Config.getValue("password");System.out.println("DRIVER");try {Class.forName(DRIVER);conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);return conn;} catch (Exception e) {thrownew SQLException("驱动错误或连接失败");}}public ResultSet executeQuery(String preparedSql, String[] param) { try {pstmt = conn.prepareStatement(preparedSql);if (param != null) {for (int i = i; i < param.length; i++) {pstmt.setString(i + 1, param[i]);}}rs = pstmt.executeQuery();} catch (SQLException e) {e.printStackTrace();}return rs;}publicint executeUpdate (String preparedSql, String[] param) { int num = 0;try {pstmt = conn.prepareStatement(preparedSql);if (param != null) {for (int i = 0; i < param.length; i++) {pstmt.setString(i + 1, param[i]);}}num = pstmt.executeUpdate();} catch (SQLException e) {e.printStackTrace();}return num;}publicvoid closeAll() {if (rs != null) {try {rs.close();} catch (SQLException e) {e.printStackTrace();}}if (pstmt != null) {try {pstmt.close();} catch (SQLException e) {e.printStackTrace();}}if (conn != null) {try {conn.close();} catch (SQLException e) {e.printStackTrace();}}}}package com.haiersoft.chat.client;import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.ItemEvent;import java.awt.event.ItemListener;import java.sql.ResultSet;public class FrmRegist extends JFrame implements ActionListener { private JPanel p;private JLabel lblName, lblNickname, lblPwd, lblRePwd, lblSex, lblImage;private JTextField txtName, txtNickname;private JPasswordField txtPwd, txtRePwd;private JRadioButton rbMale, rbFemale;private JRadioButton[] ckbImage = new JRadioButton[8];private JButton btnOk, btnCancle, btnReturn;private String checkedHeadImg = null;public FrmRegist() {super("用户注册");p = new JPanel(null);lblName = new JLabel("用户名:");lblNickname = new JLabel("昵称:");lblPwd = new JLabel("密码:");lblRePwd = new JLabel("确认密码:");lblSex = new JLabel("性别:");lblImage = new JLabel("头像:");txtName = new JTextField(20);txtNickname = new JTextField(20);txtPwd = new JPasswordField(20);txtRePwd = new JPasswordField(20);rbMale = new JRadioButton("男");rbMale.setSelected(true);rbFemale = new JRadioButton("女");JPanel pimg = new JPanel(new GridLayout(2, 5));ButtonGroup bgimg = new ButtonGroup();for (int i = 0; i < ckbImage.length; i++) {ckbImage[i] = new JRadioButton(String.valueOf(i + 1),new ImageIcon("images/" + (i + 1) + ".gif"));bgimg.add(ckbImage[i]);pimg.add(ckbImage[i]);}btnOk = new JButton("确定");btnCancle = new JButton("取消");btnReturn = new JButton("返回");btnOk.addActionListener(this);btnCancle.addActionListener(this);btnReturn.addActionListener(this);ButtonGroup bgsex = new ButtonGroup();bgsex.add(rbMale);bgsex.add(rbFemale);lblName.setBounds(30, 30, 60, 25);txtName.setBounds(95, 30, 200, 25);lblNickname.setBounds(30, 60, 60, 25);txtNickname.setBounds(95, 60, 200, 25);lblPwd.setBounds(30, 90, 60, 25);txtPwd.setBounds(95, 90, 200, 25);lblRePwd.setBounds(30, 120, 60, 25);txtRePwd.setBounds(95, 120, 200, 25);lblSex.setBounds(30, 150, 60, 25);rbMale.setBounds(95, 150, 60, 25);rbFemale.setBounds(160, 150, 60, 25);lblImage.setBounds(30, 180, 60, 25);pimg.setBounds(95, 180, 280, 100);btnOk.setBounds(90, 290, 60, 25);btnCancle.setBounds(155, 290, 60, 25);btnReturn.setBounds(220, 290, 60, 25);p.add(lblName);p.add(txtName);p.add(lblNickname);p.add(txtNickname);p.add(lblPwd);p.add(txtPwd);p.add(lblRePwd);p.add(txtRePwd);p.add(lblSex);p.add(rbMale);p.add(rbFemale);p.add(lblImage);p.add(pimg);p.add(btnOk);p.add(btnCancle);p.add(btnReturn);this.add(p);this.setSize(400, 380);this.setLocation(300, 300);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}public void actionPerformed(ActionEvent e) {Object source = e.getSource();if (source == btnOk) {btnOkClick();}if (source == btnCancle) {btnCancleClick();}if (source == btnReturn) {btnReturnClick();}}private void btnOkClick() {String username = txtName.getText();String nickname = txtNickname.getText();String userpwd = new String(txtPwd.getPassword());String repwd = new String(txtRePwd.getPassword());int sex = 0;if (rbFemale.isSelected()) {sex = 1;}if (username.equals("")) {JOptionPane.showMessageDialog(btnOk, "用户名不能为空", "提示", JOptionPane.WARNING_MESSAGE);return;}if (nickname.equals("")) {JOptionPane.showMessageDialog(btnOk, "昵称不能为空", "提示", JOptionPane.WARNING_MESSAGE);return;}if (userpwd.equals("")) {JOptionPane.showMessageDialog(btnOk, "密码不能为空", "提示", JOptionPane.WARNING_MESSAGE);return;}if (userpwd.length() < 6 || userpwd.length() > 10) {JOptionPane.showMessageDialog(btnOk, "密码长度范围在6~10之间", "提示", JOptionPane.WARNING_MESSAGE);return;}if (repwd.equals("")) {JOptionPane.showMessageDialog(btnOk, "确认密码不能为空", "提示", JOptionPane.WARNING_MESSAGE);return;}if (!repwd.equals(userpwd)) {JOptionPane.showMessageDialog(btnOk, "确认密码和密码必须相同", "提示", JOptionPane.WARNING_MESSAGE);return;}if (userpwd.equals("haiersoft")) {JOptionPane.showMessageDialog(btnOk, "注册成功!", "提示", RMA TION_MESSAGE);btnCancleClick();} else {JOptionPane.showMessageDialog(btnOk, "注册失败!", "提示", RMA TION_MESSAGE);}}private void btnCancleClick() {txtName.setText("");txtNickname.setText("");txtPwd.setText("");txtRePwd.setText("");rbMale.setSelected(true);}private void btnReturnClick() {this.setV isible(false);FrmLogin frmLogin = new FrmLogin();frmLogin.setVisible(true);}private boolean registUser(String username, String nickname, String password, String sex, String headimg) {boolean r = false;DBUtil db = new DBUtil();try {db.getConnection();String sql = "INSERT INTO userdetails(username,nickname,password,sex,headimg) values(?,?,?,?,?)";int rs = db.executeUpdate(sql, new String[] { username, nickname, password, "" + sex, headimg });if (rs > 0) {r = true;}} catch (ClassNotFoundException e) {e.printStackTrace();} catch (Exception e) {e.printStackTrace();} finally {db.closeAll();}return r;}private boolean check(String uname, String upwd) {boolean r = false;DBUtil db = new DBUtil();try {db.getConnection();String sql = "SELECT nickname,headimg FROM userdetails WHERE username=? AND password=?";ResultSet rs = db.executeQuery(sql, new String[] { uname, upwd});if (rs != null && rs.next()) {r = true;ername = uname;FrmMain.nickname = rs.getString("nickname");FrmMain.headimg = rs.getString("headimg");}} catch (ClassNotFoundException e) {e.printStackTrace();} catch (Exception e) {e.printStackTrace();} finally {db.closeAll();}return r;}class ImageListener implements ItemListener {public void itemStateChanged(ItemEvent e) {JRadioButton source = (JRadioButton) e.getSource();if (source.isSelected()) {source.setBorderPainted(true);checkedHeadImg = source.getText() + ".gif";System.out.println(checkedHeadImg);} else {source.setBorderPainted(false);}}}public static void main(String[] args) {FrmRegist frmRegist = new FrmRegist();frmRegist.setV isible(true);}}四、实验中问题及心得对于这次实验,自己认为比较难。
jdbc实验心得
jdbc实验心得JDBC实验心得一、实验背景和目的JDBC(Java Database Connectivity)是Java语言访问数据库的标准接口,通过JDBC可以方便地连接和操作各种类型的数据库。
本次实验旨在通过编写Java程序使用JDBC连接数据库,并进行数据的增删改查操作,加深对JDBC的理解和掌握。
二、实验过程1. 环境准备:首先需要安装并配置好Java开发环境,包括JDK和IDE (如Eclipse或IntelliJ IDEA)。
然后下载并安装相应版本的数据库驱动程序,如MySQL Connector/J。
2. 创建数据库:根据实验需求,可以选择已有的数据库或创建新的数据库。
如果选择创建新的数据库,需要执行相应的SQL语句来创建表结构。
3. 导入驱动程序:将下载好的驱动程序导入到项目中,并在代码中引入相应的包。
4. 连接数据库:使用DriverManager类中的getConnection()方法来建立与数据库之间的连接。
需要提供数据库URL、用户名和密码等连接信息。
5. 执行SQL语句:通过Connection对象创建Statement对象,并使用Statement对象执行SQL语句。
可以执行查询语句、更新语句等不同类型的SQL语句。
6. 处理结果集:如果执行查询语句,则会返回一个ResultSet对象,可以通过ResultSet对象获取查询结果集中的数据。
7. 关闭资源:在完成所有操作后,需要关闭ResultSet、Statement 和Connection等资源,释放内存。
三、实验收获1. 掌握JDBC的基本使用方法:通过本次实验,我了解了JDBC的基本使用方法,包括建立数据库连接、执行SQL语句和处理结果集等。
2. 熟悉常用的JDBC API:在实验过程中,我熟悉了一些常用的JDBC API,如DriverManager类、Connection接口、Statement接口和ResultSet接口等。
jdbc增删改查实验报告
jdbc增删改查实验报告一、实验目的本次实验旨在通过使用Java Database Connectivity (JDBC)技术,掌握数据库的增删改查操作。
二、实验环境本次实验使用的开发工具为Eclipse,数据库管理系统为MySQL。
三、实验过程1. 数据库连接在Java中使用JDBC连接到数据库需要以下步骤:1)加载数据库驱动程序;2)获取数据库连接;3)创建Statement对象或PreparedStatement对象。
示例代码如下:Class.forName("com.mysql.jdbc.Driver");Connection conn = DriverManager.getConnection(url, username, password);Statement stmt = conn.createStatement();其中url是指要连接的数据库地址,username和password是登录数据库所需的用户名和密码。
2. 数据库查询操作查询操作可以使用Statement对象或PreparedStatement对象执行SQL语句。
PreparedStatement对象比Statement对象更安全,因为它可以防止SQL注入攻击。
示例代码如下:PreparedStatement pstmt = conn.prepareStatement("SELECT * FROM users WHERE age > ?");pstmt.setInt(1, 18);ResultSet rs = pstmt.executeQuery();其中?表示占位符,可以通过setInt()等方法设置占位符的值。
3. 数据库插入操作插入操作需要使用PreparedStatement对象执行INSERT语句。
示例代码如下:PreparedStatement pstmt = conn.prepareStatement("INSERT INTO users(name, age) VALUES(?, ?)");pstmt.setString(1, "Tom");pstmt.setInt(2, 20);int rowsAffected = pstmt.executeUpdate();其中executeUpdate()方法返回受影响的行数。
报告_实验九 通过JDBC方式操作数据库
text4.setText(""); String SNO,SNAME,AGE; text4.setText("请输入要插入的信息"); SNO=text1.getText(); SNAME=text2.getText(); AGE=text3.getText(); String URL="jdbc:mysql://localhost:3306/mysql?Unicode=true&characterEncoding=GBK";
System.out.println(RS.getString(1)+'\t'+RS.getString(2)+'\t'+RS.getString(3) );
} con.close(); } catch (SQLException e) { System.out.println(e); }
}
}
public class Experiment_9_JDBC { public static void main(final String[] args) { Query query=new Query(); query.select();//查询 query.insert();//插入 query.delete();//删除 }
System.out.println(RS.getString(1)+'\t'+RS.getString(2)+'\t'+RS.getString(3) );
实验3 JDBC数据库操作
实验3 JDBC数据库操作
一、实验目的
1.掌握JDBC数据库操作。
2.复习Swing图形用户界面程序的编写。
二、实验环境
JDK1.7+Eclpise3.2
三、实验内容
1、编写一个程序,用一个JTable组件显示数据库shop中goods表的内容。
界面如下
点击相应的按钮完成相应的功能。
例如点击插入按钮,弹出对话框
输入数据,按确定按钮可以把记录插入数据库中,同时在JTable组件中刷新数据。
2、编写一个程序,使用Swing组件添加和查询数据库student中stuphoto表的内容。
界面
如下,点击添加菜单项,在添加学生信息界面添加学生:
点击添加学生信息按钮,添加一个学生,添加成功显示对话框:
点击查询菜单项,在查询学生信息界面查询学生信息:
四、实验结果
五、实验总结:。
实验四JDBC技术
实验四JDBC技术实验四JDBC应⽤【实验⽬的】:1.进⼀步熟悉MyEclipse下开发Web应⽤程序的步骤2.理解JDBC访问数据库的过程与步骤3.掌握MySQL数据库的创建与访问。
4.掌握数据库访问过程中⼏个常⽤类的使⽤5.掌握如何将JDBC技术与Servlet和JSP技术相结合,⽤于开发Web应⽤。
【实验内容】:创建与访问MySQL数据库;建⽴Web⼯程,将JSP技术与JDBC结合在⼀起使⽤。
验证课本例⼦。
【实验步骤】:(⼀)创建MySQL数据库1.选择“开始”->“所有程序”->“MySQL”->“MySQL Server 5.1”->“MySQL CommandLine Client”,进⼊命令⾏窗⼝。
输⼊密码:mysql,进⼊数据库管理系统。
2.创建数据库book_shop,使⽤命令create database book_shop;再选中数据库,使⽤命令:use book_shop;3.新建数据表books,并设置字段id为主键、⾃增长。
使⽤命令create table books( idint(8) auto_increment, name varchar(50), price float(8), author varchar(50), bookConcern varchar(50), counts int(4),primary key(id));4. 向该数据库中添加若⼲⾏记录,使⽤insert命令。
如:insert into books(name,price,author,bookConcern,counts)values(‘JSP Programming’,29.0,’‘sunyang technology’, ‘Post &Telecom Press’,106);注意:由于主键设成了⾃增长,因⽽在插⼊记录时不需要插⼊主键字段id。
(⼆)在MyEclipse的workspace中,新建⼀个Web⼯程JDBCDemo。
jdbc实验报告心得体会
jdbc实验报告心得体会《jdbc 实验报告心得体会》在学习数据库相关知识的过程中,进行 jdbc 实验是一个重要且富有挑战的环节。
通过这次实验,我对数据库的操作和连接有了更深入的理解和认识。
首先,让我谈谈实验前的准备工作。
在开始实验之前,需要对 jdbc 的基本概念和原理有一定的了解。
这包括熟悉数据库驱动程序的加载、连接数据库的参数设置、执行 SQL 语句的方法等。
为了更好地进行实验,我还仔细阅读了相关的教材和参考资料,观看了一些教学视频,确保自己对实验所涉及的知识有一个初步的掌握。
实验的第一步是配置开发环境。
这需要安装合适的数据库管理系统,如 MySQL 或 Oracle,并确保其能够正常运行。
然后,在开发工具中导入相应的 jdbc 驱动包,以便能够在代码中使用 jdbc 接口进行数据库操作。
这个过程中,可能会遇到一些依赖库的版本不匹配、环境变量设置不正确等问题,需要耐心地进行排查和解决。
在成功配置好环境后,就可以开始编写代码来连接数据库了。
连接数据库的过程中,需要提供正确的数据库URL、用户名和密码等参数。
这一步看似简单,但如果参数填写错误,就会导致连接失败。
在实验中,我就因为不小心写错了用户名,导致连接多次尝试都不成功,经过仔细检查才发现了这个低级错误。
这让我深刻体会到了在编程中细心的重要性。
连接成功后,就可以执行SQL 语句来对数据库进行操作了。
比如,可以使用`executeQuery`方法执行查询语句,获取数据库中的数据;使用`executeUpdate`方法执行插入、更新、删除等操作,修改数据库中的数据。
在执行 SQL 语句时,需要注意语句的语法正确性,否则会出现运行时错误。
同时,还需要对可能出现的异常进行处理,以保证程序的稳定性。
在进行数据查询操作时,需要将查询结果进行处理和展示。
这通常需要使用`ResultSet`对象来遍历查询结果集,并将数据提取出来进行相应的处理。
在处理结果集时,需要注意数据类型的转换,以及空值的处理,以避免出现数据类型不匹配或空指针异常等问题。
jdbc实验
实验四JDBC访问数据库一、实验目的1. 掌握使用传统的方法访问数据库;2. 掌握使用数据源的方法访问数据库。
二、实验原理数据库应用是Web应用开发的一个重要应用。
Web应用程序访问数据库有两种方法:传统的方法和使用JNDI数据源的方法。
传统方法访问数据库的步骤是:①加载数据库驱动程序;②建立连接对象;③创建语句对象;④获得结果集;⑤关闭有关连接对象。
使用数据源访问数据库的步骤是:①配置数据源(局部数据源或全局数据源);②通过JNDI 机制查找命名数据源;③通过数据源对象创建连接对象;④其他与传统方法一致。
三、实验内容与步骤(一)使用传统方法通过JSP页面访问数据库【步骤1】创建数据库。
假设在MySql中建立了一个名为bookstore的数据库,在其中建立books表,代码如下:CREATE TABLE books (bookid character(5) PRIMARY KEY, --书号title text, --书名author character varying(20), --作者publisher character varying (40), --出版社price real --价格);向books表中插入几条记录,代码如下:INSERT INTO books V ALUES('204','Head First Servlets & JSP', 'Bryan Basham', '中国电力出版社',98.00);INSERT INTO books V ALUES('201', 'Servlets 与JSP 核心教程', 'Hall Marty','清华大学出版社',45);INSERT INTO books V ALUES('202', 'Tomcat与Java Web 开发技术祥解', '孙卫琴', '机械工业出版社',45);INSERT INTO books V ALUES('203', 'JSP 应用开发技术', '柳永坡','人民邮电出版社',52);INSERT INTO books V ALUES('205', 'J2EE 1.4 编程指南', 'Spielman Sue','电子工业出版社',68);注意:需要将数据库的JDBC驱动程序安装到应用程序的WEB-INF\lib目录中。
(完整word版)JDBC实验报告详细
实验二JDBC编程一、目的通过Java数据库访问程序的编写、调试,使学生掌握JDBC编程的基本方法,熟悉常用的JDBC API,促进学生对概念的理解,培养动手能力。
二、基本要求学生需要按时达到指定实验室上机。
调试教学中使用的程序示例,并加以修改,增加程序的功能;实现数据库访问的优化。
完成实验后,需要按时提交实验报告。
三、实验内容(1)复习数据库SQL语句的编写。
(2)编写Java数据库(使用ODBC-JDBC驱动)公共模块。
(3)建立数据库应用模型,对数据库进行操作。
(4)调试程序,实现数据库的访问。
3.1数据源的确定可能是我不知道怎么配置,我的电脑是Windows7系统,和学校WindowsXP 系统的电脑配置方法不太一样,需要在C:\Windows\System32路径中,找到odbcad32.exe才能顺利修改数据源。
数据源设置好了以后就可以编辑代码并正常运行了。
下面以一张截图展示我的数据库3.2数据库信息查询.一3.2.1代码import java.sql.*; /*此处提供了SQL包,就可以放心使用SQL语句了*/ public class Students{public static void main(String args[]){ //look out this "S" of "string" !String driver="sun.jdbc.odbc.JdbcOdbcDriver";/*这里定义了driver做驱动器使用,为了美观事先定义,其实放在Class.forName 的括号里也是完全正确的*/String url="jdbc:odbc:students";/*此处指定了数据库,要注意两者名字一定要一样,否则找不到数据源*/ String query="select name,num,course,score from students"; //focus on the SQL language :select...from... ! /*需要执行的SQL语句*/Connection con=null; /*链接的定义*/Statement s=null; /*Statement对象的定义,两者赋值null 是为了在try块出现异常的时候不会被判断为逻辑错误,认为变量没有赋值*/try{ /*第一个try块实现了驱动器的启动*/Class.forName(driver); //look out this "class" should write in Huge one!/*注意此处的Class需要大写!*/}catch(ClassNotFoundException e){System.err.println("ClassNotFoundException:"+e.getMessage());}try{ /*第二个try块实现查询功能*/con=DriverManager.getConnection(url);/*刚刚定义的url在这里用上,此时程序才真正与数据库相连*/s=con.createStatement(); /*新建一个Statement*/ResultSet r=s.executeQuery(query); /*query在这里用上,执行SQL语句,也就是按照我们的要求实现我们想完成的功能*/System.out.println("name:" + " num:" + " course:" + " score:");while(r.next()){ /*逐行查询,只要有值就执行while里的语句*//*注意以下的每一项name,num等都要与数据库中的题目想吻合*/ String r1=r.getString("name");String r2=r.getString("num");String r3=r.getString("course");String r4=r.getString("score");/*注意这些名字一定要与数据库中的名字吻合!当然也可以用数字代替,但是我的数据库第一列是ID,所以要注意name是2,num是3,以此类推*/System.out.println(r1+ r2+ r3+ r4);}}catch(SQLException e){e.printStackTrace();}finally{try{s.close(); /*关闭Statement对象*/con.close(); /*关闭连接*/}catch(SQLException e){e.printStackTrace();}} System.out.println("i am lagent");/*这条语句是一开始用于查找错误使用的*/ }}3.2.2运行截图13.3数据库信息查询.二3.3.1代码import java.sql.*;import java.util.*;public class Statement1{ /* pay attention the name of class must not be the same with the public style ! The first time i named it "Statement" so that it can't run successfully *//*英文是编程当时留下的痕迹,当时讲类名写作Statement,与关键字相同,因此出错不能正常运行,我的总结是在拿不准的情况加一个数字就可以避免这样的尴尬情况*/public static void main(String arg[]){String driver="sun.jdbc.odbc.JdbcOdbcDriver";String url="jdbc:odbc:Students";String query="select * from students where score > 90"; /*整个程序与第一次编写的没有太大变动和突破,主要是对SQL功能的了解和语句利用的熟练,当时的想法是多写多体会,没考虑创新,在此也就不对语句做重复分析了*/ Connection con=null;Statement s=null;try{Class.forName(driver);}catch(ClassNotFoundException e){System.err.println("ClassNotFoundException:"+e.getMessage());}try{con=DriverManager.getConnection(url);s=con.createStatement();ResultSet r=s.executeQuery(query);System.out.println("name:"+" num:"+" course:"+" score");while(r.next()){String r1=r.getString("name");String r2=r.getString("num");String r3=r.getString("course");String r4=r.getString("score");System.out.println(r1+r2+r3+r4);}}catch(SQLException e){e.printStackTrace();}finally{try{s.close();con.close();}catch(SQLException e){e.printStackTrace();}}}}3.3.2运行截图23.4数据库信息查询.三3.4.1代码import java.sql.*;import java.util.*;import java.io.*;public class PreparedStatement1{public static void main(String arg[]){String driver="sun.jdbc.odbc.JdbcOdbcDriver";String url="jdbc:odbc:Students";String query="select * from students where score > ?";/*要实现按键盘输入的参数来选择查询数据库中的数据,因此需要用“?”*/ Connection con=null;PreparedStatement ps=null;ResultSet r=null;try{Class.forName(driver);}catch(ClassNotFoundException e){System.err.println("ClassNotFoundException:"+e.getMessage());}try{System.out.println("您想要查询分数的下限是:");con=DriverManager.getConnection(url);BufferedReader br=new BufferedReader(new InputStreamReader(System.in));/*带有缓冲区,可以实现从键盘的输入,从字符流中对文本*/try{int ms=Integer.parseInt(br.readLine().trim());/*将键盘输入的参数赋值给ms*///this told me to pay a try and catch , so i put them in a try kuaips=con.prepareStatement(query);/*注意在这里就实现预编译了,这里要注意prepare:小些打头,不是prepared*/ ps.setInt(1,ms); /*1是付给第一个“?”,这里就只有1个*/r=ps.executeQuery();/*因为已经预编译,这里不用在写query*/ }catch(Exception e){System.out.println(e);}System.out.println("name:"+" num:"+" course:"+" score");while(r.next()){String r1=r.getString("name");String r2=r.getString("num");String r3=r.getString("course");String r4=r.getString("score");System.out.println(r1+r2+r3+r4);}}catch(SQLException e){e.printStackTrace();}finally{try{ps.close();con.close();}catch(SQLException e){e.printStackTrace();}}}}3.4.2运行截图31.程序开始运行的程序界面:2.输入参数后的程序界面:3.5数据库信息的增添、删除、修改3.5.1代码import java.sql.*;public class ALL{Connection con=null;Statement s=null;PreparedStatement ps=null;String driver="sun.jdbc.odbc.JdbcOdbcDriver";String url="jdbc:odbc:students";String query="select name,num,course,score from students";public void init(){ /*用init()将定义的对象和变量都初始化*/ try{Class.forName(driver);}catch(ClassNotFoundException e){System.err.println("ClassNotFoundException:"+e.getMessage());}try{con=DriverManager.getConnection(url);s=con.createStatement();}catch(SQLException e){e.printStackTrace();}}public void output(){ /*先输出数据库的数据*/ try{ResultSet r=s.executeQuery(query);System.out.println("name:" + " num:" + " course:" + " score:");while(r.next()){String r1=r.getString("name");String r2=r.getString("num");String r3=r.getString("course");String r4=r.getString("score");System.out.println(r1+ r2+ r3+ r4);}}catch(SQLException e){e.printStackTrace();}}public void add(){try{System.out.println("增加语句之后:");s.executeUpdate("INSERT INTO students(name,num,course,score) V ALUES('三毛','20115407','JA V A高级应用',59)");/*执行更新方法,注意V ALUES后所赋的值对V ALUES前的数据库题目要一一对应,而且在所赋的值一定是用单引号包括*/}catch(Exception e){e.printStackTrace();}}public void change(){try{System.out.println("改变分数之后");ps=con.prepareStatement("UPDATE students SET score=0 WHERE name='三毛'");/*将name为三毛的一栏数据中的score改为0*/ps.executeUpdate();}catch(Exception e){e.printStackTrace();}}public void destroy(){try{s.close();con.close();ps.close();}catch(SQLException e){ e.printStackTrace();}}public static void main(String arg[]){ALL a=new ALL();try{a.init();a.output();a.add();a.output();a.change();a.output(); /*把需要实现的功能分开放在方法中,再在主函数中调用,逻辑清晰而且十分简洁漂亮*/}catch(Exception e){e.printStackTrace();}finally{a.destroy();}}}3.5.2运行截图4四、实验方法与实验步骤(1)根据课堂所学知识,写出JDBC编程的步骤,熟悉JDBC编程所用的类及接口,如Connection、Statement、ResultSet等等;(2)创建程序所要访问的数据库,打开控制面板,建立ODBC数据源,记录给数据库所起的数据源名称。
jdbc访问数据库实验总结
jdbc访问数据库实验总结
在进行jdbc访问数据库实验后,我对jdbc的使用有了更深刻的了解和认识。
以下是我的一些总结:
1. JDBC是一种用于Java编程语言的API,可帮助我们管理与数据库的连接和操作。
JDBC是Java SE的一部分,因此不需要单独下载或安装。
2. JDBC可以用于连接各种关系数据库,如MySQL、Oracle、SQL Server等,并提供了一些内置的驱动程序。
3. JDBC主要是通过sql语句进行对数据库的操作,需要对sql语句进行熟练的掌握。
例如:查询数据的语句为"SELECT * FROM tablename",插入数据的语句为"INSERT INTO tablename (field1,field2,...) VALUES(value1,value2,...)"。
4. 在使用JDBC时,必须导入相关的jar包,并且需要进行连接和断开连接等操作。
5. JDBC提供了PreparedStatement和Statement两种方式来执行sql语句。
其中PreparedStatement可以预编译sql语句,性能更高,也更安全,因为它可以对输入的参数进行安全过滤。
6. 在进行JDBC开发时,需要注意防止SQL注入攻击。
可以使用
PreparedStatement和参数化查询来防止SQL注入攻击。
总之,JDBC是Java应用程序连接关系数据库的通用方式,掌握JDBC的使用方法非常重要。
在进行实际应用开发时,需要能够熟练运用JDBC来操作数据库,避免一些常见的问题,如SQL注入攻击等。
jdbc实验报告心得体会
jdbc实验报告心得体会《jdbc 实验报告心得体会》在学习编程的这趟奇妙之旅中,最近我经历了一场与 JDBC(Java Database Connectivity)的深度碰撞,那感觉就像是在数字世界的迷宫里探险,有迷茫,有惊喜,也有满满的收获。
JDBC 这个家伙,一开始我觉得它就像个神秘的黑匣子,充满了未知和挑战。
老师在课堂上讲的时候,我表面上点头如捣蒜,心里却在犯嘀咕:“这到底是个啥玩意儿,能比我打游戏通关还难吗?”然而,真正开始动手实践的时候,我才发现,这可比游戏难多了!实验的第一步,当然是搭建环境。
这就好比要盖房子,得先把地基打好。
我按照教程一步一步地来,安装数据库,配置环境变量,每一个步骤都小心翼翼,生怕出一点差错。
可有时候啊,你越怕什么,它就越来什么。
在配置环境变量的时候,我就不小心把一个路径写错了,结果程序怎么都运行不起来。
我那叫一个着急啊,满脑子都是“这可咋办,这可咋办”。
没办法,只能重新检查,一个字符一个字符地比对,终于找到了那个调皮的错误。
那一刻,我真有一种“众里寻他千百度,蓦然回首,那错误就在灯火阑珊处”的感慨。
环境搭好了,接下来就是写代码连接数据库了。
这感觉就像是拿着一把钥匙去开一扇神秘的门,心里既期待又紧张。
我按照老师教的方法,写好了代码,满怀信心地点击运行。
结果,迎接我的却是一连串的错误提示。
我盯着那满屏的红色报错信息,感觉它们就像一群张牙舞爪的小怪兽,在嘲笑我的无能。
“哎呀,我就不信了,还搞不定你们!”我暗暗较劲。
于是,我开始逐行检查代码,从连接字符串到用户名密码,再到SQL 语句,一个细节都不放过。
终于,我发现是自己的 SQL 语句写错了一个关键字。
改好之后,再次运行,看着程序成功地连接到数据库,那一刻的心情,简直比中了彩票还兴奋。
“哈哈,小怪兽们,被我打败了吧!”连接成功只是万里长征的第一步,接下来还要进行数据的增删改查操作。
这就像是在数据库这个大仓库里整理货物,得轻拿轻放,小心翼翼。
实验十二 JDBC 数据库编程(I)
§12 JDBC 数据库编程基本知识§12.1实验目的、内容及性质理解和掌握JDBC 的结构以及JDBC 与数据库应用编成之间的关系,掌握DriverManage 、Connection 、Ststement 等数据库类的常用方法。
实验性质:综合、必做实验学时:4学时§2.8.2问题及思考1、什么是ODBC数据源,如何定义数据源?2、什么是JDBC-ODBC桥3、读写数据库基本步骤总结4、什么是结果集,如何从结果集中读数据5、几个不同的Statement命令对象的使用总结§2.8.3实验指导一、JDBC数据库编程基本步骤1、利用ODBC-JDBC桥读取Access数据库实现Java读取Access数据库。
首先设置ODBC,在“控制面板”的“管理工具”中找到“数据源(ODBC)”,在出现的“ODBC数据源管理器”窗口中选择“系统DSN”(必须是系统DSN)。
单击“添加”按钮,在“创建新数据源”对话框中选择“Microsoft Access Driver”,如图7-19所示。
设置系统DSN选择Access驱动程序单击“完成”按钮,在数据源名称中输入“grade”,单击“选择”按钮,找到建立好的“person. mdb”文件(确保文件不是只读的),如图7-20所示。
建立数据数据源建立完毕。
读取的程序。
Connection conn = null;Statement stmt = null;ResultSet rs = null;try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");}catch(ClassNotFoundException ce){out.println(ce.getMessage());}try{conn=DriverManager.getConnection("jdbc:odbc:grade","","");stmt=conn.createStatement();rs=stmt.executeQuery("SELECT * FROM grade");while(rs.next()){System.out.print(rs.getString("学号"));System.out.print(rs.getString("姓名"));System.out.print(rs.getString("语文"));System.out.print(rs.getString("数学"));System.out.print(rs.getString("英语"));System.out.println();}}catch(SQLException e){System.out.println(e.getMessage());}finally{stmt.close();conn.close();}2、数据库访问层,单独写成一个类或几个类(访问数据库代码) (1) 、表语句示例:create table users(uname varchar(10) primary key,upwd varchar(10));insert into users values('admin','1234');insert into users values('zhou','zhou');(2)、数据库访问层:package dao;import java.sql.*;public class CustomerDao {private String url="jdbc:mysql://127.0.0.1:3306/support";private String driver="com.mysql.jdbc.Driver";/*验证用户名与密码函数*/public boolean validate(String uname,String upwd){boolean flag=false;try{Class.forName(driver);Connection con=DriverManager.getConnection(url,"root","4846");Statement cmd=con.createStatement();String sql="select * from users";// where uname='"+uname+"'";ResultSet rs=cmd.executeQuery(sql);if(rs.next())if(rs.getString(1).equals(upwd))flag=true;con.close();}catch(Exception ex){flag=false;}return flag;}}(3)、用户界面(UI层)调用package ui;import dao.CustomerDao;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class MyFrm extends JFrame implements ActionListener{//从JFrame继承/*声明界面需要使用的控件*/JLabel lbl_name =new JLabel("用户名");JLabel lbl_pwd =new JLabel("密码");JTextField txt_name=new JTextField();JPasswordField txt_pwd=new JPasswordField();JButton btn_OK=new JButton("登陆");JButton btn_Cancel=new JButton("取消");CustomerDao dao=new CustomerDao();/*在构造函数中将控件放置在JFrame上*/public MyFrm(){/*获取当前Frame的内容面板*/JPanel jp=(JPanel)this.getContentPane();/*设置内容面板的布局Layout*/jp.setLayout(new GridLayout(3,2));jp.add(lbl_name);jp.add(txt_name);jp.add(lbl_pwd);jp.add(txt_pwd);jp.add(btn_OK);jp.add(btn_Cancel);btn_OK.addActionListener(this);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}public static void main(String arg[]){/*纯Java样式显示窗体*/JFrame.setDefaultLookAndFeelDecorated(true);/*实例化当前窗体类*/MyFrm frm=new MyFrm();frm.setSize(200,200);frm.setVisible(true);}public void actionPerformed(ActionEvent e) {if(e.getSource()==btn_OK){String uname=txt_name.getText().trim();String upwd=txt_pwd.getText().trim();/*调用数据库访问层函数,进行用户验证*/boolean flag=dao.validate(uname, upwd);if(flag){JOptionPane.showMessageDialog(this, "用户验证通过");}else{JOptionPane.showMessageDialog(this, "用户名或密码输入错误");}}}}§12.4实践编程1、将讲义中的代码调试通过2、实现一个图书管理系统登录界面,请自行设计数据中的表,参考前面的实例按确定键,根据用户输入的数据到数据库中验证用户名和密码是否正确,正确则弹出主界面如下,错误则弹出消息框。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告
学院计算机学院班级学号姓名
课程名称Java程序设计实验日期
实验名称数据库应用开发成绩
实验目的:深入理解JDBC数据库驱动程序的概念,掌握JDBC提供的访问数据库相关接口和类的应用,掌握使用JDBC的Java数据库应用程序开发的基本步骤和方法。
实验条件:使用JDK和Eclipse
实验目的
本实验要求学生使用JDBC提供的接口和类编写一个Java应用程序,实现对学生数据信息的查询、删除、插入、更新等操作。
学生数据库(student)在MySQL数据库服务器中创建。
1. 在MySQL中创建学生数据库student,其中一个学生信息表stuinfo结构如下:
图1 stuinfo表结构
2. 设计一个Java程序,界面如图2所示,实现以下功能:
(1)点击“全部检索”按钮,检索stuinfo表的所有记录,显示在上面的JTable组件中;
(2)输入查询学号,点击“查询”按钮,查询该学生信息显示在左边面板中,查询不到时弹出信息提示。
(3)左边面板中输入学生信息,点击“添加”按钮,将此学生信息插入stuinfo表中,弹出插入是否成功的提示框。
(4)点击“删除”按钮,依据上边学号值删除该学生记录,弹出删除是否成功的提示框。
(5)点击“更新”按钮,依据上边学号值更新该学生的其它信息,弹出更新是否成功的提示框。
实验结果
实验总结
每次对学生进行增删改查后,表要实时变化。
我在界面的代码中写了一个refresh函数,每当有有数据变化,它都会将当前表所在的JScrollPane移除,之后TableModel再从数据库中读取数据,重新建立一个表格,再将其添加到新建的JScrollPane中,放到界面中去。