记一次mysql 数据恢复

起因:公司内部使用的一个考勤系统(tomcat+mysql)由于使用的频率并不高,程序也并没有考虑需要进行数据定期备份(想起来了就备份下)。

前几天由于服务没有正常的关闭服务器的情况下导致无法正常使用数据库。


现象:出现数据库启动状态(netstat 查看有3306)无法连接数据库。查看安装目录bin下面的可执行文件不见了。

/

java 编写网页爬虫程序(利用HttpClient+jsoup)

对于网页抓取这方面大家都知道百度和google 都是依靠这个起家的. 百度为广大的网名提供了很多便捷的地方.让大家能最快的找到自己的想要的东西.百度做的事情就是聚合互联网的信息资源(当然百度也有自己的信息平台,如百度文库,知道,贴吧这类的产品).那百度是怎样的抓取网站的呢.一般情况百度会有自己的链接库. 根据部分网站友链,外链.或者是网站管理员向百度提交网址的方式抓取网站A的内容. 百度的会根据网站A的情况派出蜘蛛(也有称爬虫的)去抓取网站A的内容.蜘蛛根据情况抓取网站A内容.百度根据自己的算法去组织抓取的内容. 然后你就能在百度中搜索到网站A的内容了.当然有时候可能不会第一页的. 这个就是百度核心了. 如何让用户第一时间找到自己想要的内容.

/

java socket(TCP)学习记录

        最近在 学习了socket 发现socket果然是个好东西. 仔细的去了解发现用途真的太多.通过scoket编写的东西能很好的做到各种兼容性.比如大家孰知的HTTP 协议了.sokcet通过一些同行协议就能就完成了HTTP . 想想就感觉好厉害呀.

        HTTP 这样强大的协议也不是在任何情况都是很有效的.如HTTP 需要实现长链接就显得有些力不从心了.HTTP 适合BS下的应用需要什么数据就从服务器请求什么数据.如果想要服务器主动找客户端的话就不是那样容易了.HTTP 基于请求的特点就无法完成服务端一主动找客户端(浏览器)

/

利用SQL还原.bak 文件

利用SQL还原.bak 文件 提到这个问题还是1年多前的事情了,刚开始使用SQLServer,使用SQL导入固然是很方便的。而且对于在线管理SQL server的程序都是很久以前的了。做一些基本的增删改查还是挺方便的, 而这个程序用的可谓是相当的少而且比起phpmyadmin 这个在线管理工具来说简直就是弱爆了。 对于这两个工具的优缺点就不去讨论了。我说一点吧 phpmyadmin 支持导入sql文件的大小基本都没有撒限制的。当然默认是8M 可以 改这个 sqlserver 这个(貌似这个唯一的,不晓得微软是咋个想的)。对与sql 文件的还原小一点的文件是可以的。 但是文件过大直接是无法愉快的还原了。而且有大量的aspx的程序都在使用.bak 来还原的方式来导入数据。

/

如何通过JAVA代码实现 批量改文件后缀

最近在改一套HTML模板 总是要改文件的后缀

但是手动改有些显得不太爽于是 就用java 实现了这个小小的功能。 方便以后自己使用

 

贴代码 开始

 


/**
  * 根据文件后缀 查找符合要求文件列表
  * @param path
  * @param prefix
  */
 private void getFilesByPrefix(String path,String prefix){
  File file[]=new File(path).listFiles();
  for(File f:file)
  {
   if(f.isDirectory() && new File(f.getAbsolutePath()).listFiles()!=null){
    getFilesByPrefix(f.getAbsolutePath(), prefix);
   }
   else{
    if(f.getAbsoluteFile().toString().endsWith(prefix)){
     fileList.add(f.getAbsoluteFile().toString());
    }
   }
  }
 }
 
 /** 外部调用 (根据文件后缀 查找符合要求文件列表) 并且检查传入的路径是否存在
  * @param path
  * @param prefix
  */
 public void updateFilesPrefix(String path,String oldPrefix,String nowPrefix){
  if (new File(path).isDirectory()) {
   getFilesByPrefix(path, oldPrefix);
  } 
  if(fileList.size()>0){
   for (String string : fileList) {
    String fileName=string.substring(0,string.lastIndexOf(".")+1);
    String newFileName=fileName+nowPrefix;
    System.out.println(newFileName);
    new File(string).renameTo(new File(newFileName));
   }
  }
 }
 
 
 public static void main(String[] args) {
  FilesManageUtil f=new FilesManageUtil();
  f.updateFilesPrefix("H:\\网页模板\\charisma-master\\charisma-master","jsp","html");
  
 }


 

/

spring 数据源问题

 

发现使用外部加载文件的方式。 发现如果

在设置数据用户名时 user 中配置文件中的value 为 ${username}

<property name="user" value="${username}" />

无法加载成功。 

换为其他的名字 就可以运行起来了。 不懂这是那里的问题。


以前也没有注意过这个问题

/

Cannot use identity column key generation with

在使用继承映射是 发生了一个错。。

开始以为是配置文件的文件。。

1.还报 撒sessionFactory的错。。

说  org.hibernate.mapping.UnionSubclass cannot be cast to org.hibernate.mapping.RootClass

这样一看感觉到了是继承映射写的有问题。。

就把相关的 类删除了。代码就能运行起了。。



org.hibernate.mapping.UnionSubclass cannot be cast to org.hibernate.mapping.RootClass

是因为2个继承的2张表内部还有 关系 如OneToMany。。



于是想到了 是不是子类的问题。

于是删除了之类的。。 结果还是没有运行起。

/

按所有的文件夹在前的方式进行排序 - 处理java中使用遍历的文件下的内容

前几天遇到了这个问题。 发现遍历的文件夹和文件排列的顺序是乱的(按时间排序的)

于是想到了要自己去实现排序。 于是就在网上早了下代码。发现可以通过 Collections.sort

于是就想到了使用自己去重写 compare来实现排序。

下面是排序的代码。。

 

 public static void mysort(List<Files> files){
  Collections.sort(files, new Comparator<Files>()
  {
   public int compare(Files o1, Files o2) {
   
    //如果传进来的2个文件o1为文件夹 o2 不是文件时需要改变顺序
    if(o1.isFiler() && !o2.isFiler())
     return -1;
    //返回值>=0,则不调用Arrays.swap(Object x[], int a, int b) 方法。
    if(!o1.isFiler() && o2.isFiler())
           return 1;
    return 0;
   }
  });
 }

 

/