hibernate annoation (四 lob)
当前位置:以往代写 > JAVA 教程 >hibernate annoation (四 lob)
2019-06-14

hibernate annoation (四 lob)

hibernate annoation (四 lob)

副标题#e#

hiberante sql映射对应

Java数据范例 Hibernate数据范例 尺度SQL数据范例

(PS:对付差异的DB大概有所差别)

byte、java.lang.Byte byte TINYINT
short、java.lang.Short short SMALLINT
int、java.lang.Integer integer INGEGER
long、java.lang.Long long BIGINT
float、java.lang.Float float FLOAT
double、java.lang.Double double DOUBLE
java.math.BigDecimal big_decimal NUMERIC
char、java.lang.Character character CHAR(1)
boolean、java.lang.Boolean boolean BIT
java.lang.String string VARCHAR
boolean、java.lang.Boolean yes_no CHAR(1)(‘Y’或’N’)
boolean、java.lang.Boolean true_false CHAR(1)(‘Y’或’N’)
java.util.Date、java.sql.Date date DATE
java.util.Date、java.sql.Time time TIME
java.util.Date、java.sql.Timestamp timestamp TIMESTAMP
java.util.Calendar calendar TIMESTAMP
java.util.Calendar calendar_date DATE
byte[] binary VARBINARY、BLOB
java.lang.String text CLOB
java.io.Serializable serializable VARBINARY、BLOB
java.sql.Clob clob CLOB
java.sql.Blob blob BLOB
java.lang.Class class VARCHAR
java.util.Locale locale VARCHAR
java.util.TimeZone timezone VARCHAR
java.util.Currency currency VARCHAR

一,针对大字段也就是 colb,blob

在hibernate annoation内里可以如下利用:

 @Lob 
 public String getC() {
 return c;
 } 
 @Lob 
 public byte[] getB() {
 return b;
 }


#p#副标题#e#

java.sql.Clob, Character[], char[] and java.lang.String 会被映射为 Clob. java.sql.Blob, Byte[], byte[] and serializable 会被映射为Blob.

虽然我们可以利用正对差异的数据库利用数据库原始范例譬喻 mysql:利用@Column   (columnDefinition="longtext")(不推荐利用这种 防备有些数据库的对clob和blob的不支持)

对blob也可以不举办任何注释可是在利用的时候会有预想不到的错误 譬喻 mysql 他会映射为TINYBLOB 其容量为 256 字节  假如加上lob注释 则映射为LONGBLOB 容量为4g,可想而知 相见我的好处篇文章:

http://ericjoe.javaeye.com/admin/blogs/443623

则可以映射为数据库对应的clob内省可能blob内型 譬喻(mysql:b longblob, c longtext);

存取的时候clob就可以凭据string范例来处理惩罚 而blob可以以流的形式来处理惩罚 譬喻:

存的时候:

BufferedInputStream in = new BufferedInputStream(new FileInputStream(
  new File("d:\\19204.jpg")));
 byte[] b = new byte[in.available()];
 in.read(b);
bean.setB(b);
in.close();

读取:

#p#分页标题#e#

Session session = HibernateSessionFactory.getSession();
 User user = (User)session.get(User.class, 1);
 byte[] b = user.getB();
 BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(
  new File("d:\\192041.jpg")));
 out.write(b);
 out.close();

    关键字:

在线提交作业