dao层学习
1.创建 POJO(java bean实体类)
在 Java 项目中建立一个POJO,比如 com.zzh.demo.Person :
package com.dodoke.bean;import java.util.Date;import org.nutz.dao.entity.annotation.*;@Table("t_test") // 声明了Test对象的数据表
public class Test {@Id // 表示该字段为一个自增长的Id,注意,是数据库表中自增!!private int id;@Column // 表示该字段可以用来标识此对象,或者是字符型主键,或者是唯一性约束(与数据库名字相同)private String name;@Column // 表示该字段可以用来标识此对象,或者是字符型主键,或者是唯一性约束(与数据库名字相同)private String code;
// @Column(hump=true) humb是否把字段的命名方式从驼峰式大小写(camelCase)变成蛇底式,true: 蛇底式小写,false: 驼峰式大小写(snake_case)。(与数据库名字不相同)@Column(value="create_date")(与数据库名字不相同)// 省略getter/setter
}
2.创建一个方法(数据库的增删改查操作)
package com.dodoke.test;import java.util.Date;
import java.util.List;import org.nutz.dao.Cnd;
import org.nutz.dao.Dao;
import org.nutz.dao.impl.NutDao;
import org.nutz.dao.impl.SimpleDataSource;
import org.nutz.dao.pager.Pager;import com.dodoke.bean.Test;public class Client {public static void main(String[] args) {// 创建一个数据源SimpleDataSource dataSource = new SimpleDataSource();dataSource.setJdbcUrl("jdbc:mysql://127.0.0.1/nutz_test");//数据库地址dataSource.setUsername("root");//数据库帐号dataSource.setPassword("123456");//数据库密码// 创建一个NutDao实例,在真实项目中, NutDao通常由ioc托管, 使用注入的方式获得.Dao dao = new NutDao(dataSource);// 创建表dao.create(Test.class, false); // false的含义是,如果表已经存在,就不要删除重建了.// Test test = new Test();
// test.setName("Tom");
// test.setCode("001");
// test.setCreateTime(new Date());// 新增操作
// dao.insert(test);// 查询操作
// Test t = dao.fetch(Test.class,1);
// System.out.println(t.getName());// 更新操作
// Test t1 = dao.fetch(Test.class,Cnd.where("code","=","001"));
// t1.setName("Jack");
// dao.update(t1);// 批量新增
// for(int i = 0; i <= 100; i++) {
// Test test = new Test();
// test.setName("Tom" + i);
// test.setCode(i + "");
// test.setCreateTime(new Date());
// dao.insert(test);
// }
// //查所有
// List<Test> ts = dao.query(Test.class, Cnd.where("id",">",100).and("name","like","%8%").desc("id"));
// for (Test test : ts) {
// System.out.println(test.getName());
// }// 根据id删除
// dao.delete(Test.class,1);// 根据条件删除
// dao.clear(Test.class, Cnd.where("id",">",100).and("name","like","%8%"));// 分页
// Pager pager = dao.createPager(1, 10);
// List<Test> ts = dao.query(Test.class, Cnd.where(null).asc("id"), pager);
// for (Test test : ts) {
// System.out.println(test.getName());
// }}
}
