`
ccx20060810501
  • 浏览: 32531 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论
文章列表
DBCP是一个应用非常广泛的开源的数据源,使用起来非常简单,但是也还是有一些问题需要注意一下:   1.使用数据源时最好是通过一个工厂的静态方法创建DataSource,避免创建多个数据源。   2.使用前需要向工程中导入三个jar包,缺一不可:commons-dbcp.jar、commons-collections.jar、 commons-pool.jar,当然数据库驱动包也是必须的。这三个包都可以在www.apache.org的commons中找到。   3.创建一个数据源: static { try { Properties prop = new ...
1.一个简单的例子,根据用户名查询用户信息: static void query(String name) { Session session = HibernateUtil.getSession(); String queryString = "from User as user where user.id<?"; Query query = session.createQuery(queryString); query.setString(0, name); List<User> list = query.list(); ...
下面的代码可以作为模板使用: public class HibernateUtil { private static SessionFactory sessionFactory = null; private HibernateUtil() { }; static { Configuration cfg = new Configuration(); cfg.configure(); sessionFactory = cfg.buildSessionFactory(); } public ...
  图片:
这是本人通过各种优化技巧而实现的一个经典的数据库访问层: 数据源用的事DBCP开源包。     使用Spring框架提供的JdbcTemplate替代我写的数据库访问层是一个非常不错的选择,因为我差不多是按JdbcTemplate的思想写的,不过和它比起来还是有很大的差距,所以实际项目中我也是用JdbcTemplate,而不是自己写。 public class UserDaoSpringImpl implements UserDao { private SimpleJdbcTemplate simpleJdbcTemplate = new SimpleJdbcTemplate(Jd ...
基本思想:拦截Connection的close()方法,具体做法:使用代理模式来实现 核心代码: public class MyConnection implements Connection { private Connection realConnection; private MyDataSource myDataSource; MyConnection(Connection connection, MyDataSource myDataSource) { this.realConnection = connection; this.myDataSource ...
向数据库中插入数据的同时获取主键,比较推荐的方式:   String sqlStr = "insert into user(name,birthday,money) values('name1','1987-02-03',1234)"; Connection conn = null; PreparedStatement st = null; ResultSet rs = null; int key = 0; try { // 建立连接 conn = JdbcUtils.getInstance().getConnection() ...
·千万不要简单的用e.printStackTrace()抛出,这样对于上面的业务逻辑成来说是不可见,那样如果出了错也找不到是哪里的错。 ·最好自定义一个DaoException的类,继承于RuntimeException 代码: /** * 数据库访问异常处理类 */ package dao; /** * * 2009-9-25 * * 湖南大学 计算机与通信学院 计算机科学与技术专业 * * @author 陈春晓 * */ public class DaoException extends RuntimeException { ...
如果要把图片等二进制数据存入数据库,要把数据库中的相应字段设为“blob”,Mysql数据库是这样,其他数据库可能有所不同。 测试代码:   /** * 图片等二进制数据的数据库插入、读取操作 */ package test; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java. ...
随便建一个工程,然后导入该源码,运行即可,不过我用的是Myeclipse6.0,很好用,不知道是否适合其他版本
PrepareStatement相对Statement的优势: ·消除SQL注入的安全漏洞 ·Statement会是数据库频繁编译SQL,可能造成数据库缓冲区的溢出 ·数据库和相关驱动都可以对PrepareStatement进行优化   JdbcUtils工具类: /** * 有关mysql数据库的工具类,单例模式SingleTon */ package mysql.base; import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import ...
//start 图标浮动 var dirX=1,dirY=1; var xPos = 0,yPos = 0; function displayIcon(){ //多种引用方式 float_icon.style.top=0; document.body.all.float_icon.style.left=0; document.body.all("float_icon").style.visibility="visible"; window.setInterval("moveIcon()& ...
刷新此输出流并强制写出所有缓冲的输出字节。flush 的常规协定是:如果此输出流的实现已经缓冲了以前写入的任何字节,则调用此方法指示应将这些字节立即写入它们预期的目标。      这里所说的缓存是指应用程序与IO设备之间的内存缓存区,这样做的是因为CPU读写内存的速度比读写IO设备要快得多,设置一个内存缓冲区可以提高CPU利用率。
Global site tag (gtag.js) - Google Analytics