代码片段

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. 【PAT甲级】1041 Be Unique (20 分)(多重集)

    题意: 输入一个正整数N(<=1e5),接下来输入N个正整数.输出第一个独特的数(N个数中没有第二个和他相等的),如果没有这样的数就输出"None". AAAAAccepte ...

  2. Android 华为推送库下载不了

    问题:华为库下载不了,导致gradle同步失败 解决: 去掉华为推送在线下载相关代码,将在线下载修改为离线加载aar库 1.通过Maven 仓库离线包下载地址下载关于推送的包: http://deve ...

  3. 全局注册Vue.directive

    1.src目录下新建directives文件 export default { install: function(Vue, option) { // 1:el指绑定的dom元素 // 2:bindi ...

  4. MySQL更改默认的root账户密码

    编辑mysql的配置文件:my.ini(在MySql安装目录下). 打开配置文件,在文件最后一行添加:skip-grant-tables,然后保存退出 意思为就是在启mysql时不启动grant-ta ...

  5. Vue日常报错

    报错信息: Error: Cannot find module 'webpack/bin/config-yargs' at Function.Module._resolveFilename (inte ...

  6. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 排版:设定文本右对齐

    <!DOCTYPE html> <html> <head> <title>菜鸟教程(runoob.com)</title> <meta ...

  7. Java面向对象编程 -1

    面向对象简介 C语言是面向过程开发的代表 C++ 或者Java 是面向对象的编程语言 所谓的面向过程指的是面对于一个问题的解决方案,更多的情况下是不会做出重用的设计思考的. 而面向对象的主要设计形式是 ...

  8. HDU 5568:sequence2 大数+DP

    sequence2  Accepts: 93  Submissions: 358  Time Limit: 2000/1000 MS (Java/Others)  Memory Limit: 6553 ...

  9. Linux引导过程!(重点)

    1.开机自检:服务器开机后,将根据主板BIOS (基本输入系统),中的设置对CPU .内存.显卡.键盘等设备进行初步检测,并初始化部分硬件. 2.MBR 引导:当从本机硬盘中启动系统时,首先根据硬盘中 ...

  10. electron-edge-js 环境搭建

    确保nodejs环境 为 10.X  (因为edge的编译需要node对应版本的支持,太新的node不包含对应edge的编译) 1.创建工程2.使用npm init初始化程序信息3.使用npm ins ...