首页编程java编程bigint对应java的什么类型 谁能帮我讲讲java中的BigInt和BigInteger数据类型

bigint对应java的什么类型 谁能帮我讲讲java中的BigInt和BigInteger数据类型

编程之家2023-10-11102次浏览

大家好,今天小编来为大家解答以下的问题,关于bigint对应java的什么类型,谁能帮我讲讲java中的BigInt和BigInteger数据类型这个很多人还不知道,现在让我们一起来看看吧!

bigint对应java的什么类型 谁能帮我讲讲java中的BigInt和BigInteger数据类型

谁能帮我讲讲java中的BigInt和BigInteger数据类型

BigInteger

是java.math包里的

楼主可以具体查看一下API

bigint对应java的什么类型 谁能帮我讲讲java中的BigInt和BigInteger数据类型

不可变的任意精度的整数。所有操作中,都以二进制补码形式表示 BigInteger(如 Java的基本整数类型)。BigInteger提供所有 Java的基本整数操作符的对应物,并提供 java.lang.Math的所有相关方法。另外,BigInteger还提供以下运算:模算术、GCD计算、质数测试、素数生成、位操作以及一些其他操作。

java中没有BigInt

Sql中有BIGINT

bigint对应java的什么类型 谁能帮我讲讲java中的BigInt和BigInteger数据类型

SQL中的BIGINT使用带符号的BIGINT进行所有算法,因此除了位函数,不应使用大于9223372036854775807(63位)的无符号的大整数

所以java中biginteger和sql中bigint最大的区别就是,前者可以无限大,后者也是有限的

...number(8,2)对应hibernate中的什么类型,java中的什么类型

1.常规Hibernate映射

integer或者 int

int或者 java.lang.Integer

INTEGER

4字节

long

long Long

BIGINT

8字节

short

short Short

SMALLINT

2字节

byte

byte Byte

TINYINT

1字节

float

float Float

FLOAT

4字节

double

double Double

DOUBLE

8字节

big_decimal

java.math.BigDecimal

NUMERIC

NUMERIC(8,2)8位

character

char Character String

CHAR(1)

定长字符

string

String

VARCHAR

变长字符串

boolean

boolean Boolean

BIT

布尔类型

yes_no

boolean Boolean

CHAR(1)(Y-N)

布尔类型

true_false

boolean Boolean

CHAR(1)(T-F)

布尔类型

2、 Java时间和日期类型的 Hibernate映射

映射类型

Java类型

标准 SQL类型

描述

date

util.Date或者 sql.Date

DATE

YYYY-MM-DD

time

Date Time

TIME

HH:MM:SS

timestamp

Date Timestamp

TIMESTAMP

YYYYMMDDHHMMSS

calendar

calendar

TIMESTAMP

YYYYMMDDHHMMSS

calendar_date

calendar

DATE

YYYY-MM-DD

3、 Java大对象类型的 Hibernate映射类型

映射类型

Java类型

标准 SQL类型

MySQL类型

Oracle类型

binary

byte[]

VARBINARY(或 BLOB)

BLOB

BLOB

text

String

CLOB

TEXT

CLOB

serializable

Serializable接口任意实现类

VARBINARY(或 BLOB)

BLOB

BLOB

clob

java.sql.Clob

CLOB

TEXT

CLOB

blob

java.sql.Blob

BLOB

BLOB

BLOB

在程序中通过 Hibernate来保存 java.sql.Clob或者 java.sql.Blob实例时,必须包含两个步骤:

1.在一个数据库事务中先保存一个空的 Blob或 Clob实例。

2.接着锁定这条记录,更新上面保存的 Blob或 Clob实例,把二进制数据或文本数据写到 Blob或 Clob实例中

mybatis bigdecimal 对应什么类型

在实际项目开发过程中,数据库dao层的增删改查操作,都要接收到前端页面传递过来的参数,然后再进行操作,那么在使用Mybatis数据库框架进行开发时,底层dao的参数传递怎么处理呢?

Mybatis传递参数有以下五种方式可以实现,下面以员工操作为例,看看具体的操作方式。

第一种方式使用顺序传递参数

EmployeeMapper.java文件:

EmployeeMapper.xml文件:

注意:xml里面的param1,param2的数字代表方法传入参数的顺序,必须严格按照参数顺序来引用,缺点呢不够灵活,而且特别参数个数多的时候也不是很方便。

第二种方式使用Mybatis自带的注解@Param传递参数

这种方式来传递参数,可以在xml文件中按照参数名称去引用。

EmployeeMapper.java文件:

EmployeeMapper.xml文件:

注意:在mapper.xml文件中sql语句参数变量名称要和@Param注解中定义的参数名称一样。

第三种方式使用Map集合传递参数

实际开发中当前端页面传递多个参数时,使用Map集合操作是一种推荐的方式。

EmployeeMapper.java文件:

EmployeeMapper.xml文件:

在上面的例子中可以看到使用map集合来传递多个参数进行查询,可以直接在sql语句中使用参数名称进行引用。

第四种方式使用JavaBean实体类传递参数

使用JavaBean实体类的方式来传递多个参数,使用时parameterType参数类型指定为对应的JavaBean实体类类型,sql语句中使用参数名称进行引用。

EmployeeMapper.java文件:

EmployeeMapper.xml文件:

第五种方式传递集合类型参数List集合

在一些复杂的操作中,比如下面的批量添加操作,传统的参数传递已无法满足需求,这时候就要用到List集合类型的参数传递,具体使用如下:

EmployeeMapper.java文件:

EmployeeMapper.xml文件:

如何通过java反射将数据库表生成实体类

首先有几点声明:

1、代码是在别人的基础进行改写的;

2、大家有什么改进的意见可以告诉我,也可以自己改好共享给其他人;

3、刚刚毕业,水平有限,肯定有许多不足之处;

4、希望刚刚学习java的同学能有所启发。

//这个是做转换的类,里面的DB只是封装了数据库的连接,大家可以用自己的,随意

package com.tt.util.gen.entity.tool;

import java.io.File;

import java.io.FileWriter;

import java.io.IOException;

import java.io.InputStream;

import java.io.PrintWriter;

import java.sql.Connection;

import java.sql.DatabaseMetaData;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.ResultSetMetaData;

import java.sql.SQLException;

import java.util.ArrayList;

import java.util.Date;

import java.util.List;

import java.util.Properties;

import com.tt.util.DB;

public class GenEntityMysql{

private String packageOutPath;//指定实体生成所在包的路径

private String authorName;//作者名字

private String tablename;//表名

private String databasename;//数据库名

private List<String> tablenames;//拿到对应数据库中所有的实体类(实体类需要与其他表明做区分)

private List<String> colnames;//列名集合

private List<String> colTypes;//列名类型集合

private boolean f_util= false;//是否需要导入包java.util.*

private boolean f_sql= false;//是否需要导入包java.sql.*

/*

*构造函数

*/

public GenEntityMysql(){

//使用properties读取配置文件

Properties prop= new Properties();

try{

InputStream genentity= getClass().getResourceAsStream(

"/genentity.properties");

prop.load(genentity);

if(genentity!= null){

genentity.close();

}

} catch(Exception e){

System.out.println("file"+"catalogPath.properties"

+" not found!\n"+ e);

}

this.databasename= prop.getProperty("databasename").toString();

this.tablename= prop.getProperty("tablename").toString();

this.packageOutPath= prop.getProperty("packageOutPath").toString();

this.authorName= prop.getProperty("authorName").toString();

}

//创建多个实体类

private void genEntity(List<String> tablenames, Connection conn){

//使用第归生成文件

for(String tablename: tablenames){

this.genEntity(tablename, conn);

}

}

//创建单个实体类

private void genEntity(String tablename, Connection conn){

String sql="select* from"+ tablename;

PreparedStatement pstmt= null;

ResultSetMetaData rsmd= null;

try{

pstmt= DB.getPStmt(conn, sql);

rsmd= pstmt.getMetaData();

int size= rsmd.getColumnCount();//统计列

colnames= new ArrayList<String>();

colTypes= new ArrayList<String>();

for(int i= 0; i< size; i++){

colnames.add(rsmd.getColumnName(i+ 1));

colTypes.add(rsmd.getColumnTypeName(i+ 1));

if(colTypes.get(i).equalsIgnoreCase("datetime")){

f_util= true;

}

if(colTypes.get(i).equalsIgnoreCase("image")

|| colTypes.get(i).equalsIgnoreCase("text")){

f_sql= true;

}

}

System.out.println(colnames);

System.out.println(colTypes);

} catch(SQLException e1){

// TODO Auto-generated catch block

e1.printStackTrace();

} finally{

DB.close(pstmt);

}

//在内存中生成代码

String content= parse(tablename);

//写入到文件中

try{

File directory= new File("");

String outputPath= directory.getAbsolutePath()+"/src/"

+ this.packageOutPath.replace(".","/")+"/";

System.out.println("写出的路径:"+ outputPath);

//检测路径是否存在,不存在就创建路径

File path= new File(outputPath);

if(!path.exists()&&!path.isDirectory()){

path.mkdir();

System.out.println(path.exists());

}

//创建文件

outputPath+= initcap(tablename)+".java";

File file= new File(outputPath);

if(!file.exists()){

file.createNewFile();

}

//写出到硬盘

FileWriter fw= new FileWriter(file);

PrintWriter pw= new PrintWriter(fw);

pw.println(content);

pw.flush();

pw.close();

} catch(IOException e){

e.printStackTrace();

}

}

private void getAllEntityTable(Connection conn, List<String> tablenames){

ResultSet rs= null;

try{

DatabaseMetaData dmd=(DatabaseMetaData) conn.getMetaData();

/*

* TABLE_CAT String=>表类别(可为 null)

* TABLE_SCHEM String=>表模式(可为null)

* TABLE_NAME String=>表名称

* TABLE_TYPE String=>表类型

*/

rs= dmd.getTables(null, null,"%", null);

while(rs.next()){

tablenames.add(rs.getString("TABLE_NAME"));

}

} catch(SQLException e){

e.printStackTrace();

} finally{

try{

rs.close();

} catch(SQLException e){

e.printStackTrace();

}

}

}

/**

*

*@param tablename

*@return

*/

private String parse(String tablename){

StringBuffer sb= new StringBuffer();

//判断是否导入工具包

if(f_util){

sb.append("import java.util.Date;\r\n");

}

if(f_sql){

sb.append("import java.sql.*;\r\n");

}

sb.append("package"+ this.packageOutPath+";\r\n");

sb.append("\r\n");

//注释部分

sb.append("/**\r\n");

sb.append("*"+ tablename+"实体类\r\n");

sb.append("*"+ new Date()+""+ this.authorName+"\r\n");

sb.append("*/\r\n");

//实体部分

sb.append("\r\n\r\npublic class"+ initcap(tablename)+"{\r\n");

processAllAttrs(sb);//属性

processAllMethod(sb);// get set方法

sb.append("}\r\n");

return sb.toString();

}

/**

*功能:生成所有属性

*

*@param sb

*/

private void processAllAttrs(StringBuffer sb){

for(int i= 0; i< colnames.size(); i++){

sb.append("\tprivate"+ sqlType2JavaType(colTypes.get(i))+""

+ colnames.get(i)+";\r\n");

}

}

/**

*功能:生成所有方法

*

*@param sb

*/

private void processAllMethod(StringBuffer sb){

for(int i= 0; i< colnames.size(); i++){

sb.append("\tpublic void set"+ initcap(colnames.get(i))+"("

+ sqlType2JavaType(colTypes.get(i))+""+ colnames.get(i)

+"){\r\n");

sb.append("\t\tthis."+ colnames.get(i)+"="+ colnames.get(i)

+";\r\n");

sb.append("\t}\r\n");

sb.append("\tpublic"+ sqlType2JavaType(colTypes.get(i))+" get"

+ initcap(colnames.get(i))+"(){\r\n");

sb.append("\t\treturn"+ colnames.get(i)+";\r\n");

sb.append("\t}\r\n");

}

}

/**

*功能:将输入字符串的首字母改成大写

*

*@param str

*@return

*/

private String initcap(String str){

char[] ch= str.toCharArray();

if(ch[0]>='a'&& ch[0]<='z'){

ch[0]=(char)(ch[0]- 32);

}

return new String(ch);

}

/**

*功能:获得列的数据类型

*

*@param sqlType

*@return

*/

private String sqlType2JavaType(String sqlType){

if(sqlType.equalsIgnoreCase("bit")){

return"boolean";

} else if(sqlType.equalsIgnoreCase("tinyint")){

return"byte";

} else if(sqlType.equalsIgnoreCase("smallint")){

return"short";

} else if(sqlType.equalsIgnoreCase("int")){

return"int";

} else if(sqlType.equalsIgnoreCase("bigint")){

return"long";

} else if(sqlType.equalsIgnoreCase("float")){

return"float";

} else if(sqlType.equalsIgnoreCase("decimal")

|| sqlType.equalsIgnoreCase("numeric")

|| sqlType.equalsIgnoreCase("real")

|| sqlType.equalsIgnoreCase("money")

|| sqlType.equalsIgnoreCase("smallmoney")){

return"double";

} else if(sqlType.equalsIgnoreCase("varchar")

|| sqlType.equalsIgnoreCase("char")

|| sqlType.equalsIgnoreCase("nvarchar")

|| sqlType.equalsIgnoreCase("nchar")

|| sqlType.equalsIgnoreCase("text")){

return"String";

} else if(sqlType.equalsIgnoreCase("datetime")){

return"Date";

} else if(sqlType.equalsIgnoreCase("image")){

return"Blod";

}

return null;

}

/**

*出口 TODO

*

*@param args

*/

public static void main(String[] args){

new GenEntityMysql().start();

}

private void start(){

//创建连接

Connection conn= DB.getConn();

if(databasename!= null&&!databasename.equals("")

&& tablename!= null&&!tablename.equals("")){

System.out.println("databasename和 tablename不能同时存在");

} else{

//如果配置文件中有数据库名字,则可以拿到其中所有的实体类

if(databasename!= null&&!databasename.equals("")){

//获取所有实体表名字

tablenames= new ArrayList<String>();

getAllEntityTable(conn, tablenames);

System.out.println(tablenames);

//为每个实体表生成实体类

genEntity(tablenames, conn);

} else{

//为指定实体表生成实体类

genEntity(tablename, conn);

}

//关闭数据库连接

if(conn!= null){

DB.close(conn);

}

}

}

}

bigint对应java的什么类型和谁能帮我讲讲java中的BigInt和BigInteger数据类型的问题分享结束啦,以上的文章解决了您的问题吗?欢迎您下次再来哦!

java虚拟机什么语言写的?java 是什么语言写的java中的数组怎么表示什么 java数组怎么表示