[构建自己的持久层]三、Type数据类型描述
2010-08-27 10:27
295 查看
一切反动派都是纸老虎!
数据类型,用来描述对象属性的java数据类型与数据库数据库类型的关系。也就是说,创建一个类,类的其中一个属性是email,在java中是什么类型,在数据库中是什么类型...
以MySql数据库为例
/catframework/xtools/data/MySql.xml
<?xml version="1.0" encoding="UTF-8"?>
<types>
<type name="text" label="小文本" javatype="java.lang.String" datatype="varchar(${Length})" browserurl="" view="input" hibernatetype="string"><input type="text" max="${max}" value=${value} /></type>
<type name="textarea" label="大文本" javatype="java.lang.String" datatype="text" browserurl="" view="textarea" hibernatetype="string"><textarea></textarea></type>
<type name="integer" label="整数" javatype="java.lang.Integer" datatype="integer" browserurl="" view="inputnumber" hibernatetype="integer"></type>
<type name="long" label="长整数" javatype="java.lang.Long" datatype="BIGINT" browserurl="" view="inputnumber" hibernatetype="integer"></type>
<type name="float" label="浮点数" javatype="java.math.BigDecimal" datatype="decimal(18,${Length})" browserurl="" view="inputfloat" hibernatetype="decimal"></type>
<type name="datetime" label="日期时间" javatype="java.util.Date" datatype="datetime" browserurl="/com/cat/xframework/browser/datetime.jsp?value=${value}" view="browserdatetime" hibernatetype="timestamp"></type>
<type name="date" label="日期" javatype="java.lang.String" datatype="char(10)" browserurl="/com/cat/xframework/browser/date.jsp?value=${value}" view="browserdate" hibernatetype="string"></type>
<type name="time" label="时间" javatype="java.lang.String" datatype="char(8)" browserurl="/com/cat/xframework/browser/time.jsp?value=${value}" view="browsertime" hibernatetype="string"></type>
<type name="spojo" label="选择单实体" javatype="java.lang.String" datatype="varchar(${Length})" browserurl="/com/cat/xframework/browser/pojo.jsp?value=${value}" view="selectpojo" hibernatetype="integer"></type>
<type name="image" label="单图片" javatype="java.lang.String" datatype="varchar(${Length})" browserurl="/com/cat/xframework/browser/pojo.jsp?value=${value}" view="selectpojo" hibernatetype="integer"></type>
<type name="pojo" label="单实体" javatype="java.lang.String" datatype="varchar(${Length})" browserurl="/com/cat/xframework/browser/pojo.jsp?value=${value}" view="browserpojo" hibernatetype="integer"></type>
<type name="xpojo" label="多实体" javatype="java.lang.String" datatype="text" browserurl="/com/cat/xframework/browser/xpojo.jsp?value=${value}" view="xbrowserpojo" hibernatetype="string"></type>
<type name="mobile" label="手机号" javatype="java.lang.String" datatype="varchar(${Length})" browserurl="" view="input" hibernatetype="string"></type>
<type name="phone" label="电话" javatype="java.lang.String" datatype="varchar(${Length})" browserurl="" view="input" hibernatetype="string"></type>
<type name="email" label="邮件" javatype="java.lang.String" datatype="varchar(${Length})" browserurl="" view="inputemail" hibernatetype="string"></type>
<type name="url" label="网址" javatype="java.lang.String" datatype="varchar(${Length})" browserurl="" view="inputemail" hibernatetype="string"></type>
<type name="selectstring" label="选择文本" javatype="java.lang.String" datatype="varchar(${Length})" browserurl="" view="selecstring" hibernatetype="string"></type>
<type name="selectinteger" label="选择整数" javatype="java.lang.Integer" datatype="integer" browserurl="" view="selectnumber" hibernatetype="integer"></type>
<type name="selectfloat" label="选择浮点数" javatype="java.math.BigDecimal" datatype="decimal" browserurl="" view="selectfloat" hibernatetype="decimal"></type>
<type name="browser" label="单选浏览" javatype="java.lang.Integer" datatype="integer" browserurl="" view="browser" hibernatetype="integer"></type>
<type name="multibrowser" label="多选浏览" javatype="java.lang.String" datatype="text" browserurl="" view="browser" hibernatetype="string"></type>
<type name="browser" label="单选浏览" javatype="java.lang.Integer" datatype="integer" browserurl="" view="browser" hibernatetype="integer"></type>
<type name="multibrowser" label="多选浏览" javatype="java.lang.String" datatype="text" browserurl="" view="browser" hibernatetype="string"></type>
<type name="identity" label="自增ID" javatype="java.lang.Long" datatype="BIGINT NOT NULL AUTO_INCREMENT" browserurl="" view="inputnumber" hibernatetype="integer"><input type="text" max="${max}" value=${value} /></type>
<createtable label="创建表SQL模板">
CREATE TABLE ${tablename} (
${id} ${columtype} NOT NULL ,
${label} varchar(500),
PRIMARY KEY(${id})
)
TYPE = InnoDB DEFAULT CHARSET=utf8;
</createtable>
<createtablebyextends label="创建表SQL模板">
CREATE TABLE ${tablename} (
${id} ${columtype} NOT NULL ,
PRIMARY KEY(${id}),
CONSTRAINT FK_${tablename}_${extends} FOREIGN KEY FK_${tablename}_${extends} (${id})
REFERENCES ${extends}(${id})
ON DELETE RESTRICT
ON UPDATE RESTRICT
)
TYPE = InnoDB DEFAULT CHARSET=utf8;
</createtablebyextends>
<addcolum label="加入列SQL模板">ALTER TABLE ${tablename} add ${columname} ${columtype}</addcolum>
<modifycolum label="修改列SQL模板">ALTER TABLE ${tablename} MODIFY COLUMN ${columname} ${columtype}</modifycolum>
<dropcolum label="删除列SQL模板">ALTER TABLE ${tablename} DROP COLUMN ${columname}</dropcolum>
<droptable label="删除表SQL模板">DROP TABLE ${tablename}</droptable>
<dialect>com.cat.xtools.data.MySqlDialect</dialect>
<connectionmanager>com.cat.xtools.conn.CatConnectionManager</connectionmanager>
<!--
Oracle org.hibernate.dialect.OracleDialect
MySQL org.hibernate.dialect.MySQLDialect
MsSQL com.cat.xtools.data.MsSqlDialect
其它数据库未测
-->
</types>
简单介绍一下:types->type:小文本,在java中的类型是String,在hibernate中的类型是string,在数据库中的类型是varchar,在html页面上就是input.啊!为什么还要描述html信息?后面会讲到:)
对,就这样描述。
我们再来看一下,为了方便我们动态的创建数据库表,数据实现映射,动态的修改数据库的表,我们定义了不同的创建方法,这里不再详述
dialect是SQL查询解析,我无耻了一下,这里照搬了hibernate,但是MsSql没有照搬,因为MsSql有特殊的地方,作为商业机密,在这里不讲了。
我们再来看一下com.cat.xtools.Type.java
package com.cat.xtools;
/**
* 数据类型<br>
* <p>
* 修改日期:2006-1-25
* <p>
* 修改说明:
* <p>
* 版权所有:Copyright 2006 软件有限公司, Inc. All rights reserved.
*
* @version 1.0
* @author 侯正刚
* @since 1.0
*/
public class Type extends SysEntity{
private String javatype=null;
private String datatype=null;
private String browserurl=null;
private String hibernatetype=null;
private String view=null;
public Type() {
super();
}
/**
* 设置JAVA类型
* @param javatype
*/
public void setJavatype(String javatype) {
this.javatype=javatype;
}
/**
* 返回JAVA类型
* @return
*/
public String getJavatype() {
return this.javatype;
}
/**
* 设置数据库类型
* @param type
*/
public void setDatatype(String type) {
this.datatype=type;
}
/**
* 返回数据库类型
* @return
*/
public String getDatatype() {
return this.datatype;
}
/**
* 返回数据库类型描述串
* @return
*/
public String getTypestr(Integer length)
{
return this.datatype.replaceAll("$Length",length+"");
}
/**
* 返回浏览地址
* @return
*/
public String getBrowserurl()
{
return this.browserurl;
}
/**
* 设置数据浏览地址
* @param url
*/
public void setBrowserurl(String url)
{
this.browserurl=url;
}
/**
* 设置hibernate中的类型
* @param type
*/
public void setHibernatetype(String type)
{
this.hibernatetype=type;
}
/**
* 返回hibernate中的类型
* @return
*/
public String getHibernatetype()
{
return this.hibernatetype;
}
/**
* 设置HTML代码
* @param view
*/
public void setView(String view)
{
this.view=view;
}
/**
* 返回HTML代码
* @return
*/
public String getView()
{
return this.view;
}
/**
* @param args
*/
public static void main(String[] args) {
}
}
通过java可以看得很清楚了吧,对数据类型的描述。
明白了吧?不明白?再看一遍!
数据类型,用来描述对象属性的java数据类型与数据库数据库类型的关系。也就是说,创建一个类,类的其中一个属性是email,在java中是什么类型,在数据库中是什么类型...
以MySql数据库为例
/catframework/xtools/data/MySql.xml
<?xml version="1.0" encoding="UTF-8"?>
<types>
<type name="text" label="小文本" javatype="java.lang.String" datatype="varchar(${Length})" browserurl="" view="input" hibernatetype="string"><input type="text" max="${max}" value=${value} /></type>
<type name="textarea" label="大文本" javatype="java.lang.String" datatype="text" browserurl="" view="textarea" hibernatetype="string"><textarea></textarea></type>
<type name="integer" label="整数" javatype="java.lang.Integer" datatype="integer" browserurl="" view="inputnumber" hibernatetype="integer"></type>
<type name="long" label="长整数" javatype="java.lang.Long" datatype="BIGINT" browserurl="" view="inputnumber" hibernatetype="integer"></type>
<type name="float" label="浮点数" javatype="java.math.BigDecimal" datatype="decimal(18,${Length})" browserurl="" view="inputfloat" hibernatetype="decimal"></type>
<type name="datetime" label="日期时间" javatype="java.util.Date" datatype="datetime" browserurl="/com/cat/xframework/browser/datetime.jsp?value=${value}" view="browserdatetime" hibernatetype="timestamp"></type>
<type name="date" label="日期" javatype="java.lang.String" datatype="char(10)" browserurl="/com/cat/xframework/browser/date.jsp?value=${value}" view="browserdate" hibernatetype="string"></type>
<type name="time" label="时间" javatype="java.lang.String" datatype="char(8)" browserurl="/com/cat/xframework/browser/time.jsp?value=${value}" view="browsertime" hibernatetype="string"></type>
<type name="spojo" label="选择单实体" javatype="java.lang.String" datatype="varchar(${Length})" browserurl="/com/cat/xframework/browser/pojo.jsp?value=${value}" view="selectpojo" hibernatetype="integer"></type>
<type name="image" label="单图片" javatype="java.lang.String" datatype="varchar(${Length})" browserurl="/com/cat/xframework/browser/pojo.jsp?value=${value}" view="selectpojo" hibernatetype="integer"></type>
<type name="pojo" label="单实体" javatype="java.lang.String" datatype="varchar(${Length})" browserurl="/com/cat/xframework/browser/pojo.jsp?value=${value}" view="browserpojo" hibernatetype="integer"></type>
<type name="xpojo" label="多实体" javatype="java.lang.String" datatype="text" browserurl="/com/cat/xframework/browser/xpojo.jsp?value=${value}" view="xbrowserpojo" hibernatetype="string"></type>
<type name="mobile" label="手机号" javatype="java.lang.String" datatype="varchar(${Length})" browserurl="" view="input" hibernatetype="string"></type>
<type name="phone" label="电话" javatype="java.lang.String" datatype="varchar(${Length})" browserurl="" view="input" hibernatetype="string"></type>
<type name="email" label="邮件" javatype="java.lang.String" datatype="varchar(${Length})" browserurl="" view="inputemail" hibernatetype="string"></type>
<type name="url" label="网址" javatype="java.lang.String" datatype="varchar(${Length})" browserurl="" view="inputemail" hibernatetype="string"></type>
<type name="selectstring" label="选择文本" javatype="java.lang.String" datatype="varchar(${Length})" browserurl="" view="selecstring" hibernatetype="string"></type>
<type name="selectinteger" label="选择整数" javatype="java.lang.Integer" datatype="integer" browserurl="" view="selectnumber" hibernatetype="integer"></type>
<type name="selectfloat" label="选择浮点数" javatype="java.math.BigDecimal" datatype="decimal" browserurl="" view="selectfloat" hibernatetype="decimal"></type>
<type name="browser" label="单选浏览" javatype="java.lang.Integer" datatype="integer" browserurl="" view="browser" hibernatetype="integer"></type>
<type name="multibrowser" label="多选浏览" javatype="java.lang.String" datatype="text" browserurl="" view="browser" hibernatetype="string"></type>
<type name="browser" label="单选浏览" javatype="java.lang.Integer" datatype="integer" browserurl="" view="browser" hibernatetype="integer"></type>
<type name="multibrowser" label="多选浏览" javatype="java.lang.String" datatype="text" browserurl="" view="browser" hibernatetype="string"></type>
<type name="identity" label="自增ID" javatype="java.lang.Long" datatype="BIGINT NOT NULL AUTO_INCREMENT" browserurl="" view="inputnumber" hibernatetype="integer"><input type="text" max="${max}" value=${value} /></type>
<createtable label="创建表SQL模板">
CREATE TABLE ${tablename} (
${id} ${columtype} NOT NULL ,
${label} varchar(500),
PRIMARY KEY(${id})
)
TYPE = InnoDB DEFAULT CHARSET=utf8;
</createtable>
<createtablebyextends label="创建表SQL模板">
CREATE TABLE ${tablename} (
${id} ${columtype} NOT NULL ,
PRIMARY KEY(${id}),
CONSTRAINT FK_${tablename}_${extends} FOREIGN KEY FK_${tablename}_${extends} (${id})
REFERENCES ${extends}(${id})
ON DELETE RESTRICT
ON UPDATE RESTRICT
)
TYPE = InnoDB DEFAULT CHARSET=utf8;
</createtablebyextends>
<addcolum label="加入列SQL模板">ALTER TABLE ${tablename} add ${columname} ${columtype}</addcolum>
<modifycolum label="修改列SQL模板">ALTER TABLE ${tablename} MODIFY COLUMN ${columname} ${columtype}</modifycolum>
<dropcolum label="删除列SQL模板">ALTER TABLE ${tablename} DROP COLUMN ${columname}</dropcolum>
<droptable label="删除表SQL模板">DROP TABLE ${tablename}</droptable>
<dialect>com.cat.xtools.data.MySqlDialect</dialect>
<connectionmanager>com.cat.xtools.conn.CatConnectionManager</connectionmanager>
<!--
Oracle org.hibernate.dialect.OracleDialect
MySQL org.hibernate.dialect.MySQLDialect
MsSQL com.cat.xtools.data.MsSqlDialect
其它数据库未测
-->
</types>
简单介绍一下:types->type:小文本,在java中的类型是String,在hibernate中的类型是string,在数据库中的类型是varchar,在html页面上就是input.啊!为什么还要描述html信息?后面会讲到:)
对,就这样描述。
我们再来看一下,为了方便我们动态的创建数据库表,数据实现映射,动态的修改数据库的表,我们定义了不同的创建方法,这里不再详述
dialect是SQL查询解析,我无耻了一下,这里照搬了hibernate,但是MsSql没有照搬,因为MsSql有特殊的地方,作为商业机密,在这里不讲了。
我们再来看一下com.cat.xtools.Type.java
package com.cat.xtools;
/**
* 数据类型<br>
* <p>
* 修改日期:2006-1-25
* <p>
* 修改说明:
* <p>
* 版权所有:Copyright 2006 软件有限公司, Inc. All rights reserved.
*
* @version 1.0
* @author 侯正刚
* @since 1.0
*/
public class Type extends SysEntity{
private String javatype=null;
private String datatype=null;
private String browserurl=null;
private String hibernatetype=null;
private String view=null;
public Type() {
super();
}
/**
* 设置JAVA类型
* @param javatype
*/
public void setJavatype(String javatype) {
this.javatype=javatype;
}
/**
* 返回JAVA类型
* @return
*/
public String getJavatype() {
return this.javatype;
}
/**
* 设置数据库类型
* @param type
*/
public void setDatatype(String type) {
this.datatype=type;
}
/**
* 返回数据库类型
* @return
*/
public String getDatatype() {
return this.datatype;
}
/**
* 返回数据库类型描述串
* @return
*/
public String getTypestr(Integer length)
{
return this.datatype.replaceAll("$Length",length+"");
}
/**
* 返回浏览地址
* @return
*/
public String getBrowserurl()
{
return this.browserurl;
}
/**
* 设置数据浏览地址
* @param url
*/
public void setBrowserurl(String url)
{
this.browserurl=url;
}
/**
* 设置hibernate中的类型
* @param type
*/
public void setHibernatetype(String type)
{
this.hibernatetype=type;
}
/**
* 返回hibernate中的类型
* @return
*/
public String getHibernatetype()
{
return this.hibernatetype;
}
/**
* 设置HTML代码
* @param view
*/
public void setView(String view)
{
this.view=view;
}
/**
* 返回HTML代码
* @return
*/
public String getView()
{
return this.view;
}
/**
* @param args
*/
public static void main(String[] args) {
}
}
通过java可以看得很清楚了吧,对数据类型的描述。
明白了吧?不明白?再看一遍!
相关文章推荐
- [构建自己的持久层]三、Type数据类型描述
- 借用implicit创建我们自己的布尔数据类型-create MyBool data type by implicit
- boost在自己主动确定数据类型(BOOST_TYPEOF和BOOST_AUTO)使用
- [构建自己的持久层]四、Property对象属性描述
- [构建自己的持久层]五、Entity对象描述
- mybatis常用jdbcType数据类型
- SQL_Server_2005_数据类型转换函数(描述及实例)
- JQuery DataTables 列自己定义数据类型排序
- mybatis常用jdbcType数据类型
- .NET 中,编译器直接支持的数据类型称为基元类型(primitive type).基元类型和.NET框架类型(FCL)中的类型有直接的映射关系.
- jQuery源码分析之数据类型判断方法——$.type()
- .NET 数据类型之指针类型(type*)
- 一张好图描述内存数据类型
- oracle type 数据类型
- 如何在EA(Enterprise Architect)中自定义数据类型(Data Type)---转
- mybatis常用jdbcType数据类型
- mybatis 插入oracle xmltype类型的数据内容超过4000报错
- c语言==测量各种数据类型的长度以及typedf关键字对数据类型的作用
- nodejs之mongoose数据类型Schema.type
- MongoDB数据库的数据类型和$type操作符