代码片段

1. [代码]整型映射工具

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package org.dave.common.database.convert;
 
import java.sql.ResultSet;
import java.sql.SQLException;
 
/**
 * 整型映射工具
 * @author David Day
 */
public class IntegerConverter implements ResultConverter<Integer> {
 
    @Override
    public Integer convert(ResultSet rs) throws SQLException {
        return rs.getInt(1);
    }
 
}

2. [代码]长整型映射工具

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package org.dave.common.database.convert;
 
import java.sql.ResultSet;
import java.sql.SQLException;
 
/**
 * 长整型映射工具
 * @author 戴威
 */
public class LongConverter implements ResultConverter<Long> {
 
    @Override
    public Long convert(ResultSet rs) throws SQLException {
        return rs.getLong(1);
    }
 
}

3. [代码]数据模型的demo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package org.dave.demo.model;
 
import org.dave.common.database.DataModel;
 
@SuppressWarnings("serial")
public class Demo extends DataModel {
     
    private Long id;
     
    private String name;
     
    private String pass;
     
    private String email;
 
    public Demo() {
        super();
    }
 
    public Demo(Long id) {
        super();
        this.id = id;
    }
 
    public Long getId() {
        return id;
    }
 
    public void setId(Long id) {
        this.id = id;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public String getPass() {
        return pass;
    }
 
    public void setPass(String pass) {
        this.pass = pass;
    }
 
    public String getEmail() {
        return email;
    }
 
    public void setEmail(String email) {
        this.email = email;
    }
 
}

4. [代码]demo数据模型转换

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package org.dave.demo.convert;
 
import java.sql.ResultSet;
import java.sql.SQLException;
 
import org.dave.common.database.convert.ResultConverter;
import org.dave.demo.model.Demo;
 
public class DemoConverter implements ResultConverter<Demo> {
 
    @Override
    public Demo convert(ResultSet rs) throws SQLException {
        Demo demo = new Demo(rs.getLong(1));
        demo.setName(rs.getString(2));
        demo.setPass(rs.getString(3));
        demo.setEmail(rs.getString(4));
        return demo;
    }
 
}

5. [代码]dao的demo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
package org.dave.demo.dao;
 
import java.sql.Connection;
import java.util.List;
 
import org.dave.common.database.access.DataAccess;
import org.dave.common.database.convert.IntegerConverter;
import org.dave.common.database.convert.LongConverter;
import org.dave.demo.convert.DemoConverter;
import org.dave.demo.model.Demo;
 
public class DemoDao extends DataAccess {
     
    public DemoDao(Connection conn) {
        super(conn);
    }
     
    /**
     * 增加
     * @param name
     * @param pass
     * @param email
     * @return
     */
    public Long add(String name, String pass, String email) {
        return super.insert("INSERT INTO demo(name,pass,email) values(?,?,?)",
                new LongConverter(), name, pass, email);
    }
     
    /**
     * 修改
     * @param id
     * @param name
     * @param pass
     * @param email
     */
    public void update(Long id, String name, String pass, String email) {
        super.update("UPDATE demo SET name=?,pass=?,email=? WHERE id=?",
                name, pass, email, id);
    }
     
    /**
     * 删除
     * @param id
     */
    public void delete(Long id) {
        super.update("DELETE FROM demo WHERE id=?", id);
    }
     
    /**
     * 根据ID查询
     * @param id
     * @return
     */
    public Demo findById(Long id) {
        return super.queryForObject("SELECT id,name,pass,email FROM demo WHERE id=?",
                new DemoConverter(), id);
    }
     
    /**
     * 查询所有
     * @return
     */
    public List<Demo> findAll() {
        return super.queryForList("SELECT id,name,pass,email FROM demo", new DemoConverter());
    }
     
    /**
     * 查询总记录数
     * @return
     */
    public Integer getCount() {
        return super.queryForObject("SELECT COUNT(*) FROM demo", new IntegerConverter());
    }
     
    /**
     * 分页查询
     * @param start
     * @param size
     * @return
     */
    public List<Demo> findByRange(int start, int size) {
        return super.queryForList("SELECT id,name,pass,email FROM demo limit ?,?",
                new DemoConverter(), start, size);
    }
 
}

6. [代码]基础service

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package org.dave.common;
 
import java.sql.Connection;
 
import org.dave.common.database.DatabaseTransaction;
 
public abstract class BaseService {
     
    private DatabaseTransaction trans;
     
    protected BaseService(DatabaseTransaction trans) {
        this.trans = trans;
    }
     
    protected BaseService() { }
 
    protected DatabaseTransaction getTransaction() {
        return trans;
    }
     
    protected Connection getConnection() {
        return trans.getConnection();
    }
 
}

7. [代码]service的demo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
package org.dave.demo.service;
 
import java.util.List;
 
import org.dave.common.BaseService;
import org.dave.common.data.Pager;
import org.dave.common.database.DatabaseTransaction;
import org.dave.demo.dao.DemoDao;
import org.dave.demo.model.Demo;
 
public class DemoService extends BaseService {
 
    public DemoService(DatabaseTransaction trans) {
        super(trans);
    }
 
    public DemoService() {
        super();
    }
     
    /**
     * 增加
     * @param demo
     * @return
     */
    public Demo add(Demo demo) {
        DemoDao dao = new DemoDao(getConnection());
        Long id = dao.add(demo.getName(), demo.getPass(), demo.getEmail());
        return dao.findById(id);
    }
     
    /**
     * 更新
     * @param demo
     */
    public void update(Demo demo) {
        new DemoDao(getConnection()).update(demo.getId(), demo.getName(), demo.getPass(), demo.getEmail());
    }
     
    /**
     * 删除
     * @param id
     */
    public void delete(Long id) {
        new DemoDao(getConnection()).delete(id);
    }
     
    /**
     * 通过id查询
     * @param id
     * @return
     */
    public Demo findById(Long id) {
        return new DemoDao(getConnection()).findById(id);
    }
     
    /**
     * 查询所有
     * @return
     */
    public List<Demo> findAll() {
        return new DemoDao(getConnection()).findAll();
    }
     
    /**
     * 分页查询
     * @param page
     * @return
     */
    public List<Demo> findByPage(Pager page) {
        DemoDao dao = new DemoDao(getConnection());
        page.setTotalResults(dao.getCount());
        return dao.findByRange(page.getStartResults(), page.getPageSize());
    }
     
}

8. [代码]action的demo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
package org.dave.demo.action;
 
import java.util.List;
 
import org.dave.common.data.Pager;
import org.dave.common.database.DatabaseTransaction;
import org.dave.demo.model.Demo;
import org.dave.demo.service.DemoService;
 
public class DemoAction {
     
    public String add() {
        DatabaseTransaction trans = new DatabaseTransaction(true);
        try {
            new DemoService(trans).add(demo);
            trans.commit();
        } catch (Exception e) {
            trans.rollback();
            return "error";
        } finally {
            trans.close();
        }
        return "toList";
    }
     
    public String update() {
        DatabaseTransaction trans = new DatabaseTransaction(true);
        try {
            new DemoService(trans).update(demo);
            trans.commit();
        } catch (Exception e) {
            trans.rollback();
            return "error";
        } finally {
            trans.close();
        }
        return "toList";
    }
     
    public String info() {
        DatabaseTransaction trans = new DatabaseTransaction(true);
        try {
            demo = new DemoService(trans).findById(demo.getId());
        } catch (Exception e) {
            return "error";
        } finally {
            trans.close();
        }
        return "info";
    }
     
    public String findByPage() {
        DatabaseTransaction trans = new DatabaseTransaction(true);
        try {
            demoList = new DemoService(trans).findByPage(page);
        } catch (Exception e) {
            return "error";
        } finally {
            trans.close();
        }
        return "page";
    }
     
    public String findAll() {
        DatabaseTransaction trans = new DatabaseTransaction(true);
        try {
            demoList = new DemoService(trans).findAll();
        } catch (Exception e) {
            return "error";
        } finally {
            trans.close();
        }
        return "list";
    }
     
    private Pager page;
     
    private Demo demo;
     
    private List<Demo> demoList;
 
    public Pager getPage() {
        return page;
    }
 
    public void setPage(Pager page) {
        this.page = page;
    }
 
    public Demo getDemo() {
        return demo;
    }
 
    public void setDemo(Demo demo) {
        this.demo = demo;
    }
 
    public List<Demo> getDemoList() {
        return demoList;
    }
 
}

9. [文件] 源码和试例包 ~ 13KB     下载(556)

http://www.oschina.net/code/snippet_86510_4466

通用dao的demo的更多相关文章

  1. Java学习笔记之使用反射+泛型构建通用DAO

    PS:最近简单的学了学后台Servlet+JSP.也就只能学到这里了.没那么多精力去学SSH了,毕竟Android还有很多东西都没学完.. 学习内容: 1.如何使用反射+泛型构建通用DAO. 1.使用 ...

  2. 使用mybatis完成通用dao和通用service

    使用mybatis完成通用dao和通用service 概述: 使用通用dao和通用service可以减少代码的开发.可以将常用的增删改查放到通用dao中.对不同的or框架,基本上都有自己的实现如Spr ...

  3. Java反射结合JDBC写的一个通用DAO

    以前写反射只是用在了与设计模式的结合上,并没有考虑到反射可以与DAO结合.也是一个偶然的机会,被正在上培训的老师点到这个问题,才考虑到这个可能性,于是上网参考各种代码,然后自己动手开发了一个通用DAO ...

  4. Spring Boot-------JPA——EntityManager构建通用DAO

    EntityManager EntityManager 是用来对实体Bean 进行操作的辅助类.他可以用来产生/删除持久化的实体Bean,通过主键查找实体bean,也可以通过EJB3 QL 语言查找满 ...

  5. spring基于通用Dao的多数据源配置详解【ds1】

    spring基于通用Dao的多数据源配置详解 有时候在一个项目中会连接多个数据库,需要在spring中配置多个数据源,最近就遇到了这个问题,由于我的项目之前是基于通用Dao的,配置的时候问题不断,这种 ...

  6. Mybatis整合通用Dao,Mybatis整合通用Mapper,MyBatis3.x整合通用 Mapper3.5.x

    Mybatis整合通用Dao,Mybatis整合通用Mapper,MyBatis3.x整合通用 Mapper3.5.x ============================== 蕃薯耀 2018年 ...

  7. 十六、springboot整合Spring-data-jpa(二)之通用DAO接口与添加自定义方法

    @NoRepositoryBean:Spring Data Jpa在启动时就不会去实例化BaseRepository这个接口 1.通用接口: import org.springframework.da ...

  8. spring基于通用Dao的多数据源配置

    有时候在一个项目中会连接多个数据库,须要在spring中配置多个数据源,近期就遇到了这个问题,因为我的项目之前是基于通用Dao的,配置的时候问题不断.这样的方式和资源文件冲突:扫描映射文件的话,Sql ...

  9. Mybatis 使用PageHelper封装通用Dao分页方法

    参考: PageHelper官网:https://pagehelper.github.io/docs/howtouse/#3-%E5%A6%82%E4%BD%95%E5%9C%A8%E4%BB%A3% ...

随机推荐

  1. java中关于类和对象的一些思考

    就这个问题而言 第一种和第二种定义的变量并不是一种形式 前者我们称为原始数据变量 后者我们称为对象变量 这两种变量的创建方式,定义方式,使用方式都有着很多不同 需要引起注意. 在java中,有着基本的 ...

  2. 【转载】Eclipse 最常用快捷键 (动画讲解),最简单的一些快捷键

    Eclipse有强大的编辑功能, 工欲善其事,必先利其器, 掌握Eclipse快捷键,可以大大提高工作效率. 小坦克我花了一整天时间, 精选了一些常用的快捷键操作,并且精心录制了动画, 让你一看就会. ...

  3. YUM方式安装LAMP

    本文介绍两种方法yum安装LAMP, 方法1: 通过httpd的php模块方式安装LAMP 方法2: 通过php-fpm方式安装LAMP 安装环境:CentOS Linux release 7.5.1 ...

  4. 集成PHP应用和SOLR

    集成 PHP 应用和 Solr 搜索引擎 您的评价:          收藏该经验       你为什么需要搜索引擎?单纯数据库不够用?如果你只是创建小网站,数据库就够了.但当你创建中性或大型应用的时 ...

  5. javascript入门教程01

    1.javascript中变量的声明和赋值的三种方式 (1)先声明后赋值 var width; width=5; (2)同时声明和赋值变量 var width=5; var x,y,z=10; (3) ...

  6. GSS系列题解——最大子段和系列

    开坑啦! 2019 3/28 以前一直不知道怎么搞最大子段和,如今终于可以学习,其实真的很简单啊. 2019 3/29 树链剖分上最大子段和也OK啦 前置技能:线段树 题目大意:询问区间[l,r]的最 ...

  7. idea设置自带的maven为国内镜像

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/panchang199266/articl ...

  8. 吴裕雄--天生自然数据结构与算法:java代码实现常用数据结构——链表Linked List

    class Node{ // 定义节点类 private String data ; // 保存节点内容 private Node next ; // 表示保存下一个节点 public Node(St ...

  9. python爬虫(五) ProxyHandler处理器

    ProxyHandler处理器 一.如果我们在一段时间内用某个ip地址访问了一个网站次数过多,网站就检测到不正常,就会禁止这个ip地址的访问.所以我们可以设置一些代理服务器,每段时间换个代理,就算ip ...

  10. hexo 安装和部署

    因为投递论文需要个人网站,所以今天又来了一次hexo 安装和部署. 参考官方文档:https://hexo.io/zh-cn/docs/ git是需要的哈.自行安装 node需要大于8.10 node ...