mysql,sqlserver,oracle三种数据库的大对象存取
	
    
    
	mysql 大对象存取:
  类型一般应该用mediumblod,
  blob只能存2的16次方个byte,
  mediumblod是24次方,
  一般来说够用了.longblob是32次方有些大.
  MYSQL默认配置只能存1M大小的文件,要修改配置,WIN版本的在mysql.ini文件中
  修改max_allowed_packet,net_buffer_length等几个参数,或直接SET GLOBAL varName=value.
  linux版本可以在启动参数后加-max_allowed_packet=xxM等几个参数.
  MYSQL存大对象最好直接就setBinaryStream,又快又方便.
  而不要先插入空再造型成BLOB然后再setBlob
  例子:
  import java.sql.*;
  import java.io.*;
  public class DBTest {
   
   static String driver = "org.gjt.mm.mysql.Driver";
   static String url = "jdbc:mysql://localhost:3306/test";
   static String user = "root";
   static String passwd = "passwd";
   public static void main(String[] args) throws Exception {
   Connection conn = null;
   try {
   Class.forName(driver);
   conn = DriverManager.getConnection(url,user,passwd);
   
   int op = 1;
   //插入
   if (op == 0) {
   PreparedStatement ps = conn.prepareStatement("insert into tb_file values (?,?)");
   ps.setString(1, "aaa.exe");
   InputStream in = new FileInputStream("d:/aaa.exe");
   ps.setBinaryStream(2,in,in.available());
   ps.executeUpdate();
   ps.close();
   }
   else {
   //取出
   PreparedStatement ps = conn.prepareStatement("select * from tb_file where filename = ?");
   ps.setString(1, "aaa.exe");
   ResultSet rs = ps.executeQuery();
   rs.next();
   InputStream in = rs.getBinaryStream("filecontent");
   System.out.println(in.available());
   FileOutputStream out = new FileOutputStream("d:/bbb.exe");
   byte[] b = new byte[1024];
   int len = 0;
   while ( (len = in.read(b)) != -1) {
   out.write(b, 0, len);
   out.flush();
   }
   out.close();
   in.close();
   rs.close();
   ps.close();
   }
   }
   catch (Exception ex) {
   ex.printStackTrace(System.out);
   }
   finall
    
     
	
	
    
    
	相关文档:
        
    
    晚上有朋友问起,简单的写了一个。
DELIMITER $$
CREATE
    FUNCTION `t_girl`
.
`func_rand_string`
(
f_num tinyint
 unsigned
,
f_type tinyint
 unsigned
)
    RETURNS varchar
(
32)
    BEGIN
       ......
	
    
        
    
    mysql>use mysql;
mysql>update user set host='%' where user='root';
重启Mysql
sudo /etc/init.d/mysql restart
[sudo] password for wangzw:
*Stopping MySQL database server mysqld                   & ......
	
    
        
    
     mysql数据乱码问题原因及解决(总结篇)
 
第一解决方法:
 
      乱码问题简单说就是数据库写入读取,网页文件,网页显示时几个环节的编码不一致造成的。
乱码问题
写入时:页面提取写入数据编码和写入数据库时编码不一致
读取时:读取后所用编码与数据库写入时不一致
 ......
	
    
        
    
    SELECT --从数据库表中检索数据行和列
INSERT --向数据库表添加新数据行
DELETE --从数据库表中删除数据行
UPDATE --更新数据库表中的数据
--数据定义
CREATE TABLE --创建一个数据库表
DROP TABLE --从数据库中删除表
ALTER TABLE --修改数据库表结构
CREATE VIEW --创建一个视图
DROP VIEW --从数据库中删除视图 ......