当前位置:  编程技术>综合
本页文章导读:
    ▪hibernate增删改查的标准范例          一个套用hibernate框架编写的增删改查小范例,此处分享一下,经过多次修改,从代码规范和后期维护,以及简洁程度上说:算是很标准的书写格式; package www.csdn.net.bookhome.da.........
    ▪C#.Ne渐进式学习      1.C#语法知识         这个是语言基础,包含基本语法、关键字。这个阶段如果你有其他语言的基础,会学的很快,用不了一周就可以完成,当然不包含你对它的深入理.........
    ▪C#时钟控件      多年前写的时钟控件,发布出来,供大家参考。先看效果:首先,制作一个从UserControl继承的时钟控件,使用双缓冲绘制。由于是几年前的水平,一些代码写到了属性中,也懒得再改了,感兴.........

[1]hibernate增删改查的标准范例
    来源: 互联网  发布时间: 2013-11-10

    一个套用hibernate框架编写的增删改查小范例,此处分享一下,经过多次修改,从代码规范和后期维护,以及简洁程度上说:算是很标准的书写格式;

package www.csdn.net.bookhome.daoimpl;

import java.util.List;

import org.hibernate.Session;
import org.hibernate.Transaction;

import www.csdn.net.bookhome.dao.AdminDao;
import www.csdn.net.bookhome.dao.BaseHibernateDao;
import www.csdn.net.bookhome.domain.Admin;
import www.csdn.net.bookhome.utils.HibernateSessionFactory;

public class AdminDaoImpl extends BaseHibernateDao implements AdminDao {

	public void deleteObject(Admin entity) {
		Transaction tx = null;
		try {
			Session session = getSession();
			tx = session.beginTransaction();
			session.delete(entity);
			tx.commit();
		} catch (Exception e) {
			tx.rollback();
			throw new RuntimeException("删除所有错误"+e);
		} finally {
			HibernateSessionFactory.closeSession();
		}
	}

	public void deleteObjectById(Integer id) {
		Transaction tx = null;
		try {
			Session session = getSession();
			tx = session.beginTransaction();
			session.save(id);
			tx.commit();
		} catch (Exception e) {
			tx.rollback();
			throw new RuntimeException("根据id错误"+e);
		} finally {
			HibernateSessionFactory.closeSession();
		}
	}

	public List getAllObjects(Class entityClass) {
		try {
			return getSession().createQuery("from Admin").list();
		} catch (Exception e) {
			throw new RuntimeException("查找错误"+e);
		} finally {
			HibernateSessionFactory.closeSession();
		}
	}

	public Admin getObjectById(Class className, Integer id) {
		try {
			return (Admin) getSession().get(className, id);
		} catch (Exception e) {
			throw new RuntimeException("根据id查找错误"+e);
		} finally {
			HibernateSessionFactory.closeSession();
		}
	}

	public List getObjects(Class clazz, int from, int size, String orderName) {
		try {
			return getSession().createQuery("from Admin").setFirstResult((from-1)*size).setMaxResults(size).list();
		} catch (Exception e) {
			throw new RuntimeException("分页查询错误"+e);
		} finally {
			HibernateSessionFactory.closeSession();
		}
	}

	public Admin loadObjectById(Class className, Integer id) {
		try {
			return (Admin) getSession().load(className, id);
		} catch (Exception e) {
			throw new RuntimeException("load查询错误"+e);
		} finally {
			HibernateSessionFactory.closeSession();
		}
	}

	public void saveObject(Admin entity) {
		Transaction tx = null;
		try {
			Session session = getSession();
			tx = session.beginTransaction();
			session.save(entity);
			tx.commit();
		} catch (Exception e) {
			tx.rollback();
			throw new RuntimeException("保存错误"+e);
		} finally {
			HibernateSessionFactory.closeSession();
		}
	}

	public void updateObject(Admin entity) {
		Transaction tx = null;
		try {
			Session session = getSession();
			tx = session.beginTransaction();
			session.update(entity);
			tx.commit();
		} catch (Exception e) {
			tx.rollback();
			throw new RuntimeException("更新错误"+e);
		} finally {
			HibernateSessionFactory.closeSession();
		}
	}

	public Admin getAllObjects(String name) {
		
		try {			
			return (Admin) getSession().createQuery("from Admin a where a.adminName = :name")
			.setParameter("name", name).uniqueResult();
		} catch (Exception e) {
			throw new RuntimeException("根据用户查询有错误"+e);
		} finally {
			HibernateSessionFactory.closeSession();
		}
	}

	public Admin login(Admin entity) {
		try {
			return (Admin) getSession().createQuery("from Admin a where a.adminName = :name and a.adminPassword = :pass ").setString("name",entity.getAdminName()).setString("pass", entity.getAdminPassword()).uniqueResult();
		} catch (Exception e) {
			throw new RuntimeException("登录错误"+e);
		} finally {
			HibernateSessionFactory.closeSession();
		}
	}

}


 

作者:tianyazaiheruan 发表于2013-1-9 14:39:05 原文链接
阅读:0 评论:0 查看评论

    
[2]C#.Ne渐进式学习
    来源: 互联网  发布时间: 2013-11-10
1.C#语法知识

        这个是语言基础,包含基本语法、关键字。这个阶段如果你有其他语言的基础,会学的很快,用不了一周就可以完成,当然不包含你对它的深入理解。这就像英文字母一样,你认识了不代表你就可以用它去表达你的思想,这只代表你可以进行下一阶段的学习了。

        学习这些知识可以买一些相关的书籍(其实免费下载一些电子书籍就可以了,而且还环保),也可以直接上msdn  C# 语言入门 查看相关的资料,这些东西都差不多,只要系统的学习就可以了。

2.C#编程实践

        在对语法有了一些了解后,应该通过一些实例进行操作验证你的学习成果,同时也验证你的理解是否正确。这个阶段我感觉一个月就足够了,还是那句话如果你有其他任何一种语言的基础(是计算机语言,不是鸟语),这个应该更快。这个阶段就相当于你会用单个的字母去组词了。

       这个阶段就是要多练习,不要从网上COPY一些东西直接去运行,最好是能够手动的敲一些代码,这样你可能会发现大量的问题,有助于你的提高,msdn上编程指南就可以了,也足够了。特别应该注意不要专门去追求一些华丽的技巧,在没有很好的基础时去理解这些技巧会浪费大量的时间,稳扎稳打,那些技巧会在以后的开发中很快就掌握的。

       在完成组词后,下一步应该就是造句了,模拟几个虚拟的场景,实现几个比较完整的功能。接下来你就可以写作文了(帮老奶奶过马路、捡到钱包交给警察叔叔。。。)。

3.学习CLR

       在打算学习C#.Net之前你可能已经对托管应用程序有了一定的了解,在你学习完如何写“作文”时是不是也在考虑我的“作文”是如何运行的呢!在“作文”中创建的很多对象(老奶奶、警察...)在没有进行显示管理的情况下,如何保证内存不泄露呢!如有这样的疑问,那是时候学习CLR了,CLR被作为.NET的发动机、灵魂,反正就是重中之重,学习好它就对了。在学习的时候会碰到很多新的名词,托管模块、程序集、中间语言、通用类型系统、通用类型规范。。。有些很难理解,这个阶段就要花费大量的时间了,三个月,甚至更长,还是那句话因人而异(好像都不一样啊,呵呵),还要根据你学习的深度。

       在大部分的情况下我们编写的都是宿主应用程序,程序在编译完成后会在程序集所在的清单的文件中包含CLR表头信息,它指明了托管应用程序在启动时去初始化那个版本的CLR,CLR初始化后我们的程序就由它来托管运行(CLR寄宿,应用程序时宿主),它负责的东西很多,像内存的分配、垃圾的回收、运行时类型安全检查等。每个知识点都很重要,要反复的推敲,直到你感觉你可以把它讲述给其他人,其他人也能够听懂为止。

        这个阶段的学习我是建议买些书看的,毕竟msdn上的片段不具有连续性,虽然知识点都能讲到,但完整性不好。讲述CLR的书也挺多,但经典中的经典那就是 CLR via C#  第三版,不过第四版的英文版也出来了(感觉挺不好意思的,第三版我才买来看,我以前看过第二版-.net Framework 框架程序设计),知识更新的太快,郁闷,没办法,谁叫ms知识更新的快呢。

4.学习FCL

      在理解CLR的运行原理后,下一步自然是FCL。框架类库包含的类型有上万个,以后还会不停的扩充,要完全的了解所有的类型是不可能的,我们可以有针对性的学习,在学习前可能先问下自己要从事哪个方面的开发工作,然后针对你的目标有选择的学习。

      这些类型库由不同的程序集组成,在逻辑上又进行了划分,把相关的类型放在同一个命名空间里。借助这些类型库我们可以快速的构建我们的系统,简化开发流程,也简化了测试时间(这些类型不需要在测试了)。

      这个阶段的学习没有必要买书,msdn上的类库系统太好了,每个都很详细(大公司就是牛@),而且还有大量的实例,但是要学好这些东西就没有明确的时间概念了,只能实践中见真理,在做项目时,如有时间就进行整理下,好记性不如烂笔头。

      CLR和FCL是dotNet的核心,也就是我们的学习重点,虽然内容很多,但是因为和语言没有关系,所以你以后变换了开发语言(依然是.net 平台),你的所学一点都不会浪费,这些都是通用的(鼓掌)。

5.设计模式

      在上面的基础都打好后,现在就应该转移一下注意力到设计模式上了。这个也是和语言无关的,你要写个记叙文“作文”,就应该包括时间、地点、人物和事件,这个就是个模式,通过这个类似模板的东西我们只要在合适的时候去“填空”就好了,这些都是前辈们经验的积累,要善于利用。

     这个学习的过程就是理论和实践的有机结合,书推荐  大话设计模式  看着不累,Head First 设计模式都是不错的(以前看过,不过没有实践也就忘记了)。

6.专题学习

     还没想好,就到这儿吧!有空在聊,一点建议。

 

 

 

 

作者:whd0310 发表于2013-1-9 14:37:44 原文链接
阅读:0 评论:0 查看评论

    
[3]C#时钟控件
    来源: 互联网  发布时间: 2013-11-10

多年前写的时钟控件,发布出来,供大家参考。

先看效果:

首先,制作一个从UserControl继承的时钟控件,使用双缓冲绘制。由于是几年前的水平,一些代码写到了属性中,也懒得再改了,感兴趣的,可以改得更规范些。

//ClockControl.cs

using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;

namespace BrawDraw.Com.PhotoFrame.Net.PublicFunctions
{
 public class ClockControl: UserControl
 {
  DateTime dt;
  Pen      pen   = new Pen(Color.Black, 1);
  Pen      penSecond   = new Pen(Color.Black, 6);
  Brush    brush = new SolidBrush(Color.Black);
  Bitmap m_Bitmap = null;
  Graphics g = null;
  private Font ClockFont = new Font("Arial", 48, FontStyle.Bold);

  public ClockControl()
  {
   SetStyle(ControlStyles.UserPaint | ControlStyles.DoubleBuffer | ControlStyles.AllPaintingInWmPaint | ControlStyles.ResizeRedraw, true);
   this.UpdateStyles();
   Enabled = false;
   m_Bitmap = new Bitmap(100, 100);
  }

  public DateTime Time
  {
   get
   {
    return dt; 
   }
   set
   {
    m_Bitmap = new Bitmap(this.ClientRectangle.Width, this.ClientRectangle.Height);
    g = Graphics.FromImage(m_Bitmap);
    g.Clear(Color.White);
    InitializeCoordinates(g);

    DrawDots(g, brush);
    DrawHourHand(g, pen);
    DrawMinuteHand(g, pen);
    DrawNumbers(g);
    // DrawSecondHand(g, pen);
    // if(g != null) g.Dispose();
    if (dt.Hour != value.Hour)
    {
     DrawHourHand(g, pen);
    }
    if (dt.Minute != value.Minute)
    {
     DrawHourHand(g, pen);
     DrawMinuteHand(g, pen);
    }
    if (dt.Second != value.Second)
    {
     DrawMinuteHand(g, pen);
     DrawSecondHand(g, pen);
    }
    if (dt.Millisecond != value.Millisecond)
    {
     DrawSecondHand(g, pen);
    }         
    dt  = value;
    
    Graphics grfx = CreateGraphics();
    grfx.DrawImage(m_Bitmap, 0, 0);
    this.Validate();
    if(grfx != null) grfx.Dispose();
   }
  }

  protected override void OnPaint(PaintEventArgs pea)
  {
   g  = pea.Graphics;
   g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
   g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAliasGridFit;
   DrawClock(g);
   base.OnPaint (pea);
  }

  private void DrawClock(Graphics gg)
  {
   m_Bitmap = new Bitmap(this.Width, this.Height);
   Graphics grfx = Graphics.FromImage(m_Bitmap);
   grfx.Clear(Color.White);
   InitializeCoordinates(grfx);
   DrawDots(grfx, brush);
   DrawHourHand(grfx, pen);
   DrawMinuteHand(grfx, pen);
   DrawSecondHand(grfx, pen);
   DrawNumbers(grfx);
   gg.DrawImage(m_Bitmap, 0, 0);
   grfx.Dispose();
  }

  void InitializeCoordinates(Graphics grfx)
  {
   if (Width == 0 || Height == 0) return;

   grfx.TranslateTransform(Width / 2, Height / 2);

   float fInches = Math.Min(Width / grfx.DpiX, Height / grfx.DpiY);

   grfx.ScaleTransform(fInches * grfx.DpiX / 2000,
    fInches * grfx.DpiY / 2000);
  }

  void DrawDots(Graphics grfx, Brush brush)
  {
   for (int i = 0; i < 60; i++)
   {
    int iSize = i % 5 == 0 ? 100 : 30;

    grfx.FillEllipse(brush, 0 - iSize / 2, - 860 - iSize / 2, iSize, iSize);
    grfx.RotateTransform(6);
   }         
  }

  protected virtual void DrawHourHand(Graphics grfx, Pen pen)
  {
   GraphicsState gs = grfx.Save();
   grfx.RotateTransform(360f * Time.Hour / 12 + 30f * Time.Minute / 60 + 2);

   grfx.DrawPolygon(pen, new Point[]
         {
          new Point(0,  150), new Point( 100, 0),
          new Point(0, -600), new Point(-100, 0)
         });
   grfx.Restore(gs);
  }

  protected virtual void DrawMinuteHand(Graphics grfx, Pen pen)
  {
   GraphicsState gs = grfx.Save();
   grfx.RotateTransform(360f * Time.Minute / 60 +
    6f * Time.Second / 60 + 2);

   grfx.DrawPolygon(pen, new Point[]
         {
          new Point(0,  200), new Point( 50, 0),
          new Point(0, -800), new Point(-50, 0)
         });
   grfx.Restore(gs);
  }

  protected virtual void DrawSecondHand(Graphics grfx, Pen pen)
  {
   GraphicsState gs = grfx.Save();
   grfx.RotateTransform(360f * Time.Second / 60 + 6f * Time.Millisecond / 1000 + 2.8f);

   grfx.DrawLine(penSecond, 0, 0, 0, -800);
   grfx.Restore(gs);         
  }

  private void InitializeComponent()
  {
   //
   // ClockControl
   //
   this.Name = "ClockControl";
   this.Size = new System.Drawing.Size(416, 424);

  }

  protected void DrawNumbers(Graphics grfx)
  {
   int count = 1;
   int r = 1900;
   int dx = 25;
   int dy = 20;
   int offset = 8;
   int dr = 300;
   GraphicsState gs = grfx.Save();
   grfx.TranslateTransform(- r/2 - dx, - r/2 - dy);

   grfx.DrawEllipse(new Pen(Color.Black, 10), dx / 2 + offset, dy / 2 + offset, r + dx - offset, r + dy - offset);
   //grfx.DrawEllipse(new Pen(Color.Black, 2), dx + offset, dy + offset, r - offset, r - offset);

   grfx.TranslateTransform(dr/3 + 15, dr/3 + 15);
   for (double a = 0; a < 2 * Math.PI; a += (2.0* Math.PI/12))
   {
    double x = (r - dr * 1.2)/2 * Math.Cos(a - Math.PI/3) + (r - dr)/2 + 25;
    double y = (r - dr * 1.2)/2 * Math.Sin(a - Math.PI/3)+ (r - dr)/2 + 20;
    grfx.DrawString(Convert.ToString(count), ClockFont, Brushes.Black, (float)x,(float)y, new StringFormat());
    count++;
   }
   
   grfx.Restore(gs);
   //grfx.DrawLine(new Pen(Color.Black, 1), 0, -800, 0, 800);
  }
 }
}

接着再从BezierClockControl再从 ClockControl控件继承,由于绘制方式不同,因此最后显示的效果也不同:

//BezierClockControl.cs

using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Windows.Forms;

namespace BrawDraw.Com.PhotoFrame.Net.PublicFunctions
{
 public class BezierClockControl: ClockControl
 {
  protected override void DrawHourHand(Graphics grfx, Pen pen)
  {
   GraphicsState gs = grfx.Save();
  &nbs

    
最新技术文章:
▪error while loading shared libraries的解決方法    ▪版本控制的极佳实践    ▪安装多个jdk,多个tomcat版本的冲突问题
▪简单选择排序算法    ▪国外 Android资源大集合 和个人学习android收藏    ▪.NET MVC 给loading数据加 ajax 等待loading效果
▪http代理工作原理(3)    ▪关注细节-TWaver Android    ▪Spring怎样把Bean实例暴露出来?
▪java写入excel2007的操作    ▪http代理工作原理(1)    ▪浅谈三层架构
▪http代理工作原理(2)    ▪解析三层架构……如何分层?    ▪linux PS命令
▪secureMRT Linux命令汉字出现乱码    ▪把C++类成员方法直接作为线程回调函数    ▪weak-and算法原理演示(wand)
▪53个要点提高PHP编程效率    ▪linux僵尸进程    ▪java 序列化到mysql数据库中
▪利用ndk编译ffmpeg    ▪活用CSS巧妙解决超长文本内容显示问题    ▪通过DBMS_RANDOM得到随机
▪CodeSmith 使用教程(8): CodeTemplate对象    ▪android4.0 进程回收机制    ▪仿天猫首页-产品分类
▪从Samples中入门IOS开发(四)------ 基于socket的...    ▪工作趣事 之 重装服务器后的网站不能正常访...    ▪java序列化学习笔记
▪Office 2010下VBA Addressof的应用    ▪一起来学ASP.NET Ajax(二)之初识ASP.NET Ajax    ▪更改CentOS yum 源为163的源
▪ORACLE 常用表达式    ▪记录一下,AS3反射功能的实现方法    ▪u盘文件系统问题
▪java设计模式-观察者模式初探    ▪MANIFEST.MF格式总结    ▪Android 4.2 Wifi Display核心分析 (一)
▪Perl 正则表达式 记忆方法    ▪.NET MVC 给loading数据加 ajax 等待laoding效果    ▪java 类之访问权限
▪extjs在myeclipse提示    ▪xml不提示问题    ▪Android应用程序运行的性能设计
▪sharepoint 2010 自定义列表启用版本记录控制 如...    ▪解决UIScrollView截获touch事件的一个极其简单有...    ▪Chain of Responsibility -- 责任链模式
▪运行skyeye缺少libbfd-2.18.50.0.2.20071001.so问题    ▪sharepoint 2010 使用sharepoint脚本STSNavigate方法实...    ▪让javascript显原型!
▪kohana基本安装配置    ▪MVVM开发模式实例解析    ▪sharepoint 2010 设置pdf文件在浏览器中访问
▪spring+hibernate+事务    ▪MyEclipse中文乱码,编码格式设置,文件编码格...    ▪struts+spring+hibernate用jquery实现数据分页异步加...
▪windows平台c++开发"麻烦"总结    ▪Android Wifi几点    ▪Myeclipse中JDBC连接池的配置
▪优化后的冒泡排序算法    ▪elasticsearch RESTful搜索引擎-(java jest 使用[入门])...    ▪MyEclipse下安装SVN插件SubEclipse的方法
▪100个windows平台C++开发错误之七编程    ▪串口转以太网模块WIZ140SR/WIZ145SR 数据手册(版...    ▪初识XML(三)Schema
▪Deep Copy VS Shallow Copy    ▪iphone游戏开发之cocos2d (七) 自定义精灵类,实...    ▪100个windows平台C++开发错误之八编程
▪C++程序的内存布局    ▪将不确定变为确定系列~Linq的批量操作靠的住...    ▪DIV始终保持在浏览器中央,兼容各浏览器版本
▪Activity生命周期管理之三——Stopping或者Restarti...    ▪《C语言参悟之旅》-读书笔记(八)    ▪C++函数参数小结
▪android Content Provider详解九    ▪简单的图片无缝滚动效果    ▪required artifact is missing.
▪c++编程风格----读书笔记(1)    ▪codeforces round 160    ▪【Visual C++】游戏开发笔记四十 浅墨DirectX教程...
▪【D3D11游戏编程】学习笔记十八:模板缓冲区...    ▪codeforces 70D 动态凸包    ▪c++编程风格----读书笔记(2)
▪Android窗口管理服务WindowManagerService计算Activity...    ▪keytool 错误: java.io.FileNotFoundException: MyAndroidKey....    ▪《HTTP权威指南》读书笔记---缓存
▪markdown    ▪[设计模式]总结    ▪网站用户行为分析在用户市场领域的应用
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3