• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

newbie-jdbc: Newbie JDBC

原作者: [db:作者] 来自: 网络 收藏 邀请

开源软件名称:

newbie-jdbc

开源软件地址:

https://gitee.com/chyxion/newbie-jdbc

开源软件介绍:

#Newbie JDBCNewbie JDBC is a simple JDBC tool, It supports array parameters expanding, connection sharing, transaction, pagination and so on.

Usage

Add Maven Dependency

<dependency>    <groupId>me.chyxion</groupId>    <artifactId>newbie-jdbc</artifactId>    <version>0.0.2-RELEASE</version></dependency>

Use In Code

Create Newbie JDBC Object

// init datasource, here use DruidDataSource as demoDruidDataSource datasource = null;datasource = new DruidDataSource();datasource.setUrl("jdbc:mysql://127.0.0.1/demo");datasource.setUsername("root");datasource.setPassword("password");datasource.init();// create NewbieJdbc objectNewbieJdbc jdbc = new NewbieJdbcImpl(datasource);

Basic Query

// count of usersint count = jdbc.findValue(    "select count(1) from users");    // find name of user id is 2008110101String name = jdbc.findValue(	"select name from users where id = ?", 	"2008110101");// find names of user id is 101 or 102// 0. array as paramsList<String> names = jdbc.listValue(	"select name from users where id in (?)", 	"101", "102");	// 1. collection as paramsnames = jdbc.listValue(    "select name from users where id in (?)", 	Arrays.asList("101", "102"));	// 2. map as paramsMap<String, Object> params =     new HashMap<String, Object>();params.put("id", Arrays.asList("101", "102"));// or: // params.put("id", new String[] {"101", "102"});names = jdbc.listValue(	"select name from users where id in (:id)", 	params);	// find user of id is 101Map<String, Object> mapUser = jdbc.findMap(	"select id, name, gender from users where id = ?", "101");// list users of age is 24List<Map<String, Object>> listUsers = jdbc.listMap(	"select id, name, gender from users where age = ?", 24);

Advance Query

// find id and name as a string arrayString[] idAndName = jdbc.findOne(new Ro<String[]>() {        public String[] exec(ResultSet rs) throws SQLException {            return new String[] {                rs.getString("id"),                 rs.getString("name")};        }	},	"select id, name from users where id = ?", 	"101");	// find names of gender is MString names = jdbc.list(new Ro<String>() {        public String exec(ResultSet rs) throws SQLException {            return rs.getString("name");        }    },     "select name from users where gender = ?",     "M");// find name of user id is 101, same as findValueString name = jdbc.query(new Ro<String>() {	public String exec(ResultSet rs) throws SQLException {			return rs.next() ? rs.getString(1) : null;		}	}, 	"select name from users where id = ?", 	"101");	// list users of gender F offset 10 limit 16List<Map<String, Object>> users =	jdbc.listMapPage(	   "select * from users where gender = ?", 		Arrays.asList(new Order("date_created", Order.DESC)), 		10, 16, "F");

Insert And Update

// insert oneMap<String, Object> mapUser = new HashMap<String, Object>();mapUser.put("id", "103");mapUser.put("name", "Shaun Chyxion");mapUser.put("gender", "M");mapUser.put("date_created", new Date());jdbc.insert("users", mapUser);// insert batchCollection<Collection<?>> users =     Arrays.<Collection<?>>asList(        Arrays.<Object>asList("104", "Xuir", "F", new Date()),         Arrays.<Object>asList("105", "Sorina Nyco", "F", new Date()),         Arrays.<Object>asList("106", "Gemily", "F", new Date()),         Arrays.<Object>asList("107", "Luffy", "M", new Date()),         Arrays.<Object>asList("108", "Zoro", "M", new Date()),         Arrays.<Object>asList("109", "Bruck", "M", new Date()));jdbc.insert("users",     Arrays.asList("id", "name", "gender", "date_created"),     args, 3);// update gender to F of user 102jdbc.update("update users set gender = ? where id = ?", "F", "102");

Reusble Connection And Transaction

// find user of id is 101 and books uses same connectionMap<String, Object> mapUserWithBooks = jdbc.execute(new Co<Map<String, Object>>() {	@Override    protected Map<String, Object> run() throws SQLException {        String userId = "101";        Map<String, Object> mapRtn = findMap(            "select * from users where id = ?", userId);        mapRtn.put("books",             listMap("select * from books where user_id = ?",                 userId));        return mapRtn;    }});	// execute transactionMap<String, Object> mapUser = jdbc.executeTransaction(new Co<Map<String, Object>>() {    @Override    protected Map<String, Object> run() throws SQLException {        update("delete users where id = ?", "104");        update("update users set age = ? where id = ?", 24, "103");        return findMap("select * from users where id = ?", 106);    }});

Execute SQL

// create table usersjdbc.execute(	"create table users (" + 	"id varchar(36) not null, " + 	"name varchar(36) not null, " + 	"primary key (id))");	

Customize Newbie JDBC

// create table usersCustomResolver customResolver = new CustomResolver() {    // set StringBuilder as String    public void setParam(PreparedStatement ps,             int index, Object param)            throws SQLException {        if (param instanceof StringBuilder) {            ps.setString(index, param.toString());        }        else {            ps.setObject(index, param);        }    }        // read CLOB as String    public Object readValue(ResultSet rs, int index)             throws SQLException {        Object valueRtn = null;        if (Types.CLOB == rs.getMetaData().getColumnType(index)) {            valueRtn = rs.getClob(index).toString();        }        else {            valueRtn = rs.getObject(index);        }        return valueRtn;    }        // use MySQLCompatiblePaginationProcessor to paginate    public PaginationProcessor getPaginationProcessor(            Connection conn) {        return new MySQLCompatiblePaginationProcessor();    }};jdbc = new NewbieJdbcSupport(dataSource, customResolver);	

Contacts

[email protected]


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap