赛迪网 > IT技术 Java > 技术动态
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

快速应用JDBC控件访问数据库资源

发布时间:2006.10.09 08:56     来源:chinaitlab    作者:

JDBC控件是Beehive1.0中提供的访问JDBC数据源的Java控件。通过继承JDBC控件,我们根本无须关注访问数据库资源的通讯细节,只需要定义自己的业务方法,增加相应的注释来描述该继承子类,我们就可以非常轻松的实现企业应用中JDBC数据源的访问。

  JDBC控件的所有注释在org.apache.beehive.controls.system.jdbc.JdbcControl接口中定义,Beehive编译器在编译时将检查这些注释是否使用正确。

  本节中首先将通过一个简单的例子来演示如何通过继承JDBC控件来访问JDBC数据源,完成一个数据表的增加、删除、修改、查询等业务逻辑,随后将介绍如何使用JDBC控件访问JDBC数据源的更多技巧。

  本节中所有演示例子对应的JDBC数据源均为MySQL数据库。

  第一个JDBC控件的例子接下来的这段例子将演示如何通过继承JDBC控件来完成JDBC数据源的访问,实现JDBC数据源中一个数据表中记录增加、删除、修改和查询的业务逻辑。

  在演示例子中,为了保证演示的简洁,我们使用JDBC直接连接到数据库,而没有使用通常访问数据库所采用的DataSource技术。

  第一个JDBC控件的例子

  接下来的这段例子将演示如何通过继承JDBC控件来完成JDBC数据源的访问,实现JDBC数据源中一个数据表中记录增加、删除、修改和查询的业务逻辑。

   在演示例子中,为了保证演示的简洁,我们使用JDBC直接连接到数据库,而没有使用通常访问数据库所采用的DataSource技术。

建立数据表

在本地MySQL数据库的Demo数据库实例中按照如下DDL建立相应的数据表。  

create table demo(

id int(5) primary key auto_increment,

name varchar(20) not null default '',

value varchar(20) not null default ''

);

建立表征Demo对象的JavaBean

创建新的应用目录,然后创建表征Demo对象的JavaBean

   清单1 src\org\vivianj\beehive\controls\examples\controls\beans\

   Demo.java

1. package org.vivianj.beehive.controls.examples.beans;

2.

3.

4. /**

5. * Demo 用于表征Beehive JDBC控件例子中的Demo对象

6. */

7. public class Demo implements java.io.Serializable{

8. private int id;

9.

10. private String name;

11.

12. private String value;

13.

14. public int getId() {

15. return id;

16. }

17.

18. public void setId(int id) {

19. this.id = id;

20. }

21.

22. public String getName() {

23. return name;

24. }

25.

26. public void setName(String name) {

27. this.name = name;

28. }

29.

30. public String getValue() {

31. return value;

32. }

33.

34. public void setValue(String value) {

35. this.value = value;

36. }

37.

38. }

继承JDBC控件,增加自己的业务方法  

清单2 src\org\vivianj\beehive\controls\examples\controls\

DemoMySQLControl.java

1. package org.vivianj.beehive.controls.examples.controls;

2.

3. import org.apache.beehive.controls.api.bean.ControlExtension;

4. import org.apache.beehive.controls.system.jdbc.JdbcControl;

5. import org.vivianj.beehive.controls.examples.beans.Demo;

6.

7. /**

8. * DemoMySQLControl 用于封装访问MySQL数据库中的Demo数据

9. 表的所有业务逻辑

10. * 包括新增、删除、修改、根据id查找对应的记录、查找所有Demo

11. 数据表中的记录、根据条件查找所有数据表中的记录

12. * 数据库访问时根据参数从DriverManager中获取数据库连接

13. */

14.

15. @ControlExtension

16. @JdbcControl.ConnectionDriver(

17. databaseDriverClass = "org.gjt.mm.mysql.Driver",

18. databaseURL = "jdbc:mysql://localhost/estore ",

19. userName = “root”, password = “root”)

20. public interface DemoMySQLControl extends JdbcControl {

21. /**

22. * 向数据表demo中增加新的记录

23. *

24. * @param demo

25. * 新增加的Demo对象

26. */

27. @SQL(statement = "insert into demo(name,value)

28. values({demo.name},{demo.value})")

29. public void createDemo(Demo demo);

30.

31. /**

32. * 修改数据表demo中demo.id对应记录的name和value信息

33. *

34. * @param demo

35. * 被修改的Demo对象

36. */

37. @SQL(statement = "update demo set name={demo.name},

38. value={demo.value} where id={demo.id}")

39. public void updateDemo(Demo demo);

40.

41. /**

42. * 删除数据表demo中demoId对应的记录

43. *

44. * @param demoId

45. * 被删除的Demo对象的id属性

46. */

47. @SQL(statement = "delete from demo where id={demoId}")

48. public void deleteDemo(int demoId);

49.

50. /**

51. * 根据demoId查找Demo数据库中对应的记录,返回对应的

52. Demo对象

53. *

54. * @param demoId

55. * 查找Demo对象的id属性

56. * @return id属性为demoId的记录

57. */

58. @SQL(statement = "select id,name,value from demo

59. where id={demoId}")

60. public Demo getDemoById(int demoId);

61.

62. /**

63. * 返回Demo数据表中所有记录集合

64. *

65. * @return Demo数据表中所有记录集合

66. */

67. @SQL(statement = "select id,name,value from demo")

68. public Demo[] getDemos();

69.

70. /**

71. *

72. * @param name

73. * @return

74. */

75. @SQL(statement = "select id,name,value from demo

76. where name like {sql: name}")

77. public Demo[] getDemosFilterByName(String name);

78. }


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 保持对Java的敏感度切莫忽视思想研究 (10-09) · 保持对Java的敏感度切莫忽视思想研究 (10-09)
· 一个实现将动态页面转为静态的方案 (10-08) · 一个实现将动态页面转为静态的方案 (10-08)
· Java Web中的入侵检测及简单实现 (10-08) · Java Web中的入侵检测及简单实现 (10-08)
· JAVA基础:Java的内层类和外层类 (09-28) · JAVA基础:Java的内层类和外层类 (09-28)
· 基础:全面保护你的Java程序安全(下) (09-28) · 基础:全面保护你的Java程序安全(下) (09-28)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
[政务][电信][金融][农业][制造业][中小企业]
[CIO][ERP][协同][IT管理][中间件][电子商务]
[政策][地方][专家][评估][辞典][博客][社区]
· 专题:一路畅通构想曲——让出行不再遭遇堵车
· CIO工作亲历:企业ERP选型不能忽视"选人关"
· 综述:信息化建设给中国监狱带来的各种变化
· 金融业风险管理和法规遵从有五点需考虑的因素
· 保险业CIO关注:该如何建立统一高效的CRM体系
· 调查显示:多数CIO对IT规划仍存在困惑和误解
  博客·论坛 ·曾剑秋·项立刚·Java学习·网管