`
收藏列表
标题 标签 来源
java中进行二进制,八进制,十六进制间进行相互转换
java中进行二进制,八进制,十六进制,十进制间进行相互转换   
关键字: java 进制转换   
十进制转成十六进制:   
Integer.toHexString(int i)   
十进制转成八进制   
Integer.toOctalString(int i)   
十进制转成二进制   
Integer.toBinaryString(int i)   
十六进制转成十进制   
Integer.valueOf("FFFF",16).toString()   
八进制转成十进制   
Integer.valueOf("876",8).toString()   
二进制转十进制   
Integer.valueOf("0101",2).toString()   
有什么方法可以直接将2,8,16进制直接转换为10进制的吗?   
java.lang.Integer类   
parseInt(String s, int radix)   
使用第二个参数指定的基数,将字符串参数解析为有符号的整数。   
examples from jdk:   
parseInt("0", 10) returns 0  
parseInt("473", 10) returns 473  
parseInt("-0", 10) returns 0  
parseInt("-FF", 16) returns -255  
parseInt("1100110", 2) returns 102  
parseInt("2147483647", 10) returns 2147483647  
parseInt("-2147483648", 10) returns -2147483648  
parseInt("2147483648", 10) throws a NumberFormatException   
parseInt("99",throws a NumberFormatException   
parseInt("Kona", 10) throws a NumberFormatException   
parseInt("Kona", 27) returns 411787  
进制转换如何写(二,八,十六)不用算法   
Integer.toBinaryString   
Integer.toOctalString   
Integer.toHexString   
例二   
public class Test{   
public static void main(String args[]){   
int i=100;   
String binStr=Integer.toBinaryString(i);   
String otcStr=Integer.toOctalString(i);   
String hexStr=Integer.toHexString(i);   
System.out.println(binStr);   
}   
例二   
public class TestStringFormat {   
public static void main(String[] args) {   
if (args.length == 0) {   
System.out.println("usage: java TestStringFormat <a number>");   
System.exit(0);   
}   
Integer factor = Integer.valueOf(args[0]);   
String s;   
s = String.format("%d", factor);   
System.out.println(s);   
s = String.format("%x", factor);   
System.out.println(s);   
s = String.format("%o", factor);   
System.out.println(s);   
}   
}   
其他方法:   
Integer.toHexString(你的10进制数);   
例如   
String temp = Integer.toHexString(75);   
输出temp就为 4b   
//输入一个10进制数字并把它转换成16进制   
import java.io.*;   
public class toHex{   
public static void main(String[]args){   
int input;//存放输入数据   
//创建输入字符串的实例   
BufferedReader strin=new BufferedReader(new InputStreamReader(System.in));   
System.out.println("请输入一个的整数:");   
String x=null;   
try{   
x=strin.readLine();   
}catch(IOException ex){   
ex.printStackTrace();   
}   
input=Integer.parseInt(x);   
System.out.println ("你输入的数字是:"+input);//输出从键盘接收到的数字   
System.out.println ("它的16进制是:"+Integer.toHexString(input));//用toHexString把10进制转换成16进制   
}   
}  
mysql 触发器
DROP trigger IF EXISTS  trg_temp_data_heatmeter_after_insert;

create  trigger trg_temp_data_heatmeter_after_insert
#插入后触发
after insert  
on  bems_web.temp_data_heatmeter
for each row
begin
		IF new.roomid is NOT NULL AND new.TIMEREADDATA is not NULL
		THEN

				select count(*) into @ee from alltable a where DATE_FORMAT(new.TIMEREADDATA,'%Y-%m-%d')=a.TIMEREADDATA and new.roomid=a.roomid;
						if @ee>0 then
							update alltable b  set meterdata=new.currentheat where CURDATE()=b.TIMEREADDATA and new.roomid=b.roomid;
						ELSE
							 insert into alltable(roomId,timereaddata,meterdata)  values(new.roomId,CURDATE(),new.CURRENTHEAT);
						END IF;
		END IF;
end
;
MyBatis使用MySQL数据库如何在执行insert操作后返回自增的主键
数据库:MySQL5 

表:create table play(iid int(10) not null primary key auto_increment,typeId int(3));

Play.java:

public class Play{

private Integer iID;

        private Integer typeID;

...setter and getter省略... 

} 

play-mapper.xml:

<mapper namespace="PlayDAO">

<resultMap id="BaseResultMap" type="Play">

<id column="iid" property="iID" jdbcType="INTEGER" />

<result column="typeId" property="typeID" jdbcType="INTEGER" /> 

</resultMap> 

<insert id="insert" parameterType="Play">

insert into play(typeId) values (#{typeID,jdbcType=INTEGER})

<selectKey keyProperty="iID" resultType="int" order="AFTER">

select LAST_INSERT_ID() 

</selectKey> 

</insert> 

</mapper> 

说明:

1、 order="AFTER" 表示selectKey的动作在insert into...执行之后执行。

2、为了说明问题,本例特别让java类中的属性名与xml配置文件中的column名不同,需要特别注意 selectKey的keyProperty属性必须是java类中的属性名。

 

补充:

在Oracle中的用法:先为主键创建一个序列 create sequence Play_Sequence increment by 1 start with 1 nomaxvalue;
<insert id="insert" parameterType="Play"> 

      <selectKey  keyProperty="iID" resultType="int" order="BEFORE" >

         select  Play_Sequence.nextval from dual

      </selectKey> 
    insert into play( iid ,typeId) values ( #{ iID ,jdbcType=INTEGER} ,#{typeID,jdbcType=INTEGER}) 

 </insert> 

说明:

1、无需为序列创建触发器(trigger),order="BEFORE"确定了在插入数据之前取得主键,再将主键随其他字段一起插入即可。

2、做了一个试验,在创建触发器的情况下,使selectKey的order="AFTER",再使selectKey选择序列的currval,发现currval还未加1。所以只能用1中的方法。
解决insert返回id的问题
我是这么用的

XML code
<insert id="addHomework" parameterType="Map" useGeneratedKeys="true" keyProperty="homeworkid">
        INSERT INTO 
            homework(homeworkbag_id,homeworkname,file_path,crt_iduser,crt_time,homeworkbagname) 
        VALUES(#{homeworkbag_id},#{homeworkname},' ',#{crt_iduser},now(),#{homeworkbagname})
        <selectKey resultType="int" order="AFTER" keyProperty="homeworkid">
            SELECT LAST_INSERT_ID();
        </selectKey>
    </insert>


我在Action中,调用包含这个sql的service,

Java code
this.service.addHomework(paraMap)


然后新插入的homeworkid会返回在paraMap中
这样获得

Java code
paraMap.get("homeworkid")
oracle 存储过程 数组参数
在oracle创建数值型数组
CREATE OR REPLACE type numArray as table of number;

创建一个表
CREATE TABLE ARRAYTEST
(
ID NUMBER,
NAME VARCHAR2(10 BYTE)
)

创建一个存储过程
CREATE OR REPLACE procedure Proc_NumArray_test(nums in numArray) as 
vIndex integer;
begin
for vIndex in 1..nums.count loop
insert 
into ARRAYTEST(id,name) 
values(nums(vIndex),nums(vIndex));
end loop;
commit;
end Proc_NumArray_test;
-------------------------------------------------
(2)自定义的数组类型 (自定义数据类型时,建议通过创建Package的方式实现,以便于管理)

E.g (自定义使用参见标题4.2) create or replace package myPackage is

  -- Public type declarations   type info is record(     name varchar(20),     y number);

  type TestArray is table of info index by binary_integer;   --此处声明了一个TestArray的类型数据,其实其为一张存储Info数据类型的Table而已,及TestArray 就是一张表,有两个字段,一个是

name,一个是y。需要注意的是此处使用了Index by binary_integer 编制该Table的索引项,也可以不写,直接写成:type TestArray is 

table of info,如果不写的话使用数组时就需要进行初始化:varArray myPackage.TestArray; varArray := new myPackage.TestArray();

end TestArray;


------------------------------------------------------
http://topic.csdn.net/u/20080727/09/3d9dba74-5728-4a0f-b914-622ddfa95b9a.html
Global site tag (gtag.js) - Google Analytics