nutz

import javax.sql.DataSource;

import org.nutz.dao.Dao;
import org.nutz.dao.impl.NutDao;
import org.nutz.dao.impl.SimpleDataSource;

public class DaoHelper {
	private static SimpleDataSource ds;
	private static Dao dao;
	
	private static DataSource getDS() {
		if (null == ds) {
			ds = new SimpleDataSource();
			ds.setJdbcUrl("jdbc:mysql://localhost:3306/AS01");
			ds.setUsername("root");
			ds.setPassword("");
		}
		return ds;
	}
	
	public static Dao dao() {
		if (null == dao) {
			dao = new NutDao(getDS());
		}
		return dao;
	}
	
}

官网的解释:

何为DataSource

先看看JDK中对DataSource的描述:

  • 作为 DriverManager 工具的替代项,DataSource 对象是获取连接的首选方法。
  • 基本实现 - 生成标准的 Connection 对象
  • 连接池实现 - 生成自动参与连接池的 Connection 对象。此实现与中间层连接池管理器一起使用。

简单来说,就是获取数据库连接的一个通用接口, 常见的dbcp,c3p0,druid都是DataSource的实现.

NutDao也选用DataSource作为获取数据库连接的方式, 且只调用其无参数的getConnection()方法, 也是大部分数据库连接池唯一支持的方法.

提醒一下, DataSource只是接口,不等于连接池

NutDao不挑剔任何连接池/DataSource实现,只要实现了DataSource接口就行,不存在是否支持"XXXX连接池"的问题

public Account regAccount(Account account) {
		if (null != account) {
			if (StringUtil.isNotEmpty(account.getUsername()) && StringUtil.isNotEmpty(account.getPassword())) {
				account.setPassword(new MD5().getMD5ofStr(account.getPassword()));
				return DaoHelper.dao().insert(account);
			}
		}
		return null;
	}
	
	public List<Account> queryAccount() throws ClassNotFoundException, SQLException {
		return DaoHelper.dao().query(Account.class, null);
	}

	public Account getByUsernameAndPassword(String username, String password) {
		String pwd = new MD5().getMD5ofStr(password);
		return DaoHelper.dao().fetch(Account.class,Cnd.where("username","=",username).and("password","=",pwd));
	}

  1. 插入 Insert
  2. 删除 Delete
  3. 更新 Update
  4. 查询 Query

可以说,这四种操作涵盖了所有的数据操作。并且,除了 插入 操作,所有的操作都是可以一次针对多条记录的。

但是,Nutz.Dao 认为从使用者的角度来看,这四种操作还是有所不同的。比如,查询返回的结果,很多时候仅仅是一条记录。 我们需要为这种情况进行优化。所以,Nutz.Dao 在传统关系型数据库数据操作的基础上定义了如下的数据操作:

插入Insert一条 SQL 插入一条记录或者多条记录
插入FastInsert一条 SQL ,通过batch插入多条记录
删除Delete一条 SQL 删除一条记录
更新Update一条 SQL 更新一条或者多条记录
获取Fetch一条 SQL 获取一条记录
查询Query一条 SQL 根据条件获取多条记录
清除Clear一条 SQL 根据条件删除多条记录
建表Create根据实体建表
删表Drop根据实体/表名称进行删表
聚合Func执行sum,count等操作

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值