博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
类sqljdbc高级模板技术
阅读量:5739 次
发布时间:2019-06-18

本文共 4369 字,大约阅读时间需要 14 分钟。

每日一贴,今天的内容关键字为类sql

    1:使用之前学习的jdbc模板技术

 A:引入3个包:数据源用到的2个包:commons-dbcp.jar,commons-pool.jar
       数据库驱动包:ojdbc14.jar,mysql-connector-xx.jar
 B:创立数据库工具类:JDBCUtil.java,该类为数据库工具类,供给数据库的打开,关闭等最基本的功能
       采用设计模式:ThreadLocal
 C:创立数据库信息文件:db.properties
 D:创立数据访问异常类:DataAccessException.java,继承运行时异常,重载其构造函数
 E:创立一个映射类:DiscMapper.java,抽象出接口:RowMapper.java
 F:创立jdbc模板类:JDBCTemplate.java,该类为抽象类,里面封装了罕见的基于数据库的CRUD操作
       供给了一个抽象方法:getRowMapper(),该方法重要实现了RowMapper接口,让查询出来的字段和实体
    bean中的属性一一对应。
JDBCUtil.java

/** * 
<数据库工具类>
* @author kandy * @version [V1.00, 2013-5-3] * @see [相关类/方法] * @since V1.00 */public class JDBCUtil{ //定义数据源 private static DataSource ds; //定义当前链接的一个当地线程 private static ThreadLocal
local =new ThreadLocal
(); //初始化数据库信息 static { try { //创立Properties类文件 Properties p=new Properties(); //从用来加载类的搜索路径打开具有指定名称的资源,以读取该资源。 p.load(JDBCUtil.class.getClassLoader().getResourceAsStream("db.properties")); ds=BasicDataSourceFactory.createDataSource(p); } catch (Exception e) { e.printStackTrace(); } } //获得一个链接(Lazy模式,从线程中获得该链接,如果没有该链接,通过数据源获得连接) public static Connection getConnection() { Connection con = local.get(); if(con==null) { try { con=ds.getConnection(); } catch (SQLException e) { e.printStackTrace(); } //将该连接存入当前线程 local.set(con); } return con; } //关闭数据库链接 public static void colse(Connection con ,Statement st, ResultSet rs) { try { if(rs!=null) { rs.close(); } if(st!=null) { st.close(); } if(con!=null) { con.close(); //从线程中移除该链接 local.remove(); } } catch (SQLException e) { e.printStackTrace(); } } //关闭数据库链接 public static void close() { try { //将存放在当地线程下的链接关闭 local.get().close(); //从线程中移除该链接 local.remove(); } catch (SQLException e) { e.printStackTrace(); } } public static void main(String[] args) { Connection conn = JDBCUtil.getConnection(); System.out.println(conn); JDBCUtil.colse(conn, null, null); } }

    

    

    

 

    

    

    db.properties

 

    oracle

    driverClassName=oracle.jdbc.driver.OracleDriver

    url=jdbc\:oracle\:thin\:@10.0.5.98\:1521\:ora9

    username=wk

    password=wk

    mysql

    driverClassName=com.mysql.jdbc.Driver

    url=jdbc\:mysql\://10.0.5.98\:3306/disc_shop?Unicode\=true&&characterEncoding\=utf8

    username=root

    password=root

 

    DataAccessException.java

package com.itany.jdbc;  //创立数据访问异常类:DataAccessException.java,继承运行时异常,重载其构造函数public class DataAccessException extends RuntimeException{    public DataAccessException()    {        super();    }    public DataAccessException(String message)    {        super(message);    }    public DataAccessException(String message,Throwable cause)    {        super(message,cause);    }    public DataAccessException(Throwable cause)    {        super(cause);    }}

 RowMapper.java

/** * 
<让表中的字段和java中的属性一一对应>
* @author kandy * @version [V1.00, 2013-5-3] * @see [相关类/方法] * @since V1.00 */public interface RowMapper{ public Object mapRow(ResultSet rs )throws Exception; }

    创立jdbc模板类:JDBCTemplate.java

    每日一道理
喜马拉雅直冲霄汉,可上面有攀爬者的旗帜;撒哈拉沙漠一望无垠,可里面有跋涉者的脚印;阿尔卑斯山壁立千仞,可其中有探险者的身影;雅鲁藏布江湍急浩荡,可其中有勇敢者的故事。
/** *  * 
* * @author kandy * @version [V1.00, 2013-5-3] * @see [相关类/方法] * @since V1.00 */public abstract class JDBCTemplate{ //查询 public List query(String sql,Object ...params) { Connection con =null; PreparedStatement ps =null; ResultSet rs =null; //饿汉式 List list =new ArrayList(); try { con =JDBCUtil.getConnection(); ps=con.prepareStatement(sql); for(int i=0;i

文章结束给大家分享下程序员的一些笑话语录: IBM和波音777

  波音777是有史以来第一架完全在电脑虚拟现实中设计制造的飞机,所用的设备完全由IBM公司所提供。试飞前,波音公司的总裁非常热情的邀请IBM的技术主管去参加试飞,可那位主管却说道:“啊,非常荣幸,可惜那天是我妻子的生日,So..”..
  波音公司的总载一听就生气了:“胆小鬼,我还没告诉你试飞的日期呢!”

--------------------------------- 原创文章 By

类和sql
---------------------------------

转载地址:http://kvyzx.baihongyu.com/

你可能感兴趣的文章
大快网站:如何选择正确的hadoop版本
查看>>
经过这5大阶段,你离Java程序员就不远了!
查看>>
IntelliJ IDEA 连接数据库详细过程
查看>>
thymeleaf 学习笔记-基础篇
查看>>
PHP-X开发扩展
查看>>
android学习笔记——onSaveInstanceState的使用
查看>>
工作中如何做好技术积累
查看>>
怎么用sysLinux做U盘双PE+DOS??
查看>>
Spring Transactional
查看>>
shell脚本实例
查看>>
我的友情链接
查看>>
Windows Phone 7 隔离存储空间资源管理器
查看>>
Microsoft Excel 2000/2003修复工具
查看>>
apache安装报错undefined reference ssl
查看>>
关于爱情只有一句忠告
查看>>
CentOS 7下安装部署Oracle11g图文教程
查看>>
F#初学笔记06
查看>>
实战:将企业域名解析委派给企业DNS服务器
查看>>
在Lync 2013环境部署Office Web Apps
查看>>
微软大会Ignite,你准备好了么?
查看>>