-
2020-06-12 16:09:49
分享一个在线(SQL → JavaBean , JaveBean → SQL ) 网站:
更多相关内容 -
Java代码实体类生成SQL语句(Java实体类转数据库)
2021-07-19 17:43:04有的时候把数据库删了,如果照着实体类重新创建数据库的话比较麻烦,可以使用这个工具,把代码复制到项目里面设置一下即可把Java代码中的实体类转换为SQL语句输出为一个文件,打开执行命令即可。 代码如下: ...有的时候把
数据库
删了,如果照着实体类
重新创建数据库
的话比较麻烦,可以使用这个工具,把代码复制到项目里面设置一下即可把Java代码
中的实体类
转换为SQL语句
输出为一个文件
,打开执行命令即可。下载:https://download.csdn.net/download/weixin_44893902/20367422
代码如下:
package Main; import javax.xml.bind.annotation.XmlElement; import java.io.*; import java.lang.annotation.Annotation; import java.lang.reflect.Field; public class GenerateSqlFromEntityUtil { public static void main(String[] a) { // 实体类的位置 Class klass = cn.ac.azure.model.User.class; // 生成的sql语句的位置 String outputPath = "D:/outSql/User.txt"; generateTableSql(klass, outputPath, null); System.out.println("生成结束"); } public static void writeFile(String content, String outputPath) { File file = new File(outputPath); System.out.println("文件路径: " + file.getAbsolutePath()); // 输出文件的路径 if (!file.getParentFile().exists()) { file.getParentFile().mkdirs(); } FileOutputStream fos = null; OutputStreamWriter osw = null; BufferedWriter out = null; try { // 如果文件存在,就删除 if (file.exists()) { file.delete(); } file.createNewFile(); fos = new FileOutputStream(file, true); osw = new OutputStreamWriter(fos); out = new BufferedWriter(osw); out.write(content); // 清空缓冲流,把缓冲流里的文本数据写入到目标文件里 out.flush(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { fos.close(); } catch (IOException e) { e.printStackTrace(); } try { osw.close(); } catch (IOException e) { e.printStackTrace(); } try { out.close(); } catch (IOException e) { e.printStackTrace(); } } } public static void generateTableSql(Class obj, String outputPath, String tableName) { // tableName 如果是 null,就用类名做表名 if (tableName == null || tableName.equals("")) { tableName = obj.getName(); tableName = tableName.substring(tableName.lastIndexOf(".") + 1); } // 表名用大写字母 tableName = tableName.toUpperCase(); Field[] fields = obj.getDeclaredFields(); Object param; String column; StringBuilder sb = new StringBuilder(); sb.append("drop table if exists ").append(tableName).append(";\r\n"); sb.append("\r\n"); sb.append("create table ").append(tableName).append("(\r\n"); System.out.println(tableName); boolean firstId = true; for (int i = 0; i < fields.length; i++) { Field f = fields[i]; column = f.getName(); System.out.println(column + ", " + f.getType().getSimpleName()); param = f.getType(); sb.append(column); // 一般第一个是主键 if (param instanceof Integer) { sb.append(" INTEGER "); } else { // 注意:根据需要,自行修改 varchar 的长度。这里设定为长度等于 50 int length = 50; sb.append(" VARCHAR(" + length + ")"); } if (firstId == true) { sb.append(" PRIMARY KEY "); firstId = false; } // 获取字段中包含 fieldMeta 的注解 // 获取属性的所有注释 Annotation[] allAnnotations = f.getAnnotations(); XmlElement xmlElement = null; Class annotationType = null; for (Annotation an : allAnnotations) { sb.append(" COMMIT '"); xmlElement = (XmlElement) an; annotationType = an.annotationType(); param = ((XmlElement) an).name(); System.out.println("属性 " + f.getName() + " ----- 的注释类型有: " + param); sb.append(param).append("'"); } if (i != fields.length - 1) { // 最后一个属性后面不加逗号 sb.append(", "); } sb.append("\n"); } String sql = sb.toString(); sql = sb.substring(0, sql.length() - 1) + "\n) " + "ENGINE = INNODB DEFAULT CHARSET = utf8;"; writeFile(sql, outputPath); } }
-
java中java.util.Date和java.sql.Date之间的转换
2019-09-03 09:21:06我们来看下java.sql.Date的源码 package java.sql; import java.time.Instant; import java.time.LocalDate; public class Date extends java.util.Date {} 从以上源码可以看出,sql.Date是util.Date...1、util.Date和sql.Date之间的关系
我们来看下java.sql.Date的源码
package java.sql; import java.time.Instant; import java.time.LocalDate; public class Date extends java.util.Date {}
从以上源码可以看出,sql.Date是util.Date的子类
2、util.Date的构造方法
以下是java.util.Date的方法部分方法图示:
可以看到,主要有两个构造方法推荐使用,添加了
标记的表示这些方法已经被废弃,不推荐使用。
所以对于,java.util.Date 常用的构造方法有:
Date()
Date(long) 方法参数为一个长整型的毫秒值
其中,java.util.Date中还有一个重要的方法:就是获取当前时间的毫秒值
public class Date implements java.io.Serializable, Cloneable, Comparable<Date> { /** * Returns the number of milliseconds since January 1, 1970, 00:00:00 GMT * represented by this <tt>Date</tt> object. * * @return the number of milliseconds since January 1, 1970, 00:00:00 GMT * represented by this date. */ public long getTime() { return getTimeImpl(); } }
从以上源码可以看到,该方法是public的,所以,它的子类sql.Date也是可以继承该方法的。
3、sql.Date的构造方法
以下是java.sql.Date的方法部分方法图示:
可以看到,sql.Date主要有一个构造方法:Date(long)
4、util.Date和sql.Date之间的转换
// 1) 创建java.util.Date的对象 java.util.Date utilDate = new java.util.Date(); // 2)将java.util.Date转成java.sql.Date long datems = utilDate.getTime(); java.sql.Date sqlDate = new java.sql.Date(datems); // 3)将 java.sql.Date 转成 java.util.Date long datems2 = sqlDate.getTime(); java.util.Date utilDate = new java.util.Date(datems2);
此文希望可以帮助到大家。如有错误,请指教。
如果大家还有其他的情况或者好的解决方法,也望指教,感谢阅读。
-
Java:String转换为java.sql.Timestamp
2020-02-07 23:33:24Java:String转换为java.sql.Timestamp 1.JPA映射Mysql的timestamp类型应使用java.sql.Timestamp mysql中的timestamp类型最大长度为6,如果JPA设置的长度大于6,程序执行时控 制台输出有建表提示,但是在数据库中表...Java:String转换为java.sql.Timestamp
1.JPA映射Mysql的timestamp类型应使用java.sql.Timestamp
mysql中的timestamp类型最大长度为6,如果JPA设置的长度大于6,程序执行时控制台输出有建表提示,但是在数据库中表并没有创建成功,调试状态下能看到报错的信息。
实体类中Timestamp属性定义如下:@Column(columnDefinition = "timestamp(6)") private Timestamp ts;
2.String类型转换为java.sql.Timestamp
首先将String转换为java.util.Date,使用unmarshal方法。如下:
public class DateAdapter extends XmlAdapter<String,Date> { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS"); @Override public Date unmarshal(String v) throws Exception { if (!v.contains(".")){ v+=".000"; } return sdf.parse(v); } @Override public String marshal(Date v) throws Exception { return sdf.format(v); }
然后再将java.util.Date转换为java.sql.Timestamp,如下:
Java.util.Date dateTime = DateAdapter.unmarshal(String v); Timestamp timestamp = new Timestamp(dateTime.getTime());
详细的JAVA中java.util.Date、java.sql.Timestamp和String之间的互相转换参考了:
https://www.cnblogs.com/zhang-yan/p/7733005.html3. java其他类型和String类型的相互转换
有时候,为了使用类的反射机制,我们把类的属性类型定义为基本封装类,如基本数据类型的int对应的封装类为Integer。
Java 八种基本类型和基本类型封装类 参考https://www.cnblogs.com/alternative/p/7520332.html
java中String类型和基本类型的转换,以及toString的用法 参考https://blog.csdn.net/Handsome2013/article/details/80700637 -
java拼接sql字符串
2022-03-12 16:50:06JAVA涉及将用户输入的字符串变量拼接到sql变量中 String sql="select * from user where username='"+user+"'and password ='"+password+"'"; 打印输出为: 解释: "select * from user where username='"是为了... -
使用Java连接SQLserver数据库
2022-01-01 23:05:09使用Java连接SQLserver数据库,使用win10、SQLServer2012、eclipse2020-6、Java1.8.0_311 -
java.sql.Date – Java SQL日期
2020-07-11 16:24:52Java SQL Date class is part of java.sql package. java.sql.Date is a sub class of java.util.Date class. Java SQL Date类是java.sql包的一部分。 java.sql.Date是java.util.Date类的子类。 Java SQL日期 ... -
java代码实现oracle sql语句转mysql sql语句
2017-06-05 10:40:10import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; -
Java如何避免sql注入详解
2022-01-12 10:41:56sql注入是web开发中最常见的一种安全漏洞。可以用它来从数据库获取敏感信息、利用数据库的特性执行添加用户、导出文件等一系列恶意操作,甚至有可能获取数据库乃至系统用户最高权限。 造成sql注入的原因: 程序没有... -
Oracle Sql语句转换成Mysql Sql语句
2013-02-17 12:06:40Oracle Sql语句转换成Mysql Sql语句java 源码,非常简单,只要给定源oracle sql语句地址,和生成目标文件地址运行即可。 -
Java中的Date类与SQL中的Date类的相互转换
2019-10-22 15:34:39java.sql包下给出三个与数据库相关的日期时间类型,分别是: Date:表示日期,只有年月日,没有时分秒。会丢失时间; Time:表示时间,只有时分秒,没有年月日。会丢失日期; Timestamp:表示时间戳,有年月日时分秒... -
java连接SQL Sever数据库(超详细!)
2021-06-05 14:12:20java编译器:eclipse sqlsever,jdk以及eclipse的安装的就不说了,可以参考其它博客 一、sqlsever的配置 1、Tcp\Ip 配置 首先,在开始搜索框中搜索 sql sever配置管理器,如下图,我们打开它(如果没有这个软件或者... -
如何在java中写sql语句
2022-04-28 15:46:32我们知道在java连接数据库之后,需要数据库的sql语句,但是在转化的过程中可能会出现各种各样的问题 那么java的字符串到底是怎样转化为SQL语句的呢 如图所示 -
java检查sql语法是否正确
2021-03-09 19:36:03因为以前作的项目 业务逻辑不能用系统定义的方案作计算 只能是让用户本身输入参数值设置比例计算规则 系统提供sql验证 在通常的项目中也不多用到这种类型的作法 以下:javaimport java.util.List;public class ... -
字符串转java.sql.date
2019-03-10 00:15:20将字符串转换为java.sql.date #记录: public static void main(String[] args) { String birthday="1997-07-21"; java.sql.Date dt=StringToDate(birthday); System.out.println(dt);... -
java通过JDBC链接SQLServer2016
2015-12-20 16:53:57java通过JDBC链接SQLServer2016,大学课程的数据库章节的学习使用的是微软的SQLServer,作为老牌数据库,提供一个使用java连接该数据库的方式 -
java.util.Date()转换成java.sql.Date()
2019-09-05 19:39:24java.util.Date()是java.sql.Date()父类,所以将子类转换成父类sql.Date()可以转换成util.Date()可以,而将父类转换成子类不形。 //getTime(),获取毫秒数 new java.sql.Date(new java.util.Date().getTime()) ... -
Java-Spark系列6-Spark SQL编程实战
2021-09-26 18:13:10文章目录一.Spark DataFrame概述1.1 创建DataFrame1.1.1 通过json文件创建DataFrame1.1.2 通过CSV文件创建DataFrame1.1.3 通过hive table创建DataFrame1.1.4 通过jdbc数据源创建DataFrame二.Spark SQL实战2.1 ... -
Java面试题超详细讲解系列之八【SQL优化篇】
2022-04-21 15:18:1252条SQL优化合集,专栏持续更新中 -
Java连接mysql数据库并执行sql语句
2020-06-22 16:25:46弄这个主要是为了方便测试单个sql的性能,尝试用java连接数据库并查询,将结果的JDBC ResultSet结果集转成List并输出。 import java.sql.*; import java.sql.DriverManager; import com.mysql.jdbc.Connection; ... -
java代码中拼接sql语句的in条件
2021-03-11 11:18:49有个sql的条件是一个list ,那么就需要使用到in ,这里把list转成了数组再用下面逻辑转换拼接即可 list.toArray() /** * 拼接IN条件值 * @param str * @return */ public static String getInCond(String ... -
关于JAVA连接到SQLserver的步骤方法,以及遇到的问题
2021-10-30 15:03:54第一步:从SQLserver官网上下载jdbc驱动程序,下载时请注意jdbc的版本与javaJDK的版本是否对应。 图中我们可以看到9.4版本的jdbc是可以同时兼容16.0、11.0 和 1.8的,此时我们就要确定我们的jdk版本号方法为:按win... -
java.sql.SQLSyntaxErrorException
2022-03-13 14:36:12java.sql.SQLSyntaxErrorException该异常为sql语句错误 Error querying database. Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; 检查检查自己写的sql语句是否拼写错误或者... -
java实现oracle和sqlserver数据库转换(包含大数据)
2016-12-18 10:32:12原文:java实现oracle和sqlserver数据库转换(包含大数据) 源代码下载地址:http://www.zuidaima.com/share/1889755593444352.htm 原文:java实现oracle和sqlserver数据库转换(包含大数据) 源代码... -
java.util.Date、java.sql.Date和java.sql.Timestamp之间的转换
2018-11-23 16:22:51在编写程序的时候有时候需要对java.util.Date、java.sql.Date和java.sql.Timestamp等日期时间类型进行转换 方法简述 将A(a)这种日期时间类型转换成B(b)这种日期时间类型 第一步:long time = a.getTime(); //... -
Java 获取SQL查询语句结果
2021-02-12 14:30:25step1:构造连接Class.forName(...Connection con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/db","root","123");step2:构造语句String sql = "select username,password from t_use... -
如何用java连接SQL数据库
2021-02-07 14:49:16个人认为,数据库查询语句并不困难,但在java连接SQL数据库时会出现一些问题,下面我将我的问题与解决方法分享给大家。 1.首先新建JAVA项目(我是用Eclipse,就不过多叙述了) 2.连接SQL数据库需要下载一个jar包 ... -
Java连接Sqlserver数据库小白包会
2020-06-01 00:29:14进入安全性,设置SQL server和windows身份验证模式。点击确定 即可。 0x03: 设置完密码之后我们需要重新启动数据库: 测试连接: 通上步操作:右键 -> 连接 -> 使用sql server身份进行验证 JAVA配置部分 ... -
Java连接sqlserver数据库详细操作
2021-04-25 16:30:46文章为Springboot链接SqlServer2012,其他的SqlServer版本基本一致 先说下我使用的框架 springboot 2.4.4 , jdk 1.8 mybatis-plus 3.3.1 1.首先需要引入框架,因现在绝大多数文章里推荐的引入sqljdbc4一般加载不下来... -
防范sql注入式攻击(Java字符串校验,高可用性)
2022-01-03 12:20:48什么是SQL注入攻击? 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台...