`

Java编程练习题(九)

阅读更多

(接Java编程练习题(八))   

 /**

      * 删除指定ID的商品类别

      * @param id int 商品类别ID

      */

     public static void deleteCategory(int id) {

       Connection conn = null;

       try {

         conn = ConnectionManager.getConnection(); // 获得数据连接

 

         // 建立PreparedStatement用于执行SQL操作

         PreparedStatement ps = conn.prepareStatement(

           "DELETE FROM CATEGORY WHERE ID=?");

         ps.setInt(1, id); // 设置第一个占位符的内容

         ps.executeUpdate();

         ps.close();

       } catch (Exception ex) {

         ex.printStackTrace();

       } finally {

         ConnectionManager.closeConnection(conn);

       }

     }

   }

 

 

1. 编写CategoryManager类,该类通过调用DBCategory类的相关方法完成对商品类别的相关操作,要求对所进行的操作进行逻辑判断,使操作合理、合法时才能完成。

package myshop;

 

 import java.util.Iterator;

 

 import myshop.db.DBCategory;

 

 

 /**

  * 本类用于对商品类别的相关操作。通过访问静态方法进行相关操作

  */

  public abstract class CategoryManager {

    /** 私有空构造方法。保证本类不能够被实例化 */

    private CategoryManager() {

    }

 

 

    /**

     * 添加商品类别

     * @param c Category 需要添加的商品类别。要求已经填充类别的各个属性。

     */

    public static void addCategory(Category c) {

      if (c.getName() == null || c.getName().trim().length() == 0) {

        // 类别名称是未设置。抛出异常。

        throw new IllegalArgumentException(

          " Category name is null or empty.");

      } else {

        // 向数据库中保存商品类别

        DBCategory.addCategory(c);

      }

    }

 

 

    /**

     * 获得全部商品分类

     * @return Iterator 商品分类的迭代器

     */

    public static Iterator getAllCategory() {

      return DBCategory.getAllCategory();

    }

 

 

    /**

     * 修改商品类别的属性。目前只实现了修改名称。

     * @param c Category 已经填充新属性的商品类别包装类。

     */

    public static void updateCategory(Category c) {

      DBCategory.updateCategory(c);

    }

 

 

    /**

     * 获得指定ID的商品类别对象

     * @param id int 商品类别ID

     * @return Category 商品类别对象。如果指定ID的商品类别不存在返回null

     */

    public static Category getCategory(int id) {

      return DBCategory.getCategory(id);

    }

 

 

    /**

     * 删除指定ID的商品类别

     * @param id int 商品类别ID

     */

    public static void deleteCategory(int id) {

      DBCategory.deleteCategory(id);

    }

  }

 

 

2  仔细阅读题目,并按以下说明完成题目要求的所有内容。

要求:

      ①本题目录下应有名字为1.txt的文本文件:写清建库、使用库、建表、向表中添加记录的所有SQL语句。

      ②通过JDBC操作MYSQL数据库的应用程序的源代码。

      ③将MYSQL安装目录C:\Program Files\MySQL\MySQL Server 4.1下的data目录拷贝到本题根目录下。 

 

编写应用程序,通过JDBC实现MySql数据库的以下操作。

  1)修改MySql密码为111111

  2)在命令行启动MySql,创建数据库:my_shop

  3)在my_shop数据库中创建表category,该表包含两个字段:整型id,向表中添加记录时,其值自动增加;可变长字符串name,最大字符串长度为200;其中idcategory表的主键。

   4)向表中添加两条记录,其name字段的值分别是:bookhouse

  5)编写Java应用程序,通过JDBC建立数据库连接,并查询my_shop库中category表中的所有记录,并在命令行显示。

    程序中用到的驱动程序包含在:

c:\javasoftware\mysql-connector-java-3.0.15-ga-bin.jar中。

 

 

参考答案:

(1)1.txt文本文件的内容:

       建库:CREATE DATABASE my_shop;

     使用库:use my_shop;

     建表:

          CREATE TABLE CATEGORY(

                ID                INTEGER             AUTO_INCREMENT,

                NAME          VARCHAR(200),

                PRIMARY KEY (ID)

          );

     添加记录:

         insert into category (name) values('book');

         insert into category (name) values('house');

2)源程序:

import  java.sql.*; 

public class Test {   

    public static void main(String[] args) {       

        Connection  conn=null;

        try{

            //1. 定义JDBC驱动程序          

            String driverName = "org.gjt.mm.mysql.Driver";//MySQL 驱动程序名

            Class.forName(driverName);           

            //2.建立连接 

            String serverName = "localhost"; // 数据库主机名称

            String mydatabase = "my_shop"; // 数据库名称  

            String url = "jdbc:mysql://" + serverName + "/" +

                   mydatabase + "?useUnicode=true&characterEncoding=GBK";

            String username = "root"; // 连接用户名

            String password = "111111"; // 连接密码           

            conn = DriverManager.getConnection(url, username,password);

            //3.查询

            String  sqlString = "SELECT  *  FROM CATEGORY " ;         

            Statement  stm = conn.createStatement();         

            ResultSet rs = stm.executeQuery (sqlString) ;     

            while ( rs.next () ) {         

                System.out.print(rs.getInt(1)+"\t"); // 获得SQL命令中的第一个字段内容

                System.out.println(rs.getString(2)); // 获得SQL命令中的第二个字段内容

            }

            stm.close();           

        }

       catch (ClassNotFoundException e) {

            // 不能够找到所需类

            e.printStackTrace();

       }

       catch (SQLException e) {

            // 获得数据库连接发生异常

            e.printStackTrace();

       }

    }

}

分享到:
评论

相关推荐

    经典java编程练习题

    经典Java编程练习题 Java编程练习题是一组经典的编程练习题,旨在考核Java编程能力。这30道练习题涵盖了Java基础知识、数据类型、运算符、控制结构、方法、数组、面向对象编程等方面的知识点。 知识点1: Java基础...

    Java编程练习题

    本资源“Java编程练习题”旨在帮助学习者深化对Java Standard Edition(Java SE)的理解,通过实践来提高编程技能。Java SE是Java平台的基础,提供了用于桌面应用程序和服务器端应用程序开发的核心API。 这些练习题...

    Java课后编程练习题答案

    Java是一种广泛使用的面向对象的编程语言,以其跨平台、高性能和丰富的类库而著名。...通过这些练习题答案,学习者不仅可以检查自己的解题思路,还能对比最佳实践,加深对Java编程的理解,进一步提高编程技能。

    Java面向对象编程练习题.pdf

    Java面向对象编程练习题 本资源摘要信息涵盖了 Java 面向对象编程的基础知识,通过三个练习题,展示了 Java 编程语言的基本概念和应用。 练习题 01: 类的成员变量 本练习题展示了 Java 中类的成员变量的概念。类 ...

    50道java程序练习题

    "50道Java程序练习题"提供了一个绝佳的机会来提升你的编程技能。下面,我们将深入探讨这些练习题可能涵盖的知识点,并给出一些关键概念的解释。 1. **基础语法**:练习题可能包括变量声明、数据类型(如整型、浮点...

    Java数组练习题(带答案).doc

    Java数组是Java编程语言中的基本数据结构之一,用于存储固定数量的同类型元素。了解和熟练掌握数组的使用是学习Java的重要环节。本篇练习题涵盖了数组的基本概念、操作和异常处理,下面是针对题目中涉及知识点的详细...

    java 集合练习题

    在Java编程中,集合是一个非常重要的概念,它用于存储一组对象。在这个“java集合练习题”中,我们主要关注如何使用Java集合框架来处理数据,特别是对于学生信息的存储、排序和输出。以下是对这个练习题的详细解析:...

    java基础练习题(基础)精选

    Java基础练习题由本人整理并上传,非常适合于初学者加强巩固自己的知识,编程学好的唯一途径就是多练习。

    50道JAVA基础编程练习题

    Java 基础编程练习题汇总 本资源提供了 50 道 Java 基础编程练习题,涵盖了 Java 编程的多个方面,包括数据类型、运算符、控制结构、函数、数组、字符串等。这些练习题可以帮助初学 Java 编程的开发者更好地理解 ...

    (IT类课程习题)Java编程练习题Java面试题.zip

    本压缩包文件《(IT类课程习题)Java编程练习题Java面试题.zip》正是为了满足这一需求而精心制作的。 首先,该文件中的Java编程练习题通常涵盖了Java基础语法、面向对象编程、异常处理、集合框架、I/O流、多线程以及...

    java编程练习题

    java编程练习题,内有许多基础、经典的java编程练习题,快来下载吧!

    java语言程序设计 10th by梁勇 编程练习题答案.zip

    总的来说,这个名为"java语言程序设计 10th by梁勇 编程练习题答案.zip"的压缩包文件,为Java学习者提供了一份宝贵的资源,涵盖了从基础到高级的Java编程知识,有助于巩固理论学习,提高实践能力,对于个人的Java...

    Java编程思想练习题答案(代码)

    通过这些练习题和代码实现,学习者可以逐步提升Java编程能力,理解Java编程思想的精髓,从而在实际项目中游刃有余。这些解答不仅提供正确结果,还应该解释背后的原理和最佳实践,有助于深化理解并提升编程技巧。

    java基础练习题 (目前到集合内含三个小综合案例)

    这份"java基础练习题(目前到集合内含三个小综合案例)"涵盖了Java的基础知识,旨在帮助学习者巩固并提升Java编程技能。从JDK(Java Development Kit)入门到集合框架的学习,这是一个全面了解和实践Java编程的重要...

    java多态练习题

    java多态、继承练习题,包含题目与答案,............................................................................................................

    (IT类课程习题)Java编程练习题Java面试题PGJ.zip

    因此,提供针对性的Java编程练习题和面试题,可以帮助学习者巩固基础、提升实战能力,并为求职面试做好充分准备。 本压缩包文件包含了丰富的Java编程练习题和面试题资源,这些资源适用于不同水平的学习者,从初学者...

    Java学习练习题

    Java学习是编程领域中不可或缺的一部分,它是一种广泛使用的...通过上述四套附有答案的Java学习练习题,学习者不仅可以检验自己的学习效果,还能通过解答过程深化对各知识点的理解,从而在实践中不断提升Java编程能力。

    Java编程练习题资源 学习Java编程是一项重要的技能,无论是初学者还是有经验的开发人员都可以从练习题中受益 这份练习题

    【Java编程练习题资源】 学习配套博客地址:https://blog.csdn.net/qq_36631076/article/details/136791045 在学习Java编程时,熟练掌握常用的Java类和API是至关重要的。以下是关于Java编程基础、面向对象和常用类...

    java基础if选择题练习题

    根据提供的信息,我们可以总结出这份文档是关于Java基础的学习材料,特别聚焦于if语句的选择题练习。这里我们将深入分析几个关键的知识点:基于if语句的流程控制、在程序中熟练使用运算符以及绘制流程图的方法。 ##...

Global site tag (gtag.js) - Google Analytics