内容简介:jdao1.1.6已发布,jdao是一个Java的轻量级orm工具包,根据表名可以生成与之对应的dao类,同时也支持原生sql语句操作。 本次更新如下: 增加了DBUtils 类,具体使用请参考 DaoTest,RsScanTest 修复部分bug,数据源...
jdao1.1.6已发布,jdao是一个 Java 的轻量级orm工具包,根据表名可以生成与之对应的dao类,同时也支持原生 sql 语句操作。
本次更新如下:
增加了DBUtils 类,具体使用请参考 DaoTest,RsScanTest
修复部分bug,数据源设置做了修改。请参考 DaoTest,RsScanTest
v1.1.6
jdao 初始化:
DaoFactory.setDefaultDataSource(getDataSource());
jdao初始化 设置数据源,一步完成。
getDataSource()获取数据源方法:
如:ActionTest1_1_2.java 中:
public static DataSource getDataSource() throws Exception {
Properties p = new Properties();
p.load(ActionTest1_1_2.class.getClassLoader().getResourceAsStream("druid.properties"));
return DruidDataSourceFactory.createDataSource(p);}例如:对 数据库表名为 hstest的操作
CREATE TABLE hstest ( id int(10) DEFAULT NULL, value varchar(50) DEFAULT '', rowname varchar(50) DEFAULT '' )
一.生成dao对象,生成Hstest.java
public void createDao() throws Exception {
Class.forName("com.mysql.jdbc.Driver");
String driverUrl = "jdbc:mysql://127.0.0.1:3306/test";
String path = System.getProperty("user.dir") + "/test/com/jdao/action";
CreateDaoUtil.createFile("com.jdao.action", "hstest",path,DriverManager.getConnection(driverUrl, "root", "123456"), "utf-8");
//com.jdao.action 为 Hstest的包名
//hstest为表名
}二.对Hstest对象的操作 查询SQL: select value,rowname from hstest where id between 2 and 10;
jdao对象操作如下:
Hstest t = new Hstest();
t.where(Hstest.ID.BETWEEN(2, 10));
t.query(Hstest.VALUE, Hstest.ROWNAME);
插入SQL: insert into hstest (id,rowname,value) values(1,"donnie","wuxiaodong")
jdao对象操作如下:
Hstest t = new Hstest();
t.setId(1);
t.setRowname("donnie");
t.setValue("wuxiaodong");
t.save();
批量插入SQL: insert into hstest (id,rowname,value) values(1,"donnie1","wuxiaodong1"),(2,"donnie2","wuxiaodong2"),(3,"donnie3","wuxiaodong3")
jdao对象操作如下:
Hstest t = new Hstest();
t.setId(1);
t.setRowname("donnie1");
t.setValue("wuxiaodong1");
t.addBatch();
t.setId(2);
t.setRowname("donnie2");
t.setValue("wuxiaodong2");
t.addBatch();
t.setId(3);
t.setRowname("donnie3");
t.setValue("wuxiaodong3");
t.addBatch();
t.batchForSave();
更新SQL: update hstest set rowname="wuxiaodong",value="wuxiaodong" where id=10
jdao对象操作如下:
Hstest t = new Hstest();
t.setRowname("wuxiaodong");
t.setValue("wuxiaodong");
t.where(Hstest.ID.EQ(10));
t.update();
删除SQL: delete from hstest where id=2
jdao对象操作如下:
Hstest t = new Hstest();
t.where(Hstest.ID.EQ(2));
t.delete();三.支持SQL操作 DBUtils
DBUtils<?> db=new DBUtils();
db.select("select * from hstest where id=? limit 1",1);
System.out.println(db.getString("value"));
int i = db.execute("insert into hstest(rowname,value)values(?,?)",1,2);四.自定义类继承 DBUtils
任何子类继承自DBUtils 都可以设置与其对应的数据源,同时支持sql编写,支持翻页
如:
class RsTest extends DBUtils {}
//翻页
public static void testSelectListPage() throws Exception {
RsTest rt = new RsTest();
// 分页查询方法
rt.selectListPage(0, 20, "select * from hstest");
System.out.println(rt.rsList().size());
// selectListPage 会返回 totalcount
List list = rt.rsList();
for (RsTest r : list) {
System.out.println(r.getString("value"));
}
}//单行返回
public static void testSelect() throws Exception {
RsTest rt = new RsTest();
rt.select("select * from hstest where id=?", 1);
System.out.println(rt.getString("value"));
rt.select("select * from hstest where id=?", 2);
System.out.println(rt.getString("value"));
}//插入
public static void testInsert() throws Exception {
RsTest rt = new RsTest();
System.out.println(rt.execute("insert into hstest(value,rowname)values(?,?),(?,?) ", "wu1", "11", "wu2", "22"));
}//生成dao 的翻页测试类
public static void testPageTurn() throws Exception {
Hstest ht = new Hstest();
ht.setPageTurn(true); //翻页
ht.where(Hstest.ID.GE(0));
List list = ht.query();
System.out.println("totalcount:" + list.get(0).getTotalcount());
for (Hstest h : list) {
System.out.println(h.getRowname() + " " + h.getValue());
}
}//PageDao类测试
public static void testPageDao() throws Exception {
Hstest ht = new Hstest();
ht.where(Hstest.ID.GE(1));
PageDao pd = ht.selectListPage();
System.out.println("totalcount:" + pd.getTotalcount());
List list = pd.getList();
for (Hstest h : list) {
System.out.println(h.getRowname() + " " + h.getValue());
}
}五.事务
Transaction t = new Transaction(getDataSource());
Hstest hstest = new Hstest();
hstest.setTransaction(t);
hstest.setRowname("wu");
hstest.setValue("dong");
hstest.save();
Hstest hstest2 = new Hstest();
hstest2.setTransaction(t);
hstest2.setRowname("wu2");
hstest2.setValue("dong2");
hstest2.save();
DBUtils rt = new DBUtils();
rt.setTransaction(t);
rt.execute("insert into hstest(rowname,value)values(?,?)", 1, 2);
t.rollBackAndClose();【声明】文章转载自:开源中国社区 [http://www.oschina.net]
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Single Page Web Applications
Michael Mikowski、Josh Powell / Manning Publications / 2013-9-30 / USD 44.99
Code for most web sites mostly runs on the server. When a user clicks on a link, the site reacts slowly because the browser sends information to the server and the server sends it back again before di......一起来看看 《Single Page Web Applications》 这本书的介绍吧!
html转js在线工具
html转js在线工具
UNIX 时间戳转换
UNIX 时间戳转换