`

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 (IT类课程习题)Java编程练习题Java面试题.zip (IT类课程习题)Java编程练习题Java面试题.zip (IT类课程习题)Java编程练习题Java面试题.zip

    java编程练习题

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

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

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

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

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

    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多态、继承练习题,包含题目与答案,............................................................................................................

    Java学习练习题

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

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

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

Global site tag (gtag.js) - Google Analytics