你这个需求特殊,给你个思路。
先通过数据库元数据对象DataBaseMetaData和ResultSetMetaData得到表的元数据的信息。
生成类,可以用反射的方式和修改字节码的方式。修改字节码方式可以使用开源的CGLib这个库,Hibernate就是使用的这个库。这个生成是在内存的。
估计,将java代码写成java文件,再调用编译器编译形成class也能完成需求。
就是不知道哪个适合你。效率上,肯定是上面两种好,最后一种差一些。
MyBatis中,可以使用Generator自动生成代码,包括DAO层、 MODEL层 、MAPPING SQL映射文件。
第一步:下载MyBatis的Generator工具
htt p:/ /mybati sgith ubi o/generator/
第二步:配置自动生成代码所需的XML配置文件,例如(generatorxml)
将这个文件保存至你下载的mybatis-generator-core-132文件夹下
第三步:进入XML配置文件(generatorxml)所在的的目录并执行命令:
Dos代码
java -jar E:\mybatis-generator-core-132\lib\mybatis-generator-core-132j ar -configfile generatorxml -overwrite
mybatis generator eclipse插件的安装
打开eclipse,点击Help>Software Update
选择 "Available Software" 标签,点击 "Add Site" 按钮
输入以下信息:
Location:htt p:/ /mybatisgoogleco dec om/svn/sub-projects/gen erator/trunk/eclipse/UpdateSite/
点击ok,自动进入"mybatis generator Feature"
点击“install”按钮进行安装。。。。mybatis generator 插件安装完成
配置Mybatis Generator不要生成Example类
Mybatis Generator默认设置会生成一大堆罗哩罗嗦的Example类,主要是用各种不同的条件来 *** 作数据库,大部分是用不到的,用到的时候手工修改mapper和接口文件就行了。
<</code>table
schema="general"
tableName="tb_table_name"
domainObjectName="EntityName"
enableCountByExample="false"
enableUpdateByExample="false"
enableDeleteByExample="false"
enableSelectByExample="false"
selectByExampleQueryId="false"
>
name="useActualColumnNames"
value="true"/>
</</code>table>
这样生成的mapper和dao接口就清爽多了。
你可以从这个角度来探讨:先建表还是先建实体类
你如何用实体框架,象HIBERNATE这样的ORM的时候,
首先考虑的肯定是BEAN实体类,也就是面向对象编程,面向对象 *** 作数据库了
但是考虑到关联关系的时候,情况就复杂些了
比如一对多的情况:
拿博客系统来说吧
一篇文章BLOG,肯定有一个BLOGID,这个BLOGID肯定是唯一的
BLOG(BLOGID,USERID,TITLE,CONTENT,MSGS)(博客ID,用户ID,标题,内容,评论)
现在有人对这个BLOG进行评论
评论MSG(MSGID,USERID,BLOG,MESSAGE)(评论ID,用户ID,博客,评论内容)
这有两个实体类,BLOG和MSG是一对多双向关联关系
也就是说,根据这个BLOG可以知道这个BLOG下面所有的评论
而某个MSG,肯定是对某一个BLOG进行评论的
BLOG里面保存着评论的信息MSGS,MSGS肯定是个集合
其中MSG里面保存着BLOG的信息
实体类大概是上面那样
下面就要建立关联关系的映射了
一对多的关联关系的映射,主要体现在多的这一端,而多的这一端在数据库中体现就是外键
也就是说,BLOG类中的MSGS是帖MSG来决定的,而数据库中,BLOG表肯定是没有MSG的任何字段信息
但是MSG中肯定有BLOG实体类BLOGID
有时候多个表也可以设计成一个BEAN看情况设计喽
建立楼主去研究下HIBERNATE里面的关联关系及其映射,
看实体类和数据库中表的详细情况
以上就是关于正在编辑java文件。myeclipse滚动条不见了:不能滑动鼠标。。经常出现,怎么办全部的内容,包括:正在编辑java文件。myeclipse滚动条不见了:不能滑动鼠标。。经常出现,怎么办、通过现有实体类,如何自动生成映射文件、如何根据数据库的字段动态创建实体类 用java啊~ 最好给点源码和实例等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)