package com.intepower.mysqldemo.demo.dao;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.intepower.mysqldemo.demo.utils.CommUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.BatchPreparedStatementSetter;
import org.springframework.jdbc.core.CallableStatementCallback;
import org.springframework.jdbc.core.CallableStatementCreator;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;
import java.sql.CallableStatement;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.Types;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
@Repository
public class Dao implements IDao {
@Lazy
@Autowired
private JdbcTemplate jdbcTemplate;
/** The Table name to access */
private String tableName="";
public Dao()
{}
public void setTableName(String tableName)
{
String prex="";//=Global.sysConfig.getTableprex();
this.tableName=(prex == null ||prex.equals("")?tableName:prex+tableName);
}
/**
* Query recode by specified id.
* @return
*/
@Override
public List<Map<String, Object>> select() {
return this.jdbcTemplate.queryForList(
"select * from "+tableName);
}
/**
* Query all recodes.
* @param fields Fields list(with comma to split)
* @param orderClause Order Clause,ex:id,name desc
* @return List
*/
@Override
public List<Map<String, Object>> select(String fields,String orderClause) {
String fld,ord="";
if(fields==null||fields.equals("")||fields.isEmpty())
fld="*";
else
fld=fields;
if(orderClause!=null&&orderClause.equals("")&&orderClause.isEmpty())
ord=" ORDER BY "+orderClause;
return this.jdbcTemplate.queryForList("select "+fld+" from "+tableName+ord);
}
/**
* Query recode by specified id.
* @param fields Fields list(with comma to split)
* @param id
* @return
*/
@Override
public List<Map<String, Object>> select(int id,String fields) {
String fld,ord="";
if(fields==null||fields.equals("")||fields.isEmpty())
fld="*";
else
fld=fields;
return this.jdbcTemplate.queryForList(
"select "+fld+" from "+tableName+" where id=?",id);
}
/**
* Query recodes by where clause.
* @param fields Fields list(with comma to split)
* @param orderClause Order Clause,ex:id,name desc
* @param where
* @return
*/
@Override
public List<Map<String, Object>> select(String fields,Map<String,Object> where,String orderClause) {
String fld,ord="";
if(fields==null||fields.equals("")||fields.isEmpty())
fld="*";
else
fld=fields;
if(orderClause!=null&&orderClause.equals("")&&orderClause.isEmpty())
ord=" ORDER BY "+orderClause;
List<Object> params=new ArrayList<Object>();
String str="";
for (Map.Entry<String, Object> entry : where.entrySet()) {
str=(str==""?"":" AND ")+entry.getKey()+"=?";
params.add(entry.getValue());
}
String sql="select "+fld+" from "+tableName+" where "+str+ord;
return this.jdbcTemplate.queryForList(sql, params.toArray());
}
/**
* Query recode by specified id.
* @param fields Fields list(with comma to split)
* @param orderClause Order Clause,ex:id,name desc
* @param where String of where, like "name='Li' AND age>20"
* @return
*/
@Override
public List<Map<String, Object>> select(String fields,String where,String orderClause) {
String fld,ord="",w="";
if(fields==null||fields.equals("")||fields.isEmpty())
fld="*";
else
fld=fields;
if(orderClause!=null && !orderClause.equals("") && !orderClause.isEmpty())
ord=" ORDER BY "+orderClause;
if(where!=null && !where.equals("") && !where.isEmpty())
w=" WHERE "+where;
return this.jdbcTemplate.queryForList(
"select "+fld+" from "+tableName + w + ord);
}
/**
* 是否存在记录
* @param where where clause
* @return
*/
@Override
public boolean exists(String where)
{
int n=this.count(where);
return n>0;
}
/**
* Query recode by specified id.
* @param fields Fields list(with comma to split)
* @param orderClause Order Clause,ex:id,name desc
* @param where String of where, like "name='Li' AND age>20"
* @return
*/
@Override
public List<Map<String, Object>> select(String fields,String where,String orderClause,int page,int limit) {
String fld,ord="",w="";
if(fields==null||fields.equals("")||fields.isEmpty())
fld="*";
else
fld=fields;
if(orderClause!=null && !orderClause.equals("") && !orderClause.isEmpty())
ord=" ORDER BY "+orderClause;
if(where!=null && !where.equals("") && !where.isEmpty())
w=" WHERE "+where;
String sql="select "+fld+" from "+tableName+w+ord;
sql += " LIMIT " +(page-1) * limit ;
if(this._count<1 )
this.count(where);
if(this._count>page*limit)
sql+="," + limit;
else
sql+="," +(this._count-(page-1) * limit);
return this.jdbcTemplate.queryForList(sql);
}
private int _count=-1;
/**
* Get count
* @param where where cluase
* @return
*/
public int count(String where)
{
int cnt=0;
String sql="SELECT COUNT(*) count FROM "+this.tableName+(where!=null && where!=""?" WHERE "+where:"");
List<Map<String, Object>> rows=this.jdbcTemplate.queryForList(sql);
if(rows!=null && rows.size()>0)
cnt=Integer.parseInt(rows.get(0).get("count").toString());
this._count=cnt;
return cnt;
}
/**
* Delete recode by specified id.
*
* @param id
* @return
*/
@Override
public boolean delete(int id) {
int rows= jdbcTemplate.update("DELETE FROM "+this.tableName+" WHERE ID = ?",id);
return rows>0;
}
/**
* Delete all recodes in id list.
*
* @param ids
* @return
*/
@Override
public boolean delete(List<Integer> ids) {
return false;
}
/**
* Delete all recodes by where clause.
*
* @param where
* @return
*/
@Override
public boolean delete(String where) {
if(where==null || where.equals("")) return false;
int rows= jdbcTemplate.update("DELETE FROM "+this.tableName+" WHERE "+where);
return rows>0;
}
/**
* Create a recode by json string.
*
* @param json
* @return The id of the created recode.
* @apiNote The json may not include id key. If has, it must is 0.
*/
@Override
public int create(String json) {
SqlStatement ss=this.jsonToSqlStatement(json);
jdbcTemplate.update(ss.getSql(),ss.getParams());
return 0;
}
/**
* Update a recode by json string.
*
* @param json
* @return
* @apiNote The json must has id k-v,and id must GT 0.
*/
@Override
public boolean update(String json) {
SqlStatement ss=this.jsonToSqlStatement(json);
jdbcTemplate.update(ss.getSql(),ss.getParams());
return true;
}
/**
* Insert or Update by id's value in json.
*
* @param json
* @return
* @apiNote If id's value is 0, then Insert. Otherwise, updat
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
springboot+jdbctemplate+mysql示例 (114个子文件)
Dao.class 14KB
WebServiceApi.class 6KB
ApiBase.class 4KB
CommUtil.class 4KB
ErrorCode.class 3KB
IDao.class 2KB
JsonHelper.class 2KB
Dao$1.class 2KB
Dao$2.class 2KB
ResponseMessage.class 1KB
Dao$3.class 1KB
MySession.class 1KB
Global.class 1KB
SqlStatement.class 833B
Dao$5.class 785B
DemoApplication.class 784B
Dao$4.class 770B
DemoApplicationTests.class 646B
DaoApiBase.class 321B
mvnw.cmd 6KB
.gitignore 277B
mysql_demo.iml 8KB
maven-wrapper.jar 47KB
Dao.java 16KB
WebServiceApi.java 6KB
MavenWrapperDownloader.java 5KB
ApiBase.java 4KB
IDao.java 4KB
CommUtil.java 3KB
ErrorCode.java 2KB
JsonHelper.java 2KB
ResponseMessage.java 1KB
MySession.java 880B
Global.java 798B
SqlStatement.java 454B
DemoApplication.java 449B
DemoApplicationTests.java 352B
DaoApiBase.java 199B
HELP.md 440B
mvnw 9KB
application.properties 357B
application.properties 355B
maven-wrapper.properties 116B
workspace.xml 31KB
uiDesigner.xml 9KB
pom.xml 2KB
Maven__org_springframework_boot_spring_boot_test_autoconfigure_2_1_3_RELEASE.xml 769B
Maven__org_springframework_boot_spring_boot_starter_freemarker_2_1_3_RELEASE.xml 769B
Maven__org_springframework_boot_spring_boot_starter_logging_2_1_3_RELEASE.xml 748B
Maven__org_springframework_boot_spring_boot_starter_tomcat_2_1_3_RELEASE.xml 741B
Maven__org_springframework_boot_spring_boot_autoconfigure_2_1_3_RELEASE.xml 734B
Maven__com_fasterxml_jackson_module_jackson_module_parameter_names_2_9_8.xml 729B
Maven__org_springframework_boot_spring_boot_starter_jdbc_2_1_3_RELEASE.xml 727B
Maven__org_springframework_boot_spring_boot_starter_test_2_1_3_RELEASE.xml 727B
Maven__org_springframework_boot_spring_boot_starter_json_2_1_3_RELEASE.xml 727B
Maven__org_springframework_boot_spring_boot_starter_web_2_1_3_RELEASE.xml 720B
Maven__com_vaadin_external_google_android_json_0_0_20131108_vaadin1.xml 700B
Maven__org_springframework_spring_context_support_5_1_5_RELEASE.xml 693B
Maven__org_springframework_boot_spring_boot_starter_2_1_3_RELEASE.xml 692B
Maven__com_fasterxml_jackson_datatype_jackson_datatype_jsr310_2_9_8.xml 688B
Maven__org_hibernate_validator_hibernate_validator_6_0_14_Final.xml 681B
Maven__com_fasterxml_jackson_datatype_jackson_datatype_jdk8_2_9_8.xml 674B
Maven__org_springframework_boot_spring_boot_test_2_1_3_RELEASE.xml 671B
Maven__org_apache_tomcat_embed_tomcat_embed_websocket_9_0_16.xml 660B
Maven__org_springframework_spring_expression_5_1_5_RELEASE.xml 658B
compiler.xml 647B
Maven__com_fasterxml_jackson_core_jackson_annotations_2_9_0.xml 644B
Maven__org_springframework_spring_context_5_1_5_RELEASE.xml 637B
Maven__org_springframework_boot_spring_boot_2_1_3_RELEASE.xml 636B
Maven__org_springframework_spring_webmvc_5_1_5_RELEASE.xml 630B
Maven__org_apache_tomcat_embed_tomcat_embed_core_9_0_16.xml 625B
Maven__org_springframework_spring_beans_5_1_5_RELEASE.xml 623B
Maven__com_fasterxml_jackson_core_jackson_databind_2_9_8.xml 623B
Maven__org_springframework_spring_core_5_1_5_RELEASE.xml 616B
Maven__org_springframework_spring_jdbc_5_1_5_RELEASE.xml 616B
Maven__org_springframework_spring_test_5_1_5_RELEASE.xml 616B
Maven__javax_validation_validation_api_2_0_1_Final.xml 611B
Maven__org_apache_tomcat_embed_tomcat_embed_el_9_0_16.xml 611B
Maven__javax_annotation_javax_annotation_api_1_3_2.xml 611B
Maven__org_springframework_spring_aop_5_1_5_RELEASE.xml 609B
Maven__org_springframework_spring_web_5_1_5_RELEASE.xml 609B
Maven__org_springframework_spring_jcl_5_1_5_RELEASE.xml 609B
Maven__org_apache_logging_log4j_log4j_to_slf4j_2_11_2.xml 608B
Maven__org_jboss_logging_jboss_logging_3_3_2_Final.xml 608B
Maven__org_springframework_spring_tx_5_1_5_RELEASE.xml 602B
Maven__com_fasterxml_jackson_core_jackson_core_2_9_8.xml 595B
Maven__net_bytebuddy_byte_buddy_agent_1_9_10.xml 578B
Maven__mysql_mysql_connector_java_8_0_15.xml 574B
Maven__org_apache_logging_log4j_log4j_api_2_11_2.xml 573B
Maven__ch_qos_logback_logback_classic_1_2_3.xml 568B
Maven__org_hamcrest_hamcrest_library_1_3.xml 553B
Maven__ch_qos_logback_logback_core_1_2_3.xml 547B
Maven__com_jayway_jsonpath_json_path_2_4_0.xml 546B
Maven__net_minidev_accessors_smart_1_2.xml 542B
Maven__org_mockito_mockito_core_2_23_4.xml 542B
Maven__org_assertj_assertj_core_3_11_1.xml 542B
Maven__org_freemarker_freemarker_2_3_28.xml 540B
Maven__org_skyscreamer_jsonassert_1_5_0.xml 537B
Maven__net_bytebuddy_byte_buddy_1_9_10.xml 536B
Maven__org_xmlunit_xmlunit_core_2_6_2.xml 535B
共 114 条
- 1
- 2
资源评论
lixilin
- 粉丝: 12
- 资源: 37
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功