记Dorado7学习(4)

来源:互联网 发布:screw it,let's do it 编辑:程序博客网 时间:2024/05/29 02:38

这次来做一个企业联系方式效果 数据是从sl_company加载单条数据到autoform中 

准备工作

sl_company表脚本如下:

CREATE TABLE `sl_company` (`company_id` int(11) NOT NULL AUTO_INCREMENT,--企业Id`company_name` varchar(50) DEFAULT NULL,--企业简称`full_name` varchar(100) DEFAULT NULL,--企业全称`web` varchar(45) DEFAULT NULL,--企业官网`address` varchar(100) DEFAULT NULL,--企业地址`postcode` varchar(45) DEFAULT NULL,--邮政编码`phone` varchar(45) DEFAULT NULL,--热线电话`email` varchar(45) DEFAULT NULL,--电子邮件PRIMARY KEY (`company_id`)) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8;

新建package新建包com.bstek.dorado.sample.standardlesson.entity来放实体映射类   com.bstek.dorado.sample.standardlesson.dao来放DAO类

引入项目依赖包 为了跟数据库交互,需要依赖hibernate等jar包,简单一点,把示列中心的simple-center的lib包拷贝到工程中,而simple-center工程的创建可以参考这里http://wiki.bsdn.org/pages/viewpage.action?pageId=9175368    ,我复制的时候发现没有mysql-connector-java-5.0.4-bin.jar,自己去网上下了个放到工程里面去

生成实体映射类这里采用的是hibernate作为持久层需要生成实体映射类,一般是通过eclipse安装hibernate tools插件从数据库反向生成。这里Dorado7 IDE提供了dbtool数据库建模工具,可以快速从数据库中反向生成实体映射类 

在根目录下新建一个文件夹名为db,接着选中该文件夹new在BDF文件夹中选中创建数据库模型,把file name修改为DB.dbtool,界面分别如下

接着双击DB.dbtool,在DB.dbtool页面那里点击鼠标右键,在弹出菜单中选择import,界面如下,出现配置数据库驱动的页面,选择到standardlesson/WebContent/WEB-INF/lib目录选中mysql驱动,就是mysql-connector-java-5.0.4-bin.jar,点击确定后到jdbc链接配置具体设置看你数据库设置,选择5张表都导入前面做的是从数据库导入了表信息,接下把表信息导出为实体映射类。在DB.dbtool文件上点击鼠标右键,弹出菜单中悬着export,然后在弹出次级菜单中选择export javaBean在弹出界面中,将source folder 和 package 按照下图进行配置并且选中生成hibernate Annotation 

新建Dao文件在com.bstek.dorado.sample.standardlesson.dao新建Dao类,创建SlCompanyDao类,并指定其supperClass为SupperClass为com.bstek.dorado.hibernate.HibernateDaoHibernateDao是一个泛型父类,需要指定类型,PK为实体对象中关联数据库表的主键的属性类型,基本的增删查改由HibernateDao实现,修改后的SICompanyDao类如下  

package com.bstek.dorado.sample.standardlesson.dao;import org.springframework.stereotype.Repository;import com.bstek.dorado.hibernate.HibernateDao;import com.bstek.dorado.sample.standardlesson.entity.SlCompany;@Repository//标注dao组件public class SICompanyDao extends HibernateDao<SlCompany, Long> {//HibernateDao已经具备基本的增删查该}
再类似创建其他Dao类,SIDeptDao和SIEmployeeDao和SIMenuDao和SIMessageDao

数据源链接配置修改standardlesson项目中WebContext下的dorado-home中的configure.properties.,添加数据库的配置信息

core.runMode=debugmodel.root=classpath*:modelsview.root=classpath:#数据库配置信息jdbc.driver=com.mysql.jdbc.Driverjdbc.url=//localhost:3306/standardlessonjdbc.userName=rootjdbc.password=jdbc.minIdle=10jdbc.maxActive=50hibernate.dialect=org.hibernate.dialect.MySQL5Dialecthibernate.showSql=truehibernate.formatSql=true
修改app-context.xml修改stardardlesson工程中webContext/dorado-home目录中的app-context.xml,加入数据库配置信息

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:jee="http://www.springframework.org/schema/jee"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-3.0.xsdhttp://www.springframework.org/schema/jeehttp://www.springframework.org/schema/jee/spring-jee-3.0.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-3.0.xsd"><context:component-scan base-package="com.bstek.dorado"></context:component-scan><bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"><property name="driverClassName" value="${jdbc.driver}" /><property name="url" value="jdbc:mysql:${jdbc.url}?useUnicode=true&characterEncoding=utf8"/><property name="username" value="${jdbc.userName}" /><property name="password" value="${jdbc.password}" /><property name="minIdle" value="${jdbc.minIdle}" /><property name="maxActive" value="${jdbc.maxActive}" /></bean><bean id="sessionFactory"  class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"><property name="dataSource" ref="dataSource" /><property name="entityInterceptor" ref="dorado.unByteCodeProxyInterceptor" /><property name="hibernateProperties"><props><prop key="hibernate.dialect">${hibernate.dialect}</prop><prop key="hibernate.show_sql">${hibernate.showSql}</prop><prop key="hibernate.format_sql">${hibernate.formatSql}</prop></props></property><property name="packagesToScan"><list><value>com/bstek/dorado/sample/standardlesson/entity</value></list></property></bean><bean id="transactionManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager"><property name="sessionFactory" ref="sessionFactory" /></bean><tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" /></beans>
修改web.xml文件standardlesson项目中的web.xml文件

<?xml version="1.0" encoding="UTF-8"?><web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/j2eehttp://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"><listener><listener-class>com.bstek.dorado.web.servlet.SpringContextLoaderListener</listener-class></listener><filter><filter-name>OpenSessionInViewFilter</filter-name><filter-class>org.springframework.orm.hibernate3.support.OpenSessionInViewFilter</filter-class><init-param><param-name>excludeSuffixs</param-name><param-value>js,css,jpg,gif,png</param-value></init-param></filter><filter-mapping><filter-name>OpenSessionInViewFilter</filter-name><url-pattern>*.d</url-pattern></filter-mapping><filter-mapping><filter-name>OpenSessionInViewFilter</filter-name><url-pattern>/dorado/*</url-pattern></filter-mapping><servlet><servlet-name>doradoServlet</servlet-name><servlet-class>com.bstek.dorado.web.servlet.DoradoServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>doradoServlet</servlet-name><url-pattern>*.d</url-pattern></servlet-mapping><servlet-mapping><servlet-name>doradoServlet</servlet-name><url-pattern>*.dpkg</url-pattern></servlet-mapping><servlet-mapping><servlet-name>doradoServlet</servlet-name><url-pattern>/dorado/*</url-pattern></servlet-mapping></web-app>
准备Model现在开始会接触到DataType,简单理解就是对数据格式的定义  dorado7工程通过系统配置,预先读取Model文件,并初始化这些DataTyoe信息,相关配置文件有:dorado-home文件夹下的configure.properties:

创建models目录 在src目录下新建models,这个要约configure.properties中的model.root路径一致,在models目录下创建Model,将file name命名为Common.model.xml,选中该model,在主工作区下方点击Properties选项卡,,切换到Model视图。鼠标选中model节点,添加dataType,然后修改该dataType的属性,name属性为SICompany,matchType属性为com.bstek.dorado.sample.standardlesson.entity.SICompany  (这是匹配javabean类型)    

接着生成PropertyDefs在这个dataType上右键选择【通过简单java对象自动创建PropertyDefs】IDE回根据这个DataType的matchType定义的POJO对象映射生成DataType的ProperDef信息,接下来设置每个字段中文

启动测试 启动测试出现下面的页面没有错误信息输出就表示配置ok

开发步骤 创建视图并添加控件在项目中新建com.bstek.dorado.sample.standardlesson.junior.contacts包,在该目录下新建一个View,命名为ConpanyInfo.view.xml,在ViewConfig节点下的view节点下添加一个DataSet控件(该控件是数据容器控件) 设定dataSet属性的id为datasetCompany  datatType属性如图这里需要注意的是object type回影响到存储dataset数据中相关代码,如果选择的是SICompany则dataType会显示[SICompany],如果选择的是Default,则显示SICompany。接下来需要设定datasetCompany的dataProvider属性为:"companyService#getCompany":   (意思是在Spring的beanFactory中寻找id为companyService的bean)

新建并配置AutoForm datasetCompany是一个数据容器控件,在页面上是不可见的,为了展现其中的数据我们需要添加一个可以展现数据的控件对象,如AutoForm。
在视图中添加AutoForm控件:然后设定AutoForm属性,【鼠标右键】点击autoformCompany控件,在弹出菜单中选择【Generate AutoForm Elements】,生成相关字段:

删除companyId这个AutoForm Elements 。由于AutoForm默认是按2列显示,我们如果需要其单列显示则需要调整布局,设置autoformCompany的属性如下:

然后设置置autoformCompany为只读

准备后台服务在com.bstek.dorado.sample.standardlesson.service包中新建CompanyService.java

package com.bstek.dorado.sample.standardlesson.service;import java.util.Collection;import javax.annotation.Resource;import org.springframework.stereotype.Component;import org.springframework.transaction.annotation.Transactional;import com.bstek.dorado.annotation.DataProvider;import com.bstek.dorado.annotation.DataResolver;import com.bstek.dorado.sample.standardlesson.dao.SlCompanyDao;import com.bstek.dorado.sample.standardlesson.entity.SlCompany;@Componentpublic class CompanyService{@Resource//将SICompanDao依赖注入private SlCompanyDao slcompanyDao;@DataProvider//用以对dataset提供数据加载服务public Collection<SlCompany> getCompany(){return slcompanyDao.getAll();}}

保存运行打开url即可 http://localhost:8080/standardlesson/com.bstek.dorado.sample.standardlesson.junior.contacts.CompanyInfo.d



原创粉丝点击