通过现有实体类,如何自动生成映射文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过现有实体类,如何自动生成映射文件相关的知识,希望对你有一定的参考价值。
我现在有实体类,要生成数据库的配置文件,再通过实体类和生成的这个配置文件生成数据库.
谁有这方面的经验,尽量具体点.
同样,为每种数据类型设置一个默认值、默认长度等信息,最后按照相应格式生成XML配置文件,当然,XML文件只是一种载体,你也可以用别的数据组织方式,如:JSON。
生成完毕后,就是创建数据表了,其实创建数据表也是操作JDBC,JAVA程序的作用就是根据XML文件组合建表SQL语句。至于怎么通过JDBC建表,你去网上找资料看看就知道了。
接下来就是反转了,通过数据表创建XML文件然后创建JAVA类文件,首先,是查询出某库的所有表名,然后,通过表名查询该表的所有字段、以及长度等信息,然后通过这些信息组合XML文件(多个文件),最后,逐一解析XML文件得到信息(也可以直接通过数据库查询到的信息),组合实体类文件的字符串,通过IO输出到文件.java,接着动态编译。
over 参考技术A hibernate都是通过实体BEAN和XML文件来生成数据表的。XML诠释了BEAN属性和表字段的对应关系
没有见过根据BEAN来生成XMl的软件哈 参考技术B hibernate?
SpringBoot配置文件自动映射到属性和实体类
一、配置文件加载
1、Controller中配置并指向文件
@Controller @PropertySource(value = { "application.properties" })//指定配置文件
2、在变量上打注解并指明配置文件中的key
@Value("${web.upload.filepath}")//获取配置文件中的配置参数 private String filePath;
二、实体类配置文件
1、添加@Component//文件扫描注解
2、使用@PropertySource({"classpath:jdbc.properties"}) //指定配置文件的位置
3、使用@ConfigurationProperties 或者 @ConfigurationProperties(prefix="jdbc")//前缀,设置相关的属性;
4、使用@Autowired//通过IOC对象自动注入
示例-新建实体类如下:
package cn.xiaobing.demo.pojo; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.PropertySource; import org.springframework.stereotype.Component; @Component//文件扫描 @PropertySource({"classpath:jdbc.properties"}) //@ConfigurationProperties @ConfigurationProperties(prefix="jdbc")//前缀 public class JDBCSettings { //@Value("${jdbc.driver}") //如果属性命名和配置文件中配置name一致就不需要声明@Value("${jdbc.driver}") private String driver; private String url; private String username; private String password; public String getDriver() { return driver; } public void setDriver(String driver) { this.driver = driver; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public JDBCSettings(String driver, String url, String username, String password) { super(); this.driver = driver; this.url = url; this.username = username; this.password = password; } public JDBCSettings() { super(); } @Override public String toString() { return "JDBCSetting [driver=" + driver + ", url=" + url + ", username=" + username + ", password=" + password + "]"; } }
jdbc.properties文件配置信息
jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/future?useUnicode=true&characterEncoding=utf-8 jdbc.username=Administrator1 jdbc.password=123456
Controller编码
@RestController public class GetController { @Autowired//通过IOC对象自动注入进来 private JDBCSettings jdbcSettings; @GetMapping("/v1/getJdbcProperties") public Object getJDBCProperties() { return jdbcSettings; } }
启动项目访问:
三、不足之处,后续补充。。。
以上是关于通过现有实体类,如何自动生成映射文件的主要内容,如果未能解决你的问题,请参考以下文章
eclipse 通过Hibernate 逆向生成实体类和映射文件