分类: 默认

  • Quartz.NET 轻松实现定时删除数据库数据

    Quart是java环境下的任务调度系统,比起原始的数据库触发器标志和独立的调度器线程来说,这个开源的任务调度系统好用了不知道多少倍。最近部门的一个伙伴做了一个投票系统,投票是通过IP限制实现的,IP地址保存在数据库中,需要每天零时删除IP记录。

    系统是Asp.net的,本来想弄个Timer,但是老觉得不怎么放心,所以暂时改成手动了。

     

    最近投票弄完了闲下来研究了一下,发现有个.net环境下的Quart:
    Quart.Net

    从官方主页可以看到这个东西是从Quart移植过来的,就Down下了试了一下,发现用着很顺手。

     

    我使用的是1.03版的。

    引用Quartz.dll,新建一个类MyJob,并实现接口IJob,在public void Execute(JobExecutionContext context)方法中添加对数据库数据删除的相关代码。

    新建一个Global文件,在Application_Start中添加一下代码:

     
    ISchedulerFactory factory =new StdSchedulerFactory();
    IScheduler scheduler = factory.GetScheduler();
    scheduler.Start();
    JobDetail job =new JobDetail("MyJob",typeof(MyJob));
    CronTrigger trigger =new CronTrigger();
    trigger.CronExpressionString ="0 0 0 * * 
  • Android中使用ormlite实现持久化–HelloOrmLite

    Android中使用ormlite实现持久化–HelloOrmLite

    Android中内置了sqlite,但是常用的开发语言java是面向对象的,而数据库是关系型的,二者之间的转化每次都很麻烦(主要是我对sql语言不熟悉)。而Java Web开发中有很多orm框架,但是想直接放到Android上用有些麻烦。尝试了一下找Android的orm框架,说实话还有好几个。

    实现考虑的是:androrm
    官网:http://androrm.the-pixelpla.net/
    说实话,这个我实在没有弄懂,一共两个包。
    一个是依赖包:Apache Commons – Lang (2.6)
    另外一个就是主包:androrm.jar 不管怎么下载的都不能使用…

    然后有考虑了一下db4o
    官网:http://www.db4o.com/
    官网上的介绍说是已经支持Android了,但是我一是觉得包有点大,而是觉得速度有点慢

    最后看到的就是ormlite
    官网:http://ormlite.com/
    一共两个包:一个是ormlite-core-4.24.jar,另一个是ormlite-android-4.24.jar
    从以下网址可以下载到:http://ormlite.com/releases/

    下面按照惯例来个Hello world
    新建Android项目:HelloOrmLite

    添加文件夹:libs,将所需的两个包复制到其中。添加引用

    新建一个model:Hello.java

    package cn.sdx.model;
    
    import com.j256.ormlite.field.DatabaseField;
    
    publicclass Hello {
    @DatabaseField(generatedId =true)
    int id;
    @DatabaseField
    
  • 为Android应用程序添加社会化分享功能

    为Android应用程序添加社会化分享功能

    正在做个android的小应用,有点想尝试一下社会化分享,比如分享到新浪微博啥的。看一下新浪,人人网的API,说实话功能很全很强大,但虽说有相对的SDK,但是总觉得不方便。

    因为正在使用友盟的统计SDK,无意间发还有个SNS的SDK,看了一下文档,感觉不错哈。

    总共需要3个包,Umeng-Android-SDK-SnsService.jar,httpmime-4.1.1.jar和commons-httpclient-3.1.jar。大小分别为63K,27K,298K。感觉有点点大,但是比较一下新浪,人人,腾讯微薄提供的API,其实大小没差好多,等下我们还可以压缩一下的嘛。

    新建一个文件夹libs,将3个包导入其中,只有3个哈,其他两个是我这个程序其他功能要使用的。

     

    在开发工具—SNS分享中 设置相关的Api key和Api Secret,没有就去申请一个。

    然后在Android的配置文件中添加两个Activity。

    <activity android:name="com.umeng.api.activity.OauthActivity" android:configchanges="orientation|keyboardHidden">
    </activity>
    
    <activity android:name="com.umeng.api.activity.UpdateStatusActivity" android:theme="@style/Theme.IOSched" android:configchanges="orientation|keyboardHidden">
    <intent-filter>
    <action android:name="android.intent.action.VIEW"></action>
    <category android:name="android.intent.category.DEFAULT"></category>
    <category android:name="android.intent.category.BROWSABLE"></category>
    <data android:scheme="schema友盟的应用KEY"></data>
    </intent-filter>
    </activity>

    官方文档的位置还要多一点点…但是我觉得那些看实际情况了。

    那个scheme那里主要是为了区分,应用KEY就是你在友盟注册的KEY,因为我有用它的统计SDK,所以有KEY,没有的话去申请一个。

    然后添加3个权限,访问网络的权限肯定是必须的,还有判断网络情况,友盟还要求一个读取终端IMEI的权限,一共三个。

     

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE">
    <uses-permission android:name="android.permission.INTERNET">
    <uses-permission android:name="android.permission.READ_PHONE_STATE">

    然后是资源文件,下载的SDK有,全部复制到项目里面。
  • Asp.net 获取当前目录的三种方法

    方法一:

    string sPath = System.IO.Path.GetDirectoryName(Page.Request.PhysicalPath)

    方法二:

    string sPath = System.Web.HttpContext.Current.Request.MapPath(“/“)

    方法三:

    string sPath = Page.Server.MapPath(“/“);

    我推荐使用第二种

    有时候可能出现找不到类的情况,请引用System.Web.dll…