- 浏览: 200433 次
- 性别:
- 来自: 包头
最新评论
-
chengeng:
图片没有显示。
登录系统-基于struts2+spring+hibernate分层架构 -
chengeng:
不知为什么,图片没有显示出来。
登录系统-基于struts2+spring+hibernateJPA分层架构 -
rdz09:
解析得很详细,不错
从头学起:struts2(1) -
zxd543:
图怎么都看不见呢?
登录系统-基于struts2+spring+hibernate分层架构 -
huweijie:
...
JAVA语言程序设计-第九章 异常处理
1编写应用类ConnectionManager,用来建立与指定数据库服务器的连接。
package myshop.db;
import java.sql.*;
/**
* 数据库连接控制类。通过访问静态方法获得数据库连接
*/
public abstract class ConnectionManager {
/** 获得连接池连接 */
public static final int TYPE_POOLED = 0;
/** 获得直接物理连接 */
public static final int TYPE_DIRECT = 1;
/** 私有空构造方法。保证本类不能够被实例化 */
private ConnectionManager() {
}
/**
* 获得默认连接方式的数据库连接。目前默认为物理连接。
* @return Connection 数据库连接
*/
public static Connection getConnection() {
return getConnection(TYPE_DIRECT);
}
/**
* 获得指定连接方式的数据库连接
* @param type int 连接方式 <br/>
* ConnectionManager.TYPE_POOLED 数据库连接池连接 <br/>
* ConnectionManager.TYPE_DIRECT 直接物理连接
* @return Connection 数据库连接
*/
public static Connection getConnection(int type) {
Connection conn = null;
switch (type) {
case TYPE_DIRECT:
try {
// 定义JDBC驱动程序
String driverName="org.gjt.mm.mysql.Driver";// MySQL 驱动程序名称
Class.forName(driverName);
// 数据库连接参数。指定采用中文编码方式连接数据库
String serverName = "localhost"; // 数据库主机名称
String mydatabase = "my_shop"; // 数据库名称
// 连接url。指定连接方式为GBK编码
String url = "jdbc:mysql://" + serverName + "/" +
mydatabase +
"?useUnicode=true&characterEncoding=GBK";
String username = "root"; // 连接用户名
String password = "111111"; // 连接密码
// 获得数据库连接
conn = DriverManager.getConnection(url, username, password);
} catch (ClassNotFoundException e) {
// 不能够找到所需类
e.printStackTrace();
} catch (SQLException e) {
// 获得数据库连接发生异常
e.printStackTrace();
}
break;
case TYPE_POOLED:
throw new UnsupportedOperationException("Now Unsupported.");
}
return conn;
}
/**
* 关闭数据库连接
* @param conn Connection 需要被关闭的数据库连接
*/
public static void closeConnection(Connection conn) {
if (conn != null) { //连接是否有效
try {
if (!conn.isClosed()) { //连接是否已关闭
conn.close(); //关闭连接
}
} catch (SQLException ex1) {
ex1.printStackTrace();
}
}
}
/**
* 主方法。用于检测本类工作是否正常
* @param args String[] 运行时参数
*/
public static void main(String[] args) {
Connection conn = null;
try {
conn = ConnectionManager.getConnection();
if (conn == null) {
System.out.println("获得数据库连接错误.");
} else {
System.out.println("正常获得数据库连接 == " + conn);
}
} catch (Exception ex) {
ex.printStackTrace();
} finally {
closeConnection(conn);
}
}
}
2.编写类DBCategory,用来完成对商品类别的MySql数据库操作
package myshop.db;
import java.sql.*;
import java.util.*;
import myshop.Category;
/**
* 完成对商品类别的数据库操作
*/
public abstract class DBCategory {
/** 私有空构造方法。保证本类不能够被实例化 */
private DBCategory() {
}
/**
* 向数据库中添加商品类别
* @param c Category 需要添加的商品类别。要求已经检验过属性的合法性。
*/
public static void addCategory(Category c) {
Connection conn = null;
try {
conn = ConnectionManager.getConnection(); // 获得数据连接
Statement stmt = conn.createStatement(); // 建立Statement执行SQL操作
stmt.executeUpdate("INSERT INTO CATEGORY (NAME) VALUES ('" +
c.getName() + "')"); // 执行SQL命令
stmt.close();
} catch (Exception ex) {
ex.printStackTrace();
} finally {
ConnectionManager.closeConnection(conn);
}
}
/**
* 获得全部商品分类
* @return Iterator 商品分类的迭代器
*/
public static Iterator getAllCategory() {
List l = new ArrayList(); //容器类。用于存放所有符合条件的对象。
Connection conn = null;
try {
conn = ConnectionManager.getConnection(); // 获得数据连接
Statement stmt = conn.createStatement(); // 建立Statement执行SQL操作
ResultSet rs = stmt.executeQuery("SELECT ID, NAME FROM CATEGORY");
while (rs.next()) {
l.add(new Category(rs.getInt(1), rs.getString(2)));
}
stmt.close();
} catch (Exception ex) {
ex.printStackTrace();
} finally {
ConnectionManager.closeConnection(conn);
}
return l.iterator();
}
/**
* 修改商品类别的属性。目前只实现了修改名称。
* @param c Category 已经填充新属性的商品类别包装类。
*/
public static void updateCategory(Category c) {
Connection conn = null;
try {
conn = ConnectionManager.getConnection(); // 获得数据连接
// 使用PreparedStatement更新数据。
// 每个"?"代表一个占位符,在执行之前要一一设置各占位符的内容
PreparedStatement ps = conn.prepareStatement(
"UPDATE CATEGORY SET NAME=? WHERE ID=?");
// 设置第一个占位符的内容。设置内容类型为String
ps.setString(1, c.getName());
// 设置第二个占位符的内容。设置内容类型为int
ps.setInt(2, c.getId());
ps.executeUpdate(); //执行更新操作
ps.close();
} catch (Exception ex) {
ex.printStackTrace();
} finally {
ConnectionManager.closeConnection(conn);
}
}
/**
* 获得指定ID的商品类别对象
* @param id int 商品类别ID
* @return Category 商品类别对象
*/
public static Category getCategory(int id) {
Category c = null;
Connection conn = null;
try {
conn = ConnectionManager.getConnection(); // 获得数据连接
// 建立PreparedStatement用于执行SQL操作
PreparedStatement ps = conn.prepareStatement(
"SELECT ID, NAME FROM CATEGORY WHERE ID=?");
ps.setInt(1, id); // 设置第一个占位符的内容
ResultSet rs = ps.executeQuery(); // 执行SQL命令
if (rs.next()) { //因为每个类别的ID是唯一的,所以只返回一个结果既可
c = new Category(rs.getInt(1), rs.getString(2));
}
ps.close();
} catch (Exception ex) {
ex.printStackTrace();
} finally {
ConnectionManager.closeConnection(conn);
}
return c;
}
(待续)
发表评论
-
多选题
2011-03-30 17:23 38201.执行下列代码后,哪个结论是正确的 String[] s=n ... -
填空题(3)
2011-03-30 17:20 1174143. 程序的一次动态执 ... -
填空题(2)
2011-03-30 17:18 17481. Java程序主要分为两种类型: 应用程序和 ... -
填空题(1)
2011-03-30 11:39 19301.执行下列代码后的结果是什么? int x,a=2,b=3, ... -
判断题
2011-03-30 11:08 11631. ( ) 程序中抛出异常时(throw …),只 ... -
选择题(七)
2011-03-30 11:04 2188181.如果任何包中的子类都能访问超类中的成员,那么应使用哪个 ... -
选择题(六)
2011-03-30 10:59 1079151.给出下面代码: 1) class Parent { ... -
选择题(五)
2011-03-30 10:54 1217121.下面哪个修饰符修饰的变量是所有同一个类生成的对象共享的 ... -
选择题(四)
2011-03-30 10:49 224192.下面关于Applet的说法正确的是 ( ) A、 ... -
选择题(三)
2011-03-30 10:47 122261、下列哪个用户图形 ... -
选择题(二)
2011-03-30 10:36 141431、类与对象的关系是( )。 A. 类是对象的抽象 B. ... -
选择题(一)
2011-03-30 10:34 13221、下面关于变量及其作用范围的陈述哪个是不对的?( ) A ... -
程序填空题(二)
2011-03-30 10:27 154110. 应用树结点构造一棵树,其根结点为 “M0407”,根结 ... -
程序填空题
2011-03-30 10:25 2338程序填空题 1、定义一个长度为5的字符串数组,并初始化其初值 ... -
程序改错
2011-03-30 10:23 1261程序改错 1、改正下面程序段中的错误(共5处) pub ... -
Java程序设计—编程习题
2011-03-30 10:19 39131.编写一个输出"Hello World!" ... -
Java编程练习题(九)
2011-03-30 10:15 1234(接Java编程练习题(八)) /** ... -
Java编程练习题(七)
2011-03-30 10:06 9271. 设计一程序,创建一个用户界面,设计一块显示图片的空间及“ ... -
Java 编程练习题(六)
2011-03-30 10:03 12181.设计一个程序,在一窗口中实现一个文件菜单的功能,在该菜单中 ... -
Java 编程练习题(四)
2011-03-30 09:56 20871. 设计一个资源管理编辑器,有二层节点结构,第一层内容有我 ...
相关推荐
经典Java编程练习题 Java编程练习题是一组经典的编程练习题,旨在考核Java编程能力。这30道练习题涵盖了Java基础知识、数据类型、运算符、控制结构、方法、数组、面向对象编程等方面的知识点。 知识点1: Java基础...
本资源“Java编程练习题”旨在帮助学习者深化对Java Standard Edition(Java SE)的理解,通过实践来提高编程技能。Java SE是Java平台的基础,提供了用于桌面应用程序和服务器端应用程序开发的核心API。 这些练习题...
Java是一种广泛使用的面向对象的编程语言,以其跨平台、高性能和丰富的类库而著名。...通过这些练习题答案,学习者不仅可以检查自己的解题思路,还能对比最佳实践,加深对Java编程的理解,进一步提高编程技能。
Java面向对象编程练习题 本资源摘要信息涵盖了 Java 面向对象编程的基础知识,通过三个练习题,展示了 Java 编程语言的基本概念和应用。 练习题 01: 类的成员变量 本练习题展示了 Java 中类的成员变量的概念。类 ...
"50道Java程序练习题"提供了一个绝佳的机会来提升你的编程技能。下面,我们将深入探讨这些练习题可能涵盖的知识点,并给出一些关键概念的解释。 1. **基础语法**:练习题可能包括变量声明、数据类型(如整型、浮点...
Java数组是Java编程语言中的基本数据结构之一,用于存储固定数量的同类型元素。了解和熟练掌握数组的使用是学习Java的重要环节。本篇练习题涵盖了数组的基本概念、操作和异常处理,下面是针对题目中涉及知识点的详细...
在Java编程中,集合是一个非常重要的概念,它用于存储一组对象。在这个“java集合练习题”中,我们主要关注如何使用Java集合框架来处理数据,特别是对于学生信息的存储、排序和输出。以下是对这个练习题的详细解析:...
Java基础练习题由本人整理并上传,非常适合于初学者加强巩固自己的知识,编程学好的唯一途径就是多练习。
Java 基础编程练习题汇总 本资源提供了 50 道 Java 基础编程练习题,涵盖了 Java 编程的多个方面,包括数据类型、运算符、控制结构、函数、数组、字符串等。这些练习题可以帮助初学 Java 编程的开发者更好地理解 ...
(IT类课程习题)Java编程练习题Java面试题.zip (IT类课程习题)Java编程练习题Java面试题.zip (IT类课程习题)Java编程练习题Java面试题.zip (IT类课程习题)Java编程练习题Java面试题.zip
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面试题【PGC】.zip (IT类课程习题)Java编程练习题Java面试题【PGC】.zip (IT类课程习题)Java编程练习题Java面试题【PGC】.zip (IT类课程习题)Java编程练习题Java面试题【PGC】.zip
通过这些练习题和代码实现,学习者可以逐步提升Java编程能力,理解Java编程思想的精髓,从而在实际项目中游刃有余。这些解答不仅提供正确结果,还应该解释背后的原理和最佳实践,有助于深化理解并提升编程技巧。
总的来说,这个名为"java语言程序设计 10th by梁勇 编程练习题答案.zip"的压缩包文件,为Java学习者提供了一份宝贵的资源,涵盖了从基础到高级的Java编程知识,有助于巩固理论学习,提高实践能力,对于个人的Java...
这份"java基础练习题(目前到集合内含三个小综合案例)"涵盖了Java的基础知识,旨在帮助学习者巩固并提升Java编程技能。从JDK(Java Development Kit)入门到集合框架的学习,这是一个全面了解和实践Java编程的重要...
java多态、继承练习题,包含题目与答案,............................................................................................................
Java学习是编程领域中不可或缺的一部分,它是一种广泛使用的...通过上述四套附有答案的Java学习练习题,学习者不仅可以检验自己的学习效果,还能通过解答过程深化对各知识点的理解,从而在实践中不断提升Java编程能力。
【Java编程练习题资源】 学习配套博客地址:https://blog.csdn.net/qq_36631076/article/details/136791045 在学习Java编程时,熟练掌握常用的Java类和API是至关重要的。以下是关于Java编程基础、面向对象和常用类...