2019独角兽企业重金招聘Python工程师标准>>>

1.通过xml配置查询条件

<select><select_web value="select * from web t where t.id=? and t.name=?" ><param value="1">id</param><param value="2">name</param></select_web></select>

加一点命名规则例如我数据库了里面的字段是 leave_msg

bean的字段就是leaveMsg

复杂的类型还没弄,只搞了个字符串

2.通过反射就可以统统执行了update、delete、insert了

/*** 普通的sql执行 判断sql的标准是是数字 默认最大参数个是小于10* * @param sqlMsg* @param obj*/public boolean execSql(Map<String, String> sqlMsg, Object obj) {if (null != sqlMsg) {String sql = "";// 获取sql  重新填充值for (String s : sqlMsg.keySet()) {if (!s.matches("\\d{1}")) {sql = s;sqlMsg.remove(s);// 移除这个key值//break;}else{if(null==obj)continue;String key=s;String value=sqlMsg.get(s);try {Field field=obj.getClass().getDeclaredField(s);//属性权威私有value=field.get(obj).toString();sqlMsg.put(key, value);} catch (Exception e) {logger.info("执行sql:"+sql+"参数装配的时候,异常了。"+e);} }}if(null==sql||"".equals(sql)){logger.info("执行sql为空!");return false;}int count=-1;PreparedStatement psState=null;try {psState = this.con.prepareStatement(sql);logger.info("执行的SQL为:"+sql);int countParam=sqlMsg.size();for(int i=1;i<=countParam;i++){psState.setString(i, sqlMsg.get(String.valueOf(i)));}count=psState.executeUpdate();con.commit();//事务提交psState.close();} catch (SQLException e) {try {con.rollback(); //回滚if(null!=psState)psState.close();//执行关闭} catch (SQLException e1) {logger.info("事务回滚失败了" + e);}logger.info("在执行sql的时候异常了\n" + e);}return count==-1?false:true;}return false;}

3.通过发射装配下select

if(rs.next()){ //有数据ResultSetMetaData msd=rs.getMetaData();for(int i=0;i<msd.getColumnCount();i++){String columnName=msd.getColumnName(i);int type=msd.getColumnType(i);switch(type){case Types.VARCHAR:break;case Types.DATE:break;}}}

可以获取查询列的属性,名称,类型-》去装配这个obj

单条查询;

多条根据查询的结果可以反复组装

简单的数据类型应该还是好组装的,复杂类型有点困难了这里也不考虑哈哈

4.做一个简单的池子

1.池子在一个list里面;放着数据库链接的对象,对象有上面的工具类

private String username;private String password;private String url;private String num;//编号private Connection con;private int status; // 0:free 其他 被使用

2.初始化的时候实例这个list;

3.获取 数据库链接对象 更具状态来

4.不够用就会涉及到添加进这个池子,并且操作完要摧毁的操作了(新添加是是从新实例化还是,克隆一个类的?)

5.够用直接通过状态获取(用完了该状态);

判断直接通过编号来

转载于:https://my.oschina.net/findurl/blog/305183

写个自己用的jdbc 简单框架相关推荐

  1. 缓冲运动之框架開始一级简单框架实例

    ***********************缓冲运动[框架開始]-1.html********************************************* <!DOCTYPE h ...

  2. java 简单 框架_java简单框架设计

    设计框架包可以作为一个工具给大家用,需要有完全不同设计思路给出来,不同于我们去做一个web服务.网站. 或者一个业务微服务,需要从原来使用视角转换成一个构建者视角. 框架或者工具,更多是框架来管理或者 ...

  3. ssm框架简单框架流程

    ssm框架简单框架流程 1.框架搭建步骤 一:mybatis部分 1.建实体类(pojo层):起名类名与表名一致,但类开头大写:如数据库某表books,类名Books 2.写接口进行一些业务操作(da ...

  4. Unity 客户端简单框架(手游)

    一.说明 这是我对之前做的几款游戏重构的一套简单框架(当然存在借鉴成分),因为此前做的都是偏向2D游戏,因为框架主要是以分模块跟MVC为主,战斗要看具体游戏,而且本人也没有做过战斗特别复杂的游戏,也很 ...

  5. 《预训练周刊》第29期:Swin Transformer V2:扩大容量和分辨率、SimMIM:用于遮蔽图像建模的简单框架...

    No.29 智源社区 预训练组 预 训 练 研究 观点 资源 活动 关于周刊 本期周刊,我们选择了10篇预训练相关的论文,涉及图像处理.图像屏蔽编码.推荐系统.语言模型解释.多模态表征.多语言建模.推 ...

  6. python写好的代码怎么给别人使用-10分钟学会用python写游戏!Python其实很简单!...

    原标题:10分钟学会用python写游戏!Python其实很简单! Python现在非常火,语法简单而且功能强大,很多同学都想学Python!所以在这里给各位看官们准备了高价值Python学习视频教程 ...

  7. SpringMVC+Thymeleaf +HTML的简单框架

    SpringMVC+Thymeleaf +HTML的简单框架 一.问题 项目中需要公众号开发,移动端使用的是H5,但是如果不用前端框架的话,只能考虑JS前端用ajax解析JSON字符串了.今天我们就简 ...

  8. 用Python代码自己写Python代码,竟如此简单

    用Python代码自己写Python代码,竟如此简单 Python作为一门功能强大且使用灵活的编程语言,可以应用于各种领域,具有"无所不能"的特质. Python甚至可以代替人,自 ...

  9. G++ 4.4.7 无法编译模板程序,Vs可以,和解?智者尾部留言,本人第一次使用vs pro,通常并且习惯在linux下写些小东西,虽然程序简单;...

    G++ 4.4.7 无法编译模板程序,Vs可以,和解?智者尾部留言,本人第一次使用vs pro,通常并且习惯在linux下写些小东西,虽然程序简单; vs 模板编译运行Ok \ linux g++ 4 ...

最新文章

  1. Horizon Is Easy, Horizon Is Complex
  2. Vue 脚手架生成的项目结构分析||Vue 脚手架的自定义配置
  3. MDK:assert_param函数未定义的错误:Error: L6218E
  4. 标准缺失成发展阻碍 智能家居普及之路任重而道远
  5. 简历中的项目如何体现实战能力? 如何有技巧地描述你做过的 project?
  6. 家里路由器如何共享同一个ip
  7. C#中的事件和委托(续)
  8. Leetcode(11)-盛最多水的容器
  9. SSM+Maven+Dubbo+Zookeeper简单项目实战以及易错注意点
  10. jquery-表格的增删编辑演练-有一个小bug的
  11. c++循环执行一个函数_javascript的五种循环,作为程序员,要根据场景和性能作出选择
  12. CV Code | 计算机视觉开源周报 20190505期
  13. SQL常用的几个窗口函数
  14. MYSQL执行计划EXPLAIN
  15. 计算机网络流媒体播放,流媒体播放方式包含以下哪几种方式
  16. 机器学习实战系列(六):Adaboost提升法
  17. 【笔记】Yale博弈论第一课
  18. Fastjson解析嵌套Map例子
  19. 电信光猫F652破解经验谈
  20. python ipo模型是什么意思_IPO里的估值模型是什么情况?

热门文章

  1. TUXEDO配置常见问题及解决方法
  2. JSON对象中的JSONObject和JSONArray以及与Map、String、数组的转化
  3. SQL 两张结构一样的表合并查询
  4. Java9 新特性 详解
  5. android学习1:初识Activity
  6. 关于Oracle的提示详解(1)
  7. [译]Windows 服务用户帐户
  8. 在JavaScript中操作Cookie
  9. Linux 命令(104)—— crontab 命令
  10. C++ new与delete的使用规范