快速应用JDBC控件访问数据库资源
发表于:2007-06-22来源:作者:点击数:
标签:
下一页 1 2 3 4 5 JDBC控件是Beehive1.0中提供的访问JDBC数据源的 Java 控件。通过继承JDBC控件,我们根本无须关注访问 数据库 资源的通讯细节,只需要定义自己的业务方法,增加相应的注释来描述该继承子类,我们就可以非常轻松的实现企业应用中JDBC数据源的
下一页 1 2 3 4 5
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技术。
建立数据表
在本地MySQL数据库的Demo数据库实例中按照如下DDL建立相应的数据表。
clearcase/" target="_blank" >cccccc width="90%" align=center bgColor=#e7e9e9 border=1>
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. } |
|
原文转自:http://www.ltesting.net