Java连接数据库增删改查

合集下载

java增删改查实例项目

java增删改查实例项目

Java增删改查实例项目一、介绍在Java开发中,增删改查(CRUD)是经常遇到的基本操作。

本文将通过一个实例项目,详细介绍Java中如何进行增删改查操作。

我们将使用Java语言和MySQL数据库来实现这个项目。

二、项目需求我们假设有一个学生信息管理系统,需要实现以下功能: 1. 添加学生信息 2. 删除学生信息 3. 修改学生信息 4. 查询学生信息三、项目准备在开始之前,我们需要准备以下工具和环境: - JDK:确保已经安装并配置好Java开发环境。

- Eclipse(或其他Java集成开发环境):用于编写和运行Java 代码。

- MySQL数据库:用于存储学生信息数据。

四、创建数据库首先,我们需要创建一个数据库来存储学生信息。

打开MySQL数据库管理工具,创建一个名为student_management的数据库。

五、创建Java项目接下来,我们将在Eclipse中创建一个Java项目。

按照以下步骤进行操作: 1.打开Eclipse,点击菜单栏的”File” -> “New” -> “Java Project”。

2.在弹出的对话框中,输入项目的名称(例如”StudentManagementSystem”)并点击”Finish”按钮。

3. 创建一个用于存放Java类的包,右键单击项目,选择”New” -> “Package”。

输入包名(例如”com.example”)并点击”Finish”按钮。

六、创建Java类在刚创建的包下创建以下Java类: ### 1. Studentpublic class Student {private int id;private String name;private int age;// 构造方法省略// getter和setter方法省略}2. StudentDaoimport java.util.List;public interface StudentDao {void addStudent(Student student);void deleteStudent(int id);void updateStudent(Student student);List<Student> getAllStudents();}3. StudentDaoImplimport java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.util.ArrayList;import java.util.List;public class StudentDaoImpl implements StudentDao {private static final String DB_URL = "jdbc:mysql://localhost:3306/student_ management";private static final String DB_USERNAME = "root";private static final String DB_PASSWORD = "password";@Overridepublic void addStudent(Student student) {Connection conn = null;PreparedStatement stmt = null;try {conn = DriverManager.getConnection(DB_URL, DB_USERNAME, DB_PASSWOR D);String sql = "INSERT INTO students (name, age) VALUES (?, ?)";stmt = conn.prepareStatement(sql);stmt.setString(1, student.getName());stmt.setInt(2, student.getAge());stmt.executeUpdate();} catch (SQLException e) {e.printStackTrace();} finally {try {if (stmt != null) stmt.close();if (conn != null) conn.close();} catch (SQLException e) {e.printStackTrace();}}}// 其他方法省略}七、实现增删改查功能现在,我们将在StudentDaoImpl类中实现增删改查功能:@Overridepublic void deleteStudent(int id) {Connection conn = null;PreparedStatement stmt = null;try {conn = DriverManager.getConnection(DB_URL, DB_USERNAME, DB_PASSWORD); String sql = "DELETE FROM students WHERE id = ?";stmt = conn.prepareStatement(sql);stmt.setInt(1, id);stmt.executeUpdate();} catch (SQLException e) {e.printStackTrace();} finally {try {if (stmt != null) stmt.close();if (conn != null) conn.close();} catch (SQLException e) {e.printStackTrace();}}}@Overridepublic void updateStudent(Student student) {Connection conn = null;PreparedStatement stmt = null;try {conn = DriverManager.getConnection(DB_URL, DB_USERNAME, DB_PASSWORD); String sql = "UPDATE students SET name = ?, age = ? WHERE id = ?";stmt = conn.prepareStatement(sql);stmt.setString(1, student.getName());stmt.setInt(2, student.getAge());stmt.setInt(3, student.getId());stmt.executeUpdate();} catch (SQLException e) {e.printStackTrace();} finally {try {if (stmt != null) stmt.close();if (conn != null) conn.close();} catch (SQLException e) {e.printStackTrace();}}}@Overridepublic List<Student> getAllStudents() {Connection conn = null;PreparedStatement stmt = null;ResultSet rs = null;List<Student> students = new ArrayList<>();try {conn = DriverManager.getConnection(DB_URL, DB_USERNAME, DB_PASSWORD); String sql = "SELECT * FROM students";stmt = conn.prepareStatement(sql);rs = stmt.executeQuery();while (rs.next()) {int id = rs.getInt("id");String name = rs.getString("name");int age = rs.getInt("age");Student student = new Student(id, name, age);students.add(student);}} catch (SQLException e) {e.printStackTrace();} finally {try {if (rs != null) rs.close();if (stmt != null) stmt.close();if (conn != null) conn.close();} catch (SQLException e) {e.printStackTrace();}}return students;}八、测试代码为了验证我们的实现是否正确,我们可以编写一个简单的测试代码:public class Main {public static void main(String[] args) {StudentDao studentDao = new StudentDaoImpl();// 添加学生信息Student student1 = new Student("Tom", 20);studentDao.addStudent(student1);// 查询所有学生信息List<Student> students = studentDao.getAllStudents();for (Student student : students) {System.out.println("ID: " + student.getId() + ", Name: " + student. getName() + ", Age: " + student.getAge());}// 修改学生信息Student student2 = students.get(0);student2.setName("Jerry");studentDao.updateStudent(student2);// 删除学生信息studentDao.deleteStudent(student2.getId());}}九、总结通过这个实例项目,我们学习了如何使用Java实现增删改查操作。

Java连接MySql数据库,并且实现插入、删除、更新、选择操作

Java连接MySql数据库,并且实现插入、删除、更新、选择操作

天之火–Qutr的专栏君子终日乾乾,夕惕若,厉,无咎。

HomeJava连接MySql数据库,并且实现插入、删除、更新、选择操作!这是我最近写的一个连接MySql数据库的一个例子,主要实现了插入,删除,更新,选择操作,用的环境是j2sdk1.4.2_08,Eclipse3.1。

以前我的同事用Python 写了同样的类,非常的好用,支持了我们公司的大部分业务,现在我们慢慢改用Java了,所以我用Java重写了一遍。

一方面在今后的业务中能够用到,另一方面熟悉一下Java。

下面我把在Eclipse3.1下怎样配置数据库连接信息简单说一下。

1.启动Eclipse3.1。

2.建立一个Java project就叫DbConnect 吧,再在该Project下建立一个新类也叫DbConnect 吧。

3.右击DbConnect.java文件点import,选择Archive file然后选择你的mysql-connector-java-3.1.8-bin.jar文件,点Finish。

你会看到有好些文件被加载进来,OK这就是连接MySql所需的驱动信息。

如果到了这里你都成功的话那么恭喜你,你已经成功一半了!:)4.接下来把我下面的代码copy到你的Java文件中,修改相关的数据库连接信息运行一下。

OK?我说一下那个mysql-connector-java-3.1.8-bin.jar文件,其实这就是一个MySql的驱动,各数据库厂商提供了不同的适用于JDBC的驱动使得在Java中连接数据库非常简单。

这里我就不多说了,以后我会写篇专门介绍数据库驱动的文章。

关于MySql的驱动还有更新版本的,你需要到MySql的网站上去下载,这个网上到处都是,我就不多说了。

下面看程序,有些地方我写了详细的注释应该能看懂。

这个类是非常有特色的,在每个方法的传人参数和返回值不变的情况下,希望高手能提出改进意见。

多指教,谢谢!/*** 数据库连接、选择、更新、删除演示*///import java.sql.*;import java.sql.Connection;import java.sql.Statement;import java.sql.ResultSet;import java.sql.DriverManager;import java.util.*;public class DbConnect{/////////////////////////////////////////———–>>>数据成员and 构造函数private Connection dbconn;private Statement dbstate;private ResultSet dbresult;DbConnect(){dbconn = null;dbstate = null;dbresult = null;}/////////////////////////////////////////———–>>>类方法public void print(String str)//简化输出{System.out.println(str);}//end print(…)/*** 连接MySql数据库* @param host* @param port* @param dbaName* @param usName* @param psw* @return bool值,连接成功返回真,失败返回假*/public boolean dbConnection(String host, String port, String dbaName, String usName, String psw){String driverName = "com.mysql.jdbc.Driver";//"org.gjt.mm.mysql.Driver"两个驱动都可以用String dbHost = host;//数据库的一些信息String dbPort = port;String dbName = dbaName;String enCoding = "?useUnicode=true&characterEncoding=gb2312"; //解决MySql中文问题,要连续写不能空格String userName = usName;String Psw = psw;String url = "jdbc:mysql://" + dbHost + ":" + dbPort + "/" + dbName + enCoding;try{Class.forName(driverName).newInstance();dbconn = DriverManager.getConnection(url, userName, Psw);//getConnection(url, userName, Psw)从给的driver中选择合适的去连接数据库//return a connection to the URL}catch(Exception e){print("url = " + url); //发生错误时,将连接数据库信息打印出来print("userName = " + userName);print("Psw" + Psw);print("Exception: " + e.getMessage());//得到出错信息}if (dbconn != null)//dbconn != null 表示连接数据库成功,由异常保证!?return true;elsereturn false;}// end boolean dbConnection(…)/*** 对数据库表进行选择操作!* @param tableName 数据库表名* @param fieles 字段名* @param selCondition 选择条件* @return 一个含有map的List(列表)*/public ArrayList dbSelect(String tableName, ArrayList fields, String selCondition){ArrayList mapInList = new ArrayList();String selFields = "";for (int i = 0; i<fields.size(); ++i)selFields += fields.get(i) + ", ";String selFieldsTem = selFields.substring(0, selFields.length() – 2);//根据String的索引提取子串try{dbstate = dbconn.createStatement();String sql = "select " + selFieldsTem + " from " + tableName + selCondition;print("sql = " + sql);try{dbresult = dbstate.executeQuery(sql);}catch(Exception err){print("Sql = " + sql);print("Exception: " + err.getMessage());}while(dbresult.next()){Map selResult = new HashMap();selResult.put("message_type", dbresult.getString("message_type"));selResult.put("message_content",dbresult.getString("message_content"));mapInList.add(selResult);}}catch(Exception e){print("Exception: " + e.getMessage());}return mapInList;}//end String dbSelect(…)/*** 对数据库表中的记录进行删除操作* @param tableName* @param condition* @return bool值,表示删除成功或者失败。

java前后端分离的增删改查项目

java前后端分离的增删改查项目

java前后端分离的增删改查项目Java前后端分离的增删改查项目随着互联网的快速发展,前后端分离的开发模式越来越受到开发者的青睐。

在这种模式下,前端负责展示页面和用户交互,后端负责业务逻辑和数据处理。

本文将介绍一个基于Java的前后端分离的增删改查项目,以帮助读者了解这种开发模式的具体实现。

一、项目概述本项目是一个简单的增删改查系统,用于管理用户信息。

前端使用Vue.js框架构建页面,后端使用Java编写接口。

前后端通过HTTP 协议进行通信,前端发送请求给后端,后端返回相应的数据。

项目的目标是实现用户信息的增加、删除、修改和查询功能。

二、前端开发前端使用Vue.js框架进行开发,利用其组件化和响应式的特性,可以更高效地构建页面。

首先,我们需要创建一个用户管理的页面,包括用户列表、新增用户、编辑用户和删除用户等功能。

1. 用户列表用户列表页面展示了系统中所有用户的信息,包括用户ID、姓名、年龄和性别等字段。

用户可以通过搜索框快速查找特定用户。

2. 新增用户新增用户页面提供了一个表单,用于输入用户的详细信息。

用户需要填写姓名、年龄和性别等字段,并点击提交按钮进行保存。

3. 编辑用户编辑用户页面与新增用户页面类似,但是需要预先加载用户的信息,并在表单中显示出来。

用户可以修改用户的任意字段,并点击提交按钮保存修改。

4. 删除用户删除用户功能通过点击列表中的删除按钮来实现。

在确认删除之前,系统会弹出一个提示框,确保用户的操作是有意义的。

三、后端开发后端使用Java编写接口,处理前端发送过来的请求,并返回相应的数据。

我们需要设计相应的接口,包括新增用户、删除用户、修改用户和查询用户等功能。

1. 新增用户接口新增用户接口接收前端传递过来的用户信息,将其保存到数据库中。

在保存之前,需要对用户信息进行校验,确保数据的有效性。

2. 删除用户接口删除用户接口接收前端传递过来的用户ID,通过该ID在数据库中找到对应的用户并进行删除操作。

使用JSP对数据库进行增删改查

使用JSP对数据库进行增删改查

使用JSP对数据库进行增删改查JSP(Java Server Pages)是一种用于开发Web应用程序的Java技术。

它可以直接在HTML页面中嵌入Java代码,实现动态生成页面内容。

在使用JSP进行数据库的增删改查操作时,通常需要借助JDBC(Java Database Connectivity)来进行数据库的连接和操作。

接下来,需要进行数据库的连接。

可以使用JDBC提供的DriverManager类和Connection接口来实现。

首先,需要定义数据库的相关信息,如驱动程序名称、数据库URL、用户名和密码。

然后,使用DriverManager的静态方法getConnection(来获取数据库连接,传入相应的参数。

例如,对于MySQL数据库,可以使用如下代码进行连接:String url = "jdbc:mysql://localhost:3306/database_name"; // 数据库URLString userName = "root"; // 数据库用户名String password = "password"; // 数据库密码try//加载驱动程序Class.forName(driverName);//获取数据库连接Connection connection = DriverManager.getConnection(url, userName, password);//...} catch (ClassNotFoundException e)e.printStackTrace(;} catch (SQLException e)e.printStackTrace(;连接成功后,接下来可以进行数据库的增删改查操作。

通常,可以使用JDBC的Statement或PreparedStatement对象来执行SQL语句。

Statement对象用于静态SQL语句,而PreparedStatement对象用于动态SQL语句。

Java中使用MyBatis Plus连接和操作MySQL数据库

Java中使用MyBatis Plus连接和操作MySQL数据库

Java中使用MyBatis Plus连接和操作MySQL数据库1. 简介近年来,Java语言以其跨平台特性和广泛的应用领域成为了全球最受欢迎的编程语言之一。

而MySQL作为一种强大的开源关系型数据库,也是Java开发者首选的数据库之一。

在Java中,我们可以使用MyBatis Plus来连接和操作MySQL数据库,提升开发效率和简化数据库操作。

2. MyBatis Plus简介MyBatis Plus是基于MyBatis的一款增强工具,旨在简化和提升MyBatis的使用体验。

它提供了一系列强大的功能,如代码生成器、分页插件、性能分析插件等,使得开发者能够更加便捷地开发和维护数据库相关的应用程序。

3. 连接MySQL数据库在使用MyBatis Plus连接MySQL数据库之前,我们需要先在项目中引入相关的依赖。

可以通过Maven或Gradle等构建工具来管理项目的依赖。

在pom.xml或build.gradle文件中添加相应的依赖项,然后进行构建操作。

在Java代码中,我们需要创建一个数据源并配置相关的数据库连接信息。

可以使用MySQL提供的JDBC驱动程序来管理数据库连接。

在MyBatis Plus中,我们可以使用com.mysql.cj.jdbc.Driver作为驱动类,指定数据库的URL、用户名和密码来建立连接。

4. 创建实体类在进行数据库操作之前,我们需要定义与数据库表对应的实体类。

在Java中,我们可以使用POJO(Plain Old Java Object)来表示实体类。

POJO是一种普通的Java对象,不继承任何特定的父类或实现任何特定的接口。

在MyBatis Plus中,实体类需要使用@Table注解来指定对应的数据库表名,使用@Column注解来指定字段名,以及指定主键等属性。

通过在实体类中定义与表对应的字段和属性,我们可以通过MyBatis Plus来进行数据库的增删改查操作。

java项目实例教程

java项目实例教程

java项目实例教程Java是一种非常流行的编程语言,广泛应用于各种软件开发项目中。

在这篇文章中,我将介绍一个Java项目的实例教程。

该Java项目是一个简单的学生信息管理系统,可以实现对学生基本信息的增删改查功能。

在这个项目中,我们将使用Java语言和MySQL数据库来实现。

首先,我们需要创建一个Java项目,并配置好所需的开发环境。

我们可以使用Eclipse、IntelliJ IDEA等集成开发环境来进行开发。

在项目中引入MySQL的Java驱动程序,以实现与数据库的连接。

接下来,我们需要定义一个学生类,包含学生的姓名、学号、性别等基本信息。

可以使用Java的面向对象编程技术来定义这个类,并提供相应的getter和setter方法。

然后,我们需要创建一个数据库表,用于存储学生信息。

可以使用MySQL的命令行工具或者图形化工具如Navicat等来创建表,并定义相应的字段。

在项目中,我们需要编写Java代码来实现对数据库的增删改查操作。

可以使用MySQL的JDBC API来连接数据库,并执行SQL语句。

我们可以使用PreparedStatement对象来执行带有参数的SQL语句,以防止SQL注入攻击。

对于查询操作,我们可以编写一个方法,根据学号或姓名等条件来查询符合条件的学生信息,并将结果返回。

对于增加、删除和修改操作,我们也可以编写相应的方法来实现。

使用PreparedStatement对象来执行相应的SQL语句,将学生信息插入到数据库中,或者修改数据库中的学生信息。

在项目中,我们可以使用Java的Swing库来创建一个简单的图形界面,以便用户能够方便地使用学生信息管理系统。

可以创建按钮、文本框等组件,并添加相应的事件处理程序。

最后,我们需要测试我们的学生信息管理系统。

可以编写一个简单的测试类,在其中调用我们编写的方法,测试它们是否能够正确地执行。

在整个开发过程中,需要注意的是要进行良好的异常处理。

JAVA用面向对象的思维连接ACCESS数据库并实现增改查删操作

JAVA用面向对象的思维连接ACCESS数据库并实现增改查删操作
case '4' : { adb.updateRecords(); adb.chooseOperation(adb); } break;
case '5' : System.out.println("已退出!"); break;
} }
public void getRecords() { CreateDBConnection conn = new CreateDBConnection(); try { String num, name, gender, age, address, birthday, phoneNumber, sqlstr; sqlstr = "select * from student"; int i = 1; ResultSet rs =conn.statement.executeQuery(sqlstr); while (rs.next()) { num = rs.getString(1); name = rs.getString(2); gender = rs.getString(3); age = rs.getString(4); address = rs.getString(5); birthday = rs.getString(6); phoneNumber = rs.getString(7);
BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String b, sqlstr; b = br.readLine(); userInput = b.trim(); String[] ui = userInput.split(" "); sqlstr = "insert into student(num, name, gender, age, address, birthday, phoneNumber) values('"+ui[0]

java项目中的增删改查方法

java项目中的增删改查方法

java项目中的增删改查方法在Java项目中,增删改查(CRUD)操作是非常常见的需求。

无论是开发Web应用、移动应用还是后台系统,都会涉及到对数据的增加、删除、修改和查询操作。

在Java中,我们通常使用数据库来存储数据,而针对数据库的增删改查操作,我们通常会使用SQL语句来实现。

下面我们来看看在Java项目中,如何实现增删改查方法。

1. 增加(Create),在Java项目中,要实现数据的增加操作,通常需要先连接数据库,然后使用SQL语句向数据库中插入新的数据。

在Java中,我们可以使用JDBC(Java Database Connectivity)来连接数据库,使用PreparedStatement或者Statement来执行插入操作。

另外,如果我们使用了ORM框架(如Hibernate或MyBatis),我们也可以通过框架提供的API来实现数据的插入操作。

2. 删除(Delete),删除数据操作通常是根据某个条件从数据库中删除符合条件的数据。

在Java项目中,我们可以使用SQL的DELETE语句来实现数据的删除操作。

同样地,我们可以使用JDBC或者ORM框架提供的API来执行删除操作。

3. 修改(Update),修改数据操作通常是根据某个条件更新数据库中的数据。

在Java项目中,我们可以使用SQL的UPDATE语句来实现数据的更新操作。

同样地,我们可以使用JDBC或者ORM框架提供的API来执行更新操作。

4. 查询(Retrieve),查询数据操作是从数据库中检索数据。

在Java项目中,我们可以使用SQL的SELECT语句来实现数据的查询操作。

同样地,我们可以使用JDBC或者ORM框架提供的API来执行查询操作,并将查询结果返回给Java应用程序。

总的来说,在Java项目中实现增删改查方法,我们通常会使用JDBC来连接数据库并执行SQL语句,或者使用ORM框架来简化数据库操作。

无论是使用JDBC还是ORM框架,都需要对数据库操作有一定的了解,以便能够编写出高效、安全的增删改查方法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Java连接sql2000数据库增删改查功能学院:仲恺农业工程学院姓名:陈伟团专业:计算机科学与技术班级:084班1.数据库连接package edu;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public class DBConnection {public static Connection getConnection(){Connection conn = null;String driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver"; String url ="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=shop";String username = "sa";String password = "sa";try {Class.forName(driver);conn = DriverManager.getConnection(url,username,password);} catch (ClassNotFoundException e) {e.printStackTrace();} catch (SQLException e) {e.printStackTrace();}return conn;}2.生成get set方法package edu;public class Country {private String name;private String region;private String area;private String population;private String gdp;public String getName() {return name;}public void setName(String name) { = name;}public String getRegion() {return region;}public void setRegion(String region) {this.region = region;}public String getArea() {return area;}public void setArea(String area) {this.area = area;}public String getPopulation() {return population;}public void setPopulation(String population) {this.population = population;}public String getGdp() {return gdp;}public void setGdp(String gdp) {this.gdp = gdp;}}3实现方法package edu;import java.awt.Rectangle;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.List;import javax.swing.JButton;import javax.swing.JComboBox;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.JTextField;import javax.swing.SwingUtilities;public class CountryInfoGui implements ActionListener {private JFrame jFrame;private JPanel jContentPane;private JLabel lblName = null;private JTextField tfName = null;private JLabel lblRegion = null;private JComboBox cbRegion = null;private JLabel lblArea = null;private JTextField tfArea = null;private JLabel lblPopu = null;private JTextField tfPopu = null;private JLabel lblGdp = null;private JTextField tfGDP = null;private JButton btnAdd = null;private JButton btnDel = null;private JButton btnModify = null;private JButton btnQuery = null;private JButton btnUpPage = null;private JButton btnDownPage = null;private JTable table = null;TableModel tm = null;JScrollPane jsp = null;private JTextField getTfName() {if (tfName == null) {tfName = new JTextField();tfName.setBounds(new Rectangle(89, 17, 173, 27));}return tfName;}private JComboBox getCbRegion() {if (cbRegion == null) {String[] str = { "请选择", "亚洲", "欧洲", "非洲", "北美洲", "南美洲", "大洋洲","南极洲" };cbRegion = new JComboBox(str);cbRegion.setBounds(new Rectangle(360, 17, 229, 28));}return cbRegion;}private JTextField getTfArea() {if (tfArea == null) {tfArea = new JTextField();tfArea.setBounds(new Rectangle(89, 61, 173, 27));}return tfArea;}private JTextField getTfPopu() {if (tfPopu == null) {tfPopu = new JTextField();tfPopu.setBounds(new Rectangle(360, 61, 229, 28));}return tfPopu;}private JTextField getTfGDP() {if (tfGDP == null) {tfGDP = new JTextField();tfGDP.setBounds(new Rectangle(89, 105, 173, 27));}return tfGDP;}private JButton getBtnAdd() {if (btnAdd == null) {btnAdd = new JButton();btnAdd.setBounds(new Rectangle(46, 152, 71, 30));btnAdd.addActionListener(this);btnAdd.setText("添加");}return btnAdd;}private JButton getBtnUpPage() {if (btnUpPage == null) {btnUpPage = new JButton("上一页");btnUpPage.addActionListener(this);btnUpPage.setBounds(200, 390, 80, 30);}return btnUpPage;}private JButton getBtnDownPage() {if (btnDownPage == null) {btnDownPage = new JButton("下一页");btnDownPage.addActionListener(this);btnDownPage.setBounds(300, 390, 80, 30);}return btnDownPage;}private JButton getBtnDel() {if (btnDel == null) {btnDel = new JButton();btnDel.setBounds(new Rectangle(189, 152, 71, 30));btnDel.addActionListener(this);btnDel.setText("删除");}return btnDel;}private JButton getBtnModify() {if (btnModify == null) {btnModify = new JButton();btnModify.setBounds(new Rectangle(342, 152, 71, 30));btnModify.addActionListener(this);btnModify.setText("更新");}return btnModify;}private JButton getBtnQuery() {if (btnQuery == null) {btnQuery = new JButton();btnQuery.setBounds(new Rectangle(484, 152, 71, 30));btnQuery.addActionListener(this);btnQuery.setText("查找");}return btnQuery;}public static void main(String[] args) {SwingUtilities.invokeLater(new Runnable() { public void run() {CountryInfoGui application = new CountryInfoGui();application.getJFrame().setVisible(true);}});}private JFrame getJFrame() {if (jFrame == null) {jFrame = new JFrame();jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);jFrame.setBounds(new Rectangle(450, 250, 610, 454));jFrame.setContentPane(getJContentPane());jFrame.setTitle("国家信息管理");}return jFrame;}private JPanel getJContentPane() {if (jContentPane == null) {lblGdp = new JLabel();lblGdp.setBounds(new Rectangle(15, 106, 63, 27));lblGdp.setText("国家GDP");lblPopu = new JLabel();lblPopu.setBounds(new Rectangle(285, 61, 63, 27));lblPopu.setText("人口数量");lblArea = new JLabel();lblArea.setBounds(new Rectangle(15, 61, 63, 27));lblArea.setText("国家面积");lblRegion = new JLabel();lblRegion.setBounds(new Rectangle(285, 17, 63, 27));lblRegion.setText("所属地区");lblName = new JLabel();lblName.setBounds(new Rectangle(15, 17, 63, 27));lblName.setText("国家名称");jContentPane = new JPanel();jContentPane.setLayout(null);jContentPane.add(lblName, null);jContentPane.add(getTfName(), null);jContentPane.add(lblRegion, null);jContentPane.add(getCbRegion(), null);jContentPane.add(lblArea, null);jContentPane.add(getTfArea(), null);jContentPane.add(lblPopu, null);jContentPane.add(getTfPopu(), null);jContentPane.add(lblGdp, null);jContentPane.add(getTfGDP(), null);jContentPane.add(getBtnAdd(), null);jContentPane.add(getBtnDel(), null);jContentPane.add(getBtnModify(), null);jContentPane.add(getBtnQuery(), null);jContentPane.add(getBtnUpPage(), null);jContentPane.add(getBtnDownPage(), null);}return jContentPane;}public void actionPerformed(ActionEvent e) {if (e.getActionCommand().equals("查找")) {selectAll();} else if (e.getActionCommand().equals("下一页")) {selectDownPage();} else if (e.getActionCommand().equals("上一页")) {selectUpPage();} else if (e.getActionCommand().equals("添加")) { if (tfName.getText().equals("")|| cbRegion.getSelectedItem().equals("请选择")|| tfArea.getText().equals("")|| tfPopu.getText().equals("")|| tfGDP.getText().equals("")) {JOptionPane.showMessageDialog(jFrame, "请填写相关信息"); }else {Country co = new Country();co.setName(tfName.getText());co.setRegion((String) cbRegion.getSelectedItem());co.setArea(tfArea.getText());co.setPopulation(tfPopu.getText());co.setGdp(tfGDP.getText());boolean flag = CountryOperate.add(co);if (flag) {JOptionPane.showMessageDialog(jFrame, "添加成功");} else {JOptionPane.showMessageDialog(jFrame, "添加失败");}}} else if (e.getActionCommand().equals("删除")) { if(!tfName.getText().equals("")){String key = tfName.getText();boolean flag = CountryOperate.del(key);if (flag) {JOptionPane.showMessageDialog(jFrame, "删除成功");} else {JOptionPane.showMessageDialog(jFrame, "删除失败");}}else {JOptionPane.showMessageDialog(jFrame, "请填写一个国家名字"); }} else if (e.getActionCommand().equals("更新")) { if (!tfName.getText().equals("")&& !cbRegion.getSelectedItem().equals("请选择")&& !tfArea.getText().equals("")&& !tfPopu.getText().equals("")&& !tfGDP.getText().equals("")) {Country cou = new Country();cou.setName(tfName.getText());cou.setRegion((String)cbRegion.getSelectedItem());cou.setPopulation(tfPopu.getText());cou.setArea(tfArea.getText());cou.setGdp(tfGDP.getText());boolean flag = CountryOperate.modify(cou);if(flag){JOptionPane.showMessageDialog(jFrame, "更新成功");}else {JOptionPane.showMessageDialog(jFrame, "更新失败");}} else {JOptionPane.showMessageDialog(jFrame, "请填写相应的信息"); }}public void setValues(Object[][] obj) {this.tm.setDatavalues(obj);}public void selectAll() {List<Country> list = CountryOperate.queryFirst();Object[][] datavalues = new Object[list.size()][5];for (int i = 0; i < list.size(); i++) {Country co = list.get(i);datavalues[i][0] = co.getName();datavalues[i][1] = co.getRegion();datavalues[i][2] = co.getArea();datavalues[i][3] = co.getRegion();datavalues[i][4] = co.getGdp();}tm = new TableModel();this.setValues(datavalues);table = new JTable(tm);table.updateUI();JScrollPane jsp = new JScrollPane(table);jsp.setBounds(0, 200, 600, 182);jContentPane.add(jsp);}public void selectDownPage() {List<Country> list = CountryOperate.downPage();if (list != null) {Object[][] datavalues = new Object[list.size()][5];for (int i = 0; i < list.size(); i++) {Country co = list.get(i);datavalues[i][0] = co.getName();datavalues[i][1] = co.getRegion();datavalues[i][2] = co.getArea();datavalues[i][3] = co.getRegion();datavalues[i][4] = co.getGdp();}this.setValues(datavalues);table.updateUI();} else {JOptionPane.showMessageDialog(jFrame, "已经是最后一页"); }}public void selectUpPage() {List<Country> list = CountryOperate.upPage();if (list != null) {Object[][] datavalues = new Object[list.size()][5];for (int i = 0; i < list.size(); i++) {Country co = list.get(i);datavalues[i][0] = co.getName();datavalues[i][1] = co.getRegion();datavalues[i][2] = co.getArea();datavalues[i][3] = co.getRegion();datavalues[i][4] = co.getGdp();}this.setValues(datavalues);table.updateUI();} else {JOptionPane.showMessageDialog(jFrame, "已经是第一页"); }}}4操作方法package edu;import javax.swing.table.AbstractTableModel;public class TableModel extends AbstractTableModel {public final static String[] columnHeaders = {"国家名称","所属地区","国家面积","人口数量","国家GDP"};private Object[][] datavalues = {{" "," "," "," "," "}};public int getColumnCount() {return datavalues[0].length;}public int getRowCount() {return datavalues.length;}public Object getValueAt(int rowIndex, int columnIndex) { return datavalues[rowIndex][columnIndex];}public String getColumnName(int column) {return columnHeaders[column];}public void setDatavalues(Object[][] datavalues) {this.datavalues = datavalues;}}5操作方法package edu;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.ArrayList;import java.util.List;public class CountryOperate {static int i = 1;static int x = 0;public static List<Country> queryFirst() {String sql = "select top 5 * from bbc order by name";List<Country> list = query(sql);return list;}public static List<Country> downPage() {int y = queryCount();List<Country> list = null;int count = 0; // 总页数if (y % 5 == 0) {count = y / 5;} else {count = y / 5 + 1;}if (i < count) {x = ((++i) - 1) * 5;String sql = "select top "+ x+ " * from (select * from bbc where name not in(select top " + x + " name from bbc order by name)) as A ";list = query(sql);} else if (i >= count) {list = null;}return list;}public static int queryCount() {int count = 0;Connection conn = DBConnection.getConnection();String sql = "select count(*) from bbc";Statement stmt = null;ResultSet rs = null;try {stmt = conn.createStatement();rs = stmt.executeQuery(sql);while (rs.next()) {count = rs.getInt(1);}} catch (SQLException e) {e.printStackTrace();} finally {try {if (rs != null)rs.close();if (stmt != null)stmt.close();if (conn != null)conn.close();} catch (SQLException e) {e.printStackTrace();}}return count;}public static List<Country> query(String sql) {Connection conn = DBConnection.getConnection();List<Country> list = new ArrayList<Country>();Statement stmt = null;ResultSet rs = null;try {stmt = conn.createStatement();rs = stmt.executeQuery(sql);while (rs.next()) {Country cou = new Country();cou.setName(rs.getString(1));cou.setRegion(rs.getString(2));cou.setArea(rs.getString(3));cou.setPopulation(rs.getString(4));cou.setGdp(rs.getString(5));list.add(cou);}} catch (SQLException e) {e.printStackTrace();} finally {try {if (rs != null)rs.close();if (stmt != null)stmt.close();if (conn != null)conn.close();} catch (SQLException e) {e.printStackTrace();}}return list;}public static List<Country> upPage() {List<Country> list = null;if (i > 2) {x = ((--i) - 1) * 5;String sql = "select top "+ x+ " * from (select * from bbc where name not in(select top " + x + " name from bbc order by name)) as A ";list = query(sql);} else if (i == 2) {list = queryFirst();i--;} else if (i < 2) {list = null;}return list;}public static boolean add(Country cou) {Connection conn = DBConnection.getConnection();PreparedStatement pstmt = null;String sql = "insert into bbc values(?,?,?,?,?)"; int x = 0;try {pstmt = conn.prepareStatement(sql);pstmt.setString(1, cou.getName());pstmt.setString(2, cou.getRegion());pstmt.setString(3, cou.getArea());pstmt.setString(4, cou.getPopulation());pstmt.setString(5, cou.getGdp());x = pstmt.executeUpdate();} catch (SQLException e) {e.printStackTrace();} finally {try {if (pstmt != null)pstmt.close();if (conn != null) {conn.close();}} catch (SQLException e) {e.printStackTrace();}}if (x == 1) {return true;} else {return false;}}public static boolean del(String key) {Connection conn = DBConnection.getConnection();PreparedStatement stmt = null;String sql = "delete from bbc where name =?";int x = 0;try {stmt = conn.prepareStatement(sql);stmt.setString(1, key);x = stmt.executeUpdate();} catch (SQLException e) {e.printStackTrace();} finally {try {if (stmt != null)stmt.close();if (conn != null)conn.close();} catch (SQLException e) {e.printStackTrace();}}if (x == 1) {return true;} else {return false;}}public static boolean modify(Country cou) {Connection conn = DBConnection.getConnection();PreparedStatement pstmt = null;String sql = "update bbc set Region=?,Area=?,Population=?,Gdp=? where name =?";int x = 0;try {pstmt = conn.prepareStatement(sql);pstmt.setString(1, cou.getName());pstmt.setString(2, cou.getArea());pstmt.setString(3, cou.getPopulation());pstmt.setString(4, cou.getGdp());pstmt.setString(5, cou.getName());x = pstmt.executeUpdate();} catch (SQLException e) {e.printStackTrace();}if(x==1){return true; }else {return false; }}}6实现界面效果1.添加功能1.删除功能3查找功能。

相关文档
最新文档