ITPub博客

首页 > 数据库 > MySQL > mysql :

mysql :

原创 MySQL 作者:lotuszm 时间:2007-07-02 17:41:08 0 删除 编辑
1:把数据库的驱动jar包添加到工程里
2:在程序里:
Class.forName("com.mysql.jdbc.Driver");//org.gjt.mm.mysql.Driver
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gbk","root","lxl");[@more@]PreparedStatement:


//更新操作
PreparedStatement st = con.prepareStatement("update book set name=? where id=?");
st.setString(1,"ee");
st.setInt(2,2);
st.executeUpdate();//更新
其他的代码和原来的一样


------------------------------
procedure :

1:在数据库中写Procedure:
//查询:
DROP PROCEDURE IF EXISTS `test`.`cc` $$
CREATE PROCEDURE `cc`(in nam varchar(45),idd int)//定义变量
BEGIN
select * from book where name= nam and id =idd;//使用变量
END


2:程序中的代码:
CallableStatement st = con.prepareCall("{call cc(?,?)}");
st.setString(1,"ee");
st.setInt(2,2);
ResultSet rs= st.executeQuery();
while(rs.next()){
System.out.println(rs.getString("name"));
}
//插入:

1:数据库中写procedure:
CREATE PROCEDURE `cc`(in nam varchar(45),price double)//定义变量
BEGIN
insert into book(name,price) values( nam,price);//使用变量
END
2:程序中的代码:
CallableStatement st = con.prepareCall("{call cc(?,?)}");
st.setString(1,"ss");
st.setInt(2,2);
st.executeUpdate();

-----------------------------

读写大对象 Blob 和Clob

Blob 一般用来存放二进制文件 如:视频等,Clob一般用来存放大的文本文件

第一步:创建表:
CREATE TABLE myfile (
'id' int(10) unsigned NOT NULL auto_increment,
'file' mediumblob NOT NULL,
PRIMARY KEY (`id`)
)

写大对象:
public void putBlob(){
try {
PreparedStatement p = con.prepareStatement("insert into myfile(file) values(?)");
File file = new File("D:workascentjava pptJSP.ppt");//设置所要保存的文件

FileInputStream in = new FileInputStream(file);

p.setBinaryStream(1,in,(int)file.length());//设置输入流和长度

p.executeUpdate();//插入


p.close();
//in.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
读大对象:

public void getBlob(){
try {
PreparedStatement p = con.prepareStatement("select file from myfile");
File file = new File("D:JSP.ppt");//设置所要保存的文件

FileOutputStream out = new FileOutputStream(file);//设置输出流
ResultSet rs = p.executeQuery();//读取
rs.next();
Blob blob = rs.getBlob("file");//获得大对象
InputStream in = blob.getBinaryStream();//得到输入流
int i=0;
while((i=in.read())!=-1)文件写入到
out.write(i);
}
in.close();
out.close();
p.close();
//in.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}








数据库类型-----------java类型

数值型

tinyint java.lang.Integer
smallint
int
mediumint java.lang.Long

bigint java.math.BigInteger

单精度浮点型
float java.lang.Float

双精度浮点型
double java.lang.Double

其他
decimal java.math.BigDecimal

字符型
char java.lang.String
varchar
tinytext
text
mediumtext
longtext

日期型
date java.sql.Date
datetime java.sql.Timestamp
timestamp java.sql.Timestamp
time java.sql.Time
year java.sql.Date

其他
tinyblob
blob
mediumblob
longblob

enum
set

-------------------------------------------
TINYINT[(M)] [UNSIGNED] [ZEROFILL]
一个很小的整数。有符号的范围是-128到127,无符号的范围是0到255。

SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
一个小整数。有符号的范围是-32768到32767,无符号的范围是0到65535。

MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]
一个中等大小整数。有符号的范围是-8388608到8388607,无符号的范围是0到16777215。

INT[(M)] [UNSIGNED] [ZEROFILL]
一个正常大小整数。有符号的范围是-2147483648到2147483647,无符号的范围是0到4294967295。

INTEGER[(M)] [UNSIGNED] [ZEROFILL]
这是INT的一个同义词。

BIGINT[(M)] [UNSIGNED] [ZEROFILL]

一个大整数。有符号的范围是-9223372036854775808到9223372036854775807,无符号的范围是0到

18446744073709551615。注意,所有算术运算用有符号的BIGINT或DOUBLE值完成,因此你不应该使用大于9223372036854775807(63位)的有符号大整数,除了位函数!注意,当两个参数是INTEGER值时,-、+和*将使用BIGINT运算!这意味着如果你乘2个大整数(或来自于返回整数的函数),如果结果大于9223372036854775807,你可以得到意外的结果。一个浮点数字,不能是无符号的,对一个单精度浮点数,其精度可以是<=24,对一个双精度浮点数,是在25
和53之间,这些类型如FLOAT和DOUBLE类型马上在下面描述。FLOAT(X)有对应的FLOAT和DOUBLE相同的范围,但是显示尺寸和小数位数是未定义的。在MySQL3.23中,这是一个真正的浮点值。在更早的MySQL版本中,FLOAT(precision)总是有2位小数。该句法为了ODBC兼容性而提供。


FLOAT[(M,D)] [ZEROFILL]
一个小(单精密)浮点数字。不能无符号。允许的值是-3.402823466E+38到-1.175494351E-38,0
和1.175494351E-38到3.402823466E+38。M是显示宽度而D是小数的位数。没有参数的FLOAT或有<24
的一个参数表示一个单精密浮点数字。

DOUBLE[(M,D)] [ZEROFILL]
一个正常大小(双精密)浮点数字。不能无符号。允许的值是-1.7976931348623157E+308到-2.2250738585072014E-308、
0和2.2250738585072014E-308到1.7976931348623157E+308。M是显示宽度而D是小数位数。没有一个参数的DOUBLE或FLOAT(X)(25
< = X < = 53)代表一个双精密浮点数字。

DOUBLE PRECISION[(M,D)] [ZEROFILL]
 

REAL[(M,D)] [ZEROFILL]
这些是DOUBLE同义词。

DECIMAL[(M[,D])] [ZEROFILL]
一个未压缩(unpack)的浮点数字。不能无符号。行为如同一个CHAR列:“未压缩”意味着数字作为一个字符串被存储,值的每一位使用一个字符。小数点,并且对于负数,“-”符号不在M中计算。如果D是0,值将没有小数点或小数部分。DECIMAL值的最大范围与DOUBLE相同,但是对一个给定的DECIMAL列,实际的范围可以通过M和D的选择被限制。如果D被省略,它被设置为0。如果M被省掉,它被设置为10。注意,在MySQL3.22里,M参数包括符号和小数点。


NUMERIC(M,D) [ZEROFILL]
这是DECIMAL的一个同义词。
DATE
一个日期。支持的范围是'1000-01-01'到'9999-12-31'。MySQL以'YYYY-MM-DD'格式来显示DATE值,但是允许你使用字符串或数字把值赋给DATE列。


DATETIME
一个日期和时间组合。支持的范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。MySQL以'YYYY-MM-DD
HH:MM:SS'格式来显示DATETIME值,但是允许你使用字符串或数字把值赋给DATETIME的列。

TIMESTAMP[(M)]
一个时间戳记。范围是'1970-01-01
00:00:00'到2037年的某时。MySQL以YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD或YYMMDD格式来显示TIMESTAMP值,取决于是否M是14(或省略)、12、8或6,但是允许你使用字符串或数字把值赋给TIMESTAMP列。一个TIMESTAMP列对于记录一个INSERT或UPDATE操作的日期和时间是有用的,因为如果你不自己给它赋值,它自动地被设置为最近操作的日期和时间。你以可以通过赋给它一个NULL值设置它为当前的日期和时间。

TIME
一个时间。范围是'-838:59:59'到'838:59:59'。MySQL以'HH:MM:SS'格式来显示TIME值,但是允许你使用字符串或数字把值赋给TIME列。


YEAR[(2|4)]
一个2或4位数字格式的年(缺省是4位)。允许的值是1901到2155,和0000(4位年格式),如果你使用2位,1970-2069(
70-69)。MySQL以YYYY格式来显示YEAR值,但是允许你把使用字符串或数字值赋给YEAR列。(YEAR类型在MySQL3.22中是新类型。)

CHAR(M) [BINARY]
一个定长字符串,当存储时,总是是用空格填满右边到指定的长度。M的范围是1 ~
255个字符。当值被检索时,空格尾部被删除。CHAR值根据缺省字符集以大小写不区分的方式排序和比较,除非给出BINARY关键词。NATIONAL
CHAR(短形式NCHAR)是ANSI SQL的方式来定义CHAR列应该使用缺省字符集。这是MySQL的缺省。CHAR是CHARACTER的一个缩写。

[NATIONAL] VARCHAR(M) [BINARY]
一个变长字符串。注意:当值被存储时,尾部的空格被删除(这不同于ANSI SQL规范)。M的范围是1 ~ 255个字符。
VARCHAR值根据缺省字符集以大小写不区分的方式排序和比较,除非给出BINARY关键词值。 VARCHAR是CHARACTER VARYING一个缩写。

TINYBLOB
 
TINYTEXT
一个BLOB或TEXT列,最大长度为255(2^8-1)个字符。
BLOB
 

TEXT
一个BLOB或TEXT列,最大长度为65535(2^16-1)个字符。

MEDIUMBLOB
 
MEDIUMTEXT
一个BLOB或TEXT列,最大长度为16777215(2^24-1)个字符。
LONGBLOB
 
LONGTEXT
一个BLOB或TEXT列,最大长度为4294967295(2^32-1)个字符。

ENUM('value1','value2',...)
枚举。一个仅有一个值的字符串对象,这个值式选自与值列表'value1'、'value2', ...,或NULL。一个ENUM最多能有65535不同的值。

SET('value1','value2',...)
一个集合。能有零个或多个值的一个字符串对象,其中每一个必须从值列表'value1', 'value2', ...选出。一个SET最多能有64个成员。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/663635/viewspace-923146/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: access+jdbc-odbc
下一篇: 事务处理:
请登录后发表评论 登录
全部评论
  • 博文量
    32
  • 访问量
    217634