这次来做一个企业联系方式效果 数据是从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 {
//HibernateDao已经具备基本的增删查该
}
再类似创建其他Dao类,SIDeptDao和SIEmployeeDao和SIMenuDao和SIMessageDao
数据源链接配置修改standardlesson项目中WebContext下的dorado-home中的configure.properties.,添加数据库的配置信息
core.runMode=debug
model.root=classpath*:models
view.root=classpath:
#数据库配置信息
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=//localhost:3306/standardlesson
jdbc.userName=root
jdbc.password=
jdbc.minIdle=10
jdbc.maxActive=50
hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
hibernate.showSql=true
hibernate.formatSql=true
修改app-context.xml
修改stardardlesson工程中webContext/dorado-home目录中的app-context.xml,加入数据库配置信息
${hibernate.dialect}
${hibernate.showSql}
${hibernate.formatSql}
com/bstek/dorado/sample/standardlesson/entity
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
修改web.xml文件
standardlesson项目中的web.xml文件
com.bstek.dorado.web.servlet.SpringContextLoaderListener
OpenSessionInViewFilter
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
excludeSuffixs
js,css,jpg,gif,png
OpenSessionInViewFilter
*.d
OpenSessionInViewFilter
/dorado/*
doradoServlet
com.bstek.dorado.web.servlet.DoradoServlet
1
doradoServlet
*.d
doradoServlet
*.dpkg
doradoServlet
/dorado/*
准备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;
@Component
public class CompanyService{
@Resource//将SICompanDao依赖注入
private SlCompanyDao slcompanyDao;
@DataProvider//用以对dataset提供数据加载服务
public Collection getCompany(){
return slcompanyDao.getAll();
}
}
保存运行打开url即可 http://localhost:8080/standardlesson/com.bstek.dorado.sample.standardlesson.junior.contacts.CompanyInfo.d