java 生成软件_代码自动生成工具_java版

项目结构:

这里要实现的功能是,当我们给出了bean,如:Admin,User,People等实体类后,

我想用代码自动生成我想要的代码,最后生成的效果:

也就是说为每一个bean都生成相应的Dao,DaoImpl,Service,ServiceImpl等类。

后台运行效果:

下面是列出自动生成User的相关文件:

UseDao

UserDaoImpl

UserService

UserServiceImpl

=================================================

代码部分:

=================================================

/UUUU_Web_Test/src/com/b510/base/bean/install/BeanUtils.java

1 /**

2  *

3  */

4 package com.b510.base.bean.install;

5

6 import java.io.File;

7 import java.io.FileWriter;

8 import java.text.SimpleDateFormat;

9 import java.util.Date;

10

11

12 /**

13  * @author hongten(hongtenzone@foxmail.com)

14  * @date 2013-2-24

15  */

16 @SuppressWarnings("unchecked")

17 public class BeanUtils {

18

19

20

21     //公共部分

22     private static final String RT_1 = "\r\n";

23     private static final String RT_2 = RT_1+RT_1;

24     private static final String BLANK_1 =" ";

25     private static final String BLANK_4 ="    ";

26     private static final String BLANK_8 =BLANK_4 + BLANK_4;

27

28

29

30     //注释部分

31     private static final String ANNOTATION_AUTHOR_PARAMTER = "@author ";

32     private static final String ANNOTATION_AUTHOR_NAME = "hongten(hongtenzone@foxmail.com)";

33     private static final String ANNOTATION_AUTHOR = ANNOTATION_AUTHOR_PARAMTER + ANNOTATION_AUTHOR_NAME;

34     private static final String ANNOTATION_DATE = "@date ";

35     private static final String ANNOTATION = "/**"+RT_1+BLANK_1+"*"+BLANK_1+ANNOTATION_AUTHOR +RT_1+BLANK_1+"*"+BLANK_1+ANNOTATION_DATE +getDate()+RT_1+BLANK_1+"*/"+RT_1;

36

37

38     //文件 地址

39     //private static final String BEAN_PATH = "com/b510/base/bean";

40     private static final String DAO_PATH = "com/b510/base/dao";

41     private static final String DAO_IMPL_PATH = "com/b510/base/dao/impl";

42     private static final String SERVICE_PATH = "com/b510/base/service";

43     private static final String SERVICE_IMPL_PATH = "com/b510/base/service/impl";

44

45

46

47     //包名

48     private static final String BEAN_URL = "com.b510.base.bean";

49     private static final String DAO_URL = "com.b510.base.dao";

50     private static final String DAO_IMPL_URL = "com.b510.base.dao.impl";

51     private static final String SERVICE_URL = "com.b510.base.service";

52     private static final String SERVICE_IMPL_URL = "com.b510.base.service.impl";

53

54     //基本类名称

55     private static final String BASE_DAO_NAME = DAO_URL + ".BaseDao";

56     private static final String ABSTRACT_BASE_DAO_IMPL_NAME = DAO_IMPL_URL + ".AbstractBaseDaoImpl";

57     private static final String BASE_SERVICE_NAME = SERVICE_URL + ".BaseService";

58     private static final String ABSTRACT_BASE_SERVICE_IMPL_NAME = SERVICE_IMPL_URL + ".AbstractBaseServiceImpl";

59

60

61     /**

62      * 创建bean的Dao

63      *

64      * @param c

65      * @throws Exception

66      */

67     public void createBeanDao(Class c) throws Exception {

68         String cName = c.getName();

69         String fileName = System.getProperty("user.dir") + "/src/" + DAO_PATH

70                 + "/" + getLastChar(cName) + "Dao.java";

71         File f = new File(fileName);

72         FileWriter fw = new FileWriter(f);

73         fw.write("package "+DAO_URL+";"+RT_2+ANNOTATION+"public interface " +

74                 getLastChar(cName) + "Dao extends "+BASE_DAO_NAME+" {"+RT_2+"}");

75         fw.flush();

76         fw.close();

77         showInfo(fileName);

78     }

79

80     /**

81      * 创建bean的Dao的实现类

82      * @param c

83      * @throws Exception

84      */

85     public void createBeanDaoImpl(Class c) throws Exception{

86         String cName = c.getName();

87         String fileName = System.getProperty("user.dir") + "/src/" + DAO_IMPL_PATH

88                 + "/" + getLastChar(cName) + "DaoImpl.java";

89         File f = new File(fileName);

90         FileWriter fw = new FileWriter(f);

91         fw.write("package "+DAO_IMPL_URL+";"+RT_2+ANNOTATION+"public class " +

92                 getLastChar(cName) + "DaoImpl extends "+ABSTRACT_BASE_DAO_IMPL_NAME+"

93                 cName + "> implements "+DAO_URL+"."+getLastChar(cName)+"Dao{"+RT_2+"}");

94         fw.flush();

95         fw.close();

96         showInfo(fileName);

97     }

98

99

100

101     /**

102      * 创建bean的service

103      * @param c

104      * @throws Exception

105      */

106     public void createBeanService(Class c) throws Exception{

107         String cName = c.getName();

108         String fileName = System.getProperty("user.dir") + "/src/" + SERVICE_PATH

109                 + "/" + getLastChar(cName) + "Service.java";

110         File f = new File(fileName);

111         FileWriter fw = new FileWriter(f);

112         fw.write("package "+SERVICE_URL+";"+RT_2+ANNOTATION+"public interface " +

113                 getLastChar(cName) + "Service extends "+BASE_SERVICE_NAME+"{"+RT_2+"}");

114         fw.flush();

115         fw.close();

116         showInfo(fileName);

117     }

118

119     /**

120      * 创建bean的service的实现类

121      * @param c

122      * @throws Exception

123      */

124     public void createBeanServiceImpl(Class c) throws Exception{

125         String cName = c.getName();

126         String fileName = System.getProperty("user.dir") + "/src/" + SERVICE_IMPL_PATH

127                 + "/" +getLastChar(cName)+"ServiceImpl.java";

128         File f = new File(fileName);

129         FileWriter fw = new FileWriter(f);

130         fw.write("package "+SERVICE_IMPL_URL+";"+RT_2+ANNOTATION+"public class "

131                 + getLastChar(cName) + "ServiceImpl extends "+ABSTRACT_BASE_SERVICE_IMPL_NAME+"

132                 + "> implements "+SERVICE_URL+"."+getLastChar(cName)+"Service{"+RT_2+BLANK_4

133                 +"private "+DAO_URL+"."+getLastChar(cName)+"Dao "+getLowercaseChar(getLastChar(cName))

134                 +"Dao;"+RT_2+BLANK_4+"public void set"+getLastChar(cName)+"Dao("+DAO_URL+"."+getLastChar(cName)+"Dao "

135                 +getLowercaseChar(getLastChar(cName))+"Dao){"+RT_1+BLANK_8+"this."+getLowercaseChar(getLastChar(cName))+"Dao = "

136                 +getLowercaseChar(getLastChar(cName))+"Dao;"+RT_1+BLANK_4+"}"+RT_2+BLANK_4+"@Override"+RT_1+BLANK_4

137                 +"public "+DAO_URL+"."+"BaseDao getBaseDao(){"+RT_1+BLANK_8

138                 +"return "+getLowercaseChar(getLastChar(cName))+"Dao;"+RT_1+BLANK_4+"}"+RT_2+"}");

139         fw.flush();

140         fw.close();

141         showInfo(fileName);

142     }

143

144

145     /**

146      * 获取路径的最后面字符串

147      * 如:

148      *     str = "com.b510.base.bean.User"

149      *     return "User";

150      * @param str

151      * @return

152      */

153     public String getLastChar(String str) {

154         if ((str != null) && (str.length() > 0)) {

155             int dot = str.lastIndexOf('.');

156             if ((dot > -1) && (dot < (str.length() - 1))) {

157                 return str.substring(dot + 1);

158             }

159         }

160         return str;

161     }

162

163     /**

164      * 把第一个字母变为小写

165      * 如:

166      *     str = "UserDao";

167      *     return "userDao";

168      * @param str

169      * @return

170      */

171     public String getLowercaseChar(String str){

172         return str.substring(0,1).toLowerCase()+str.substring(1);

173     }

174

175     /**

176      * 显示信息

177      * @param info

178      */

179     public void showInfo(String info){

180         System.out.println("创建文件:"+ info+ "成功!");

181     }

182

183     /**

184      * 获取系统时间

185      * @return

186      */

187     public static String getDate(){

188         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");

189         return simpleDateFormat.format(new Date());

190     }

191 }/UUUU_Web_Test/src/com/b510/base/bean/install/BeanUtilTest.java

1 /**

2  *

3  */

4 package com.b510.base.bean.install;

5

6 import com.b510.base.bean.Admin;

7 import com.b510.base.bean.People;

8 import com.b510.base.bean.User;

9

10 /**

11  * @author hongten(hongtenzone@foxmail.com)

12  * @date 2013-2-24

13  */

14 public class BeanUtilTest {

15

16     public static void main(String[] args) throws Exception{

17         BeanUtilTest beanUtilTest = new BeanUtilTest();

18         BeanUtils beanUtils = new BeanUtils();

19         beanUtilTest.beanTool(beanUtils, User.class);

20         beanUtilTest.beanTool(beanUtils, People.class);

21         beanUtilTest.beanTool(beanUtils, Admin.class);

22     }

23

24     /**

25      * 根据bean生成相应的文件

26      * @param beanUtils

27      * @param c

28      * @throws Exception

29      */

30     @SuppressWarnings("unchecked")

31     public void beanTool(BeanUtils beanUtils ,Class c)throws Exception{

32         beanUtils.createBeanDao(c);

33         beanUtils.createBeanDaoImpl(c);

34         beanUtils.createBeanService(c);

35         beanUtils.createBeanServiceImpl(c);

36     }

37 }

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值