精华内容
下载资源
问答
  • java 数据库连接工厂

    2019-09-24 04:25:43
    1、创建连接 1 package cc.whoisit; 2 3 import java.io.FileInputStream; 4 import java.sql.Connection; 5 import java.sql.DriverManager; 6 import java.util.Properties; 7 8 /** 9 * @....

    1、创建连接

     1 package cc.whoisit;
     2 
     3 import java.io.FileInputStream;
     4 import java.sql.Connection;
     5 import java.sql.DriverManager;
     6 import java.util.Properties;
     7 
     8 /**
     9  * @author 
    10  * 读取数据库配置文件
    11  */
    12 public class DBConnUtil {
    13     private static Properties prop;
    14     /**
    15      * 配置文件名
    16      */
    17     private static final String configureFileName = "config.properties";
    18     
    19     /**
    20      * 获取数据库连接
    21      * @param dbName 数据库名,与config.properties文件中的配置一至
    22      * @return 数据库连接
    23      * @throws Exception IOException,  ClassNotFoundException, SQLException
    24      */
    25     public static Connection getConnection(String dbName) throws Exception {
    26         if(prop == null){
    27             prop = new Properties();
    28             prop.load(new FileInputStream(configureFileName));
    29             String dbDriver = prop.getProperty("dbDriver");
    30             Class.forName(dbDriver);
    31         }
    32         
    33         String url = prop.getProperty(dbName);
    34         Connection conn = DriverManager.getConnection(url);
    35         return conn;
    36     }
    37 }

     

    2、连接工厂

     1 package cc.whoisit;
     2 
     3 import java.sql.Connection;
     4 
     5 /**
     6  * @author
     7  * 数据库连接工厂
     8  */
     9 public class DBFactory {
    10     /**
    11      * 获取测试库连接
    12      * @return 数据库连接
    13      * @throws Exception IOException, ClassNotFoundException,SQLException
    14      */
    15     public static Connection getTestConnect() throws Exception {
    16         Connection conn = DBConnUtil.getConnection("testDBRead");
    17         return conn;
    18     }
    19 }

     

    3、配置文件

    1 #Mysql
    2 dbDriver=com.mysql.jdbc.Driver
    3 testDBRead=jdbc:mysql://127.0.0.1:3306/test?user=root&password=&useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true

     

    4、测试

     1 package cc.whoisit;
     2 
     3 import java.sql.Connection;
     4 import java.sql.ResultSet;
     5 import java.sql.Statement;
     6 
     7 public class Test {
     8 
     9     /**
    10      * @param args
    11      */
    12     public static void main(String[] args) {
    13         // TODO Auto-generated method stub
    14         try {
    15             Connection conn = DBFactory.getTestConnect();
    16             String sql = "SELECT id, username, passwd FROM `user` LIMIT 100;";
    17             // statement用来执行SQL语句
    18             Statement statement = conn.createStatement();
    19             ResultSet result = statement.executeQuery(sql);
    20             while (result.next()) {
    21                 System.out.println("==========");
    22                 System.out.println(result.getInt("id"));
    23                 System.out.println(result.getString("username"));
    24                 System.out.println(result.getString("passwd"));
    25             }
    26 
    27             if (!conn.isClosed()) {
    28                 conn.close();
    29             }
    30 
    31         } catch (Exception e) {
    32             // TODO: handle exception
    33             e.printStackTrace();
    34         }
    35     }
    36 }

     

    转载于:https://www.cnblogs.com/Ehtan/p/4302426.html

    展开全文
  • 我看过很多数据库连接的代码,大部分都存在问题,有的甚至完全不可用,这里给出一个数据库连接工厂,给出了jdbc1和jdbc2的实现,仅供参考!public class ConnectionFactory_JDBC1{private static String url="jdbc:...

    我看过很多数据库连接的代码,大部分都存在问题,有的甚至完全不可用,这里给出一个数据库连接工厂,给出了jdbc1和jdbc2的实现,仅供参考!

    public class ConnectionFactory_JDBC1{

    private static String url="jdbc:oracle:thin:@218.12.7.35:1521:myorcl";

    private static String user="developer";

    private static String password="developer";

    static{

    try{

    Class.forName("oracle.jdbc.driver.OracleDriver");

    }

    catch(ClassNotFoundException e){

    throw new RuntimeException("无法加载数据库驱动!");

    }

    }

    static Connection getConnection() throws SQLException {

    return DriverManager.getConnection(url,user,password);

    }

    public static void closeConnection(Connection conn){

    if (conn != null) {

    try {

    conn.close();

    }

    catch (SQLException e) {

    //没有必要处理

    }

    }

    }

    }

    上面连接的是oracle数据库,当然这里用户名和密码以及url你也可以通过配置文件获得,虽然只有短短的几行

    代码,对于新手,要完全理解也不是很容易的事,如果可能尽量使用JDBC2方法。

    public class ConnectionFactory_JDBC2{

    private static String dbName="jdbc/mydb";

    private static DataSource ds;

    static{

    try{

    Context ctx=new InitialContext();

    ds = (DataSource)ctx.lookup(dbName);

    }

    catch(NamingException e){

    throw new RuntimeException("无法获得数据源!");

    }

    }

    public static Connection getConnection() throws SQLException {

    return ds.getConnection();

    }

    public static void closeConnection(Connection conn){

    if (conn != null) {

    try {

    conn.close();

    }

    catch (SQLException e) {

    //没有必要处理

    }

    }

    }

    }

    上面只是提供一个连接工厂,你必须自己关闭数据库连接,这里的closeConnection方法先判断是否为空是必要的。你也许觉得可以这样写更简洁:

    try{ conn.close();}

    catch(Exception e) {}; //同时处理了NullPointerExceptio

    个人认为这样写不好,当然这样也没有错。

    down_info.asp?id=25585

    展开全文
  • import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;...//方法工厂模式//JDBC数据库连接工厂类public class ConnectionFactory {...

    import java.sql.Connection;

    import java.sql.DriverManager;

    import java.sql.PreparedStatement;

    import java.sql.ResultSet;

    import java.sql.SQLException;

    //方法工厂模式

    //JDBC数据库连接工厂类

    public class ConnectionFactory {

    private Connection conndb=null;

    private PreparedStatement pstmt=null;

    private ResultSet rs=null;

    private final String DRIVER="com.microsoft.sqlserver.jdbc.SQLServerDriver";

    private final String URL="jdbc:sqlserver://localhost:1433;databaseName=UserInfo";

    private final String NAME="sa";

    private final String PASSWORD="sa";

    //构造方法  加载驱动

    public ConnectionFactory(){

    try {

    Class.forName(DRIVER);

    } catch (ClassNotFoundException e) {

    e.printStackTrace();

    }

    }

    //得到数据库连接

    private void getConnectionDB(){

    try {

    conndb=DriverManager.getConnection(URL,NAME,PASSWORD);

    } catch (SQLException e) {

    e.printStackTrace();

    }

    }

    //关闭数据库连接

    public void closeConnection(){

    try {

    if(rs!=null){rs.close(); }

    if(pstmt!=null){pstmt.close(); }

    if(conndb!=null){conndb.close(); }

    } catch (SQLException e) {

    e.printStackTrace();

    }

    }

    //查询数据表,并返回结果集

    public ResultSet selectSQL(String sql){

    try {

    getConnectionDB();

    pstmt=conndb.prepareStatement(sql);

    System.out.println(sql);

    rs=pstmt.executeQuery();

    } catch (SQLException e) {

    e.printStackTrace();

    }

    return rs;

    }

    //添加,修改,删除数据信息

    public int updateSQL(String sql){

    int count=0;

    try {

    getConnectionDB();

    pstmt=conndb.prepareStatement(sql);

    System.out.println(sql);

    count=pstmt.executeUpdate();

    } catch (SQLException e) {

    e.printStackTrace();

    }

    return count;

    }

    }

    展开全文
  • import com.mchange.v2.c3p0.ComboPooledDataSource;import .../*** C3p0连接池连接工厂实现类。* 配置说明:* DBMaxConnectionCount:连接池最大连接数* DBMinConnectionCount:连接池最小连接...

    import com.mchange.v2.c3p0.ComboPooledDataSource;

    import com.mchange.v2.c3p0.DataSources;

    import com.xxx.config.*;

    /**

    * C3p0连接池连接工厂实现类。

    * 配置说明:

    * DBMaxConnectionCount:连接池最大连接数

    * DBMinConnectionCount:连接池最小连接数

    * DBInitConnectionCount:连接池初始连接数

    * @author

    */

    public class C3p0ConnectionFactory extends SimpleConnectionFactory {

    private ComboPooledDataSource ds = null;

    int connectionPoolMin = 1;

    int connectionPoolSize = 3;

    int connectionPoolMax = 30;

    protected C3p0ConnectionFactory() {

    }

    /**

    * 销毁连接池

    */

    public void destroy() {

    try {

    if (ds != null)

    DataSources.destroy(ds);

    }catch(Exception ex){}

    }

    /**

    * 从连接池得到连接对象

    * @return ConnectionObject对象

    */

    public ConnectionObject getConnection() {

    try {

    ConnectionObject co = ConnectionManager.newConnectionObject();

    co.conn = ds.getConnection();

    co.createTime = System.currentTimeMillis();

    return co;

    }catch(Exception ex){

    throw new DBException(ex);

    }

    }

    /**

    * 新建连接对象

    * @return 一个新的ConnectionObject对象

    */

    public ConnectionObject newConnection() {

    return this.getConnection();

    }

    /**

    * 释放连接对象到连接池

    * @param co 将被释放的ConnectionObject对象

    */

    public void freeConnection(ConnectionObject co) {

    if (co == null) return;

    co.close();

    }

    /**

    * 关闭连接对象

    * @param co 将被关闭的ConnectionObject对象

    */

    public void closeConnection(ConnectionObject co) {

    this.freeConnection(co);

    }

    /**

    * 初始化

    * @param conf 数据库配置

    */

    public void init(Configs conf){

    super.init(conf);

    try {

    connectionPoolMin = Integer.parseInt(conf.getConfig(ConfigKeys.dbMinConnKey, "1"));

    }catch(Exception ex){}

    if (connectionPoolMin < 0)

    connectionPoolMin = 1;

    try {

    connectionPoolSize = Integer.parseInt(conf.getConfig(ConfigKeys.dbInitConnKey, "1"));

    }catch(Exception ex){}

    if (connectionPoolSize < connectionPoolMin)

    connectionPoolSize = connectionPoolMin;

    try {

    connectionPoolMax = Integer.parseInt(conf.getConfig(ConfigKeys.dbMaxConnKey, "30"));

    }catch(Exception ex){}

    if (connectionPoolMax < 0)

    connectionPoolMax = 100;

    if (connectionPoolMax < connectionPoolMin)

    connectionPoolMax = connectionPoolMin * 2;

    try {

    ds = new ComboPooledDataSource();

    ds.setDriverClass(this.driver);

    ds.setJdbcUrl(this.url);

    ds.setUser(this.user);

    ds.setPassword(this.pwd);

    ds.setInitialPoolSize(this.connectionPoolSize);

    ds.setMaxPoolSize(this.connectionPoolMax);

    ds.setMinPoolSize(this.connectionPoolMin);

    ds.setAcquireIncrement(5);

    }catch(Exception ex){

    throw new DBException(ex);

    }

    }

    }

    展开全文
  • JDBC - Java数据库连接

    2020-10-02 17:09:53
    Java数据库连接: 简介、 使用步骤、 常用类型和方法、 静态工厂方法模式、 DAO、 预编译处理、 Java操作事务、 批处理、 连接池(DataSource)。
  • Java数据库连接:JDBC简介使用步骤JDBC中常用的类型与方法1. DriverManager-驱动管理器2. Connection-数据库连接对象3. Statement-SQL执行对象4.ResultSet : 结果集对象 (指的是一个select语句的查询结果)案例:创建...
  • *其实工厂模式是用在比如数据库连接之类的地方的,生产出来的产品都是一样的,就是有个产品的父类,下面代码中我会详细解释一下每句都是干什么用的。**下面的几个类提前说明一下:*SampleFactory类:工厂类,用来...
  • Java数据库连接&笔记总结1.JDBC简介2.JDBC发展历史3.使用步骤*4.JDBC中常用的类型与方法4.1.数据库连接基础操作5.工厂方法设计模式 ( 静态工厂方法模式 )5.1.简单工厂设计模式6.DAO6.1.工厂与DAO结合案例7.SQL...
  • 数据库连接工厂

    2016-05-15 16:59:00
    package com.jikexueyuan.util; import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManager; import java.util.Properties; public class ConnectionFactory { ...
  • 在一般的java 项目 以及 现在特别火的大数据分析项目中 ,用到数据库以及数据库资源池 连接的事情 是在稀松平常不过的了 。今天就简单的梳理下 这是一个怎样的过程: 我们按照代码的调度顺序审视下 : Comment ,...
  • 数据库连接是比较耗时的操作,如果每次访问数据库都开闭一次连接的话,在大批量访问时,...DataSource对象是Connection对象的工厂,也可以认为是数据库连接池的管理员。我们的程序要通过Tomcat服务器获得数据库的连...
  • ############################################################## # 数据库连接相关配置 # #ConnectionFactoryClassName :连接工厂实现类 #ConnectionObjectClass
  • 数据源 DataSource 连接数据库 DataSource 接口是 JDBC 2.0 API 中的新增内容,它提供了连接到数据源的另一种方法。使用 DataSource 对象是连接到数据源的首选方法。 该工厂用于提供到此 DataSource 对象表示的...
  • import java.sql.Connection; import java.sql.DriverManager; import com.xxx.config.*; /** * 简单连接工厂实现类 * @author xixi */ public class Simpl
  • import com.xxx.config.*; /** * 连接工厂基类 * @author */ public abstract class ConnectionFactory { /** * 得到连接对象 * @return ConnectionObjec
  • import com.mchange.v2.c3p0.ComboPooledDataSource; import com.mchange.v2.c3p0.DataSources; import com.xxx.config.*; /** * C3p0连接池连接工厂实现类。
  • 我假设你在java方面使用一致的方法来获取数据库连接(池化或不重要).这个想法是在连接工厂/池周围创建一个非常轻的包装类,或者它是什么.包装器将实现任何jdbc接口的意义,所以您可以将其交换为正常的连接对象,但大多数...
  • **Durid:数据库连接池实现技术,阿里巴巴公司提供的。现在比较厉害的数据库连接池** //1.导入jar包druid-1.0.9.jar ...获取数据库连接池对象:通过工厂来来获取 DruidDataSourceFactory //5. 获取连接:getConnecti...
  • java连接数据库

    2008-02-11 15:43:35
    工厂模式连接不同的数据库(Oralce.Mysql等)
  • java-druid数据库连接

    2020-09-11 21:48:25
    3.获取数据库连接池对豫:通过工厂来来获取DruidDatasourceFactory 4.获取连接: getConnection druid.properties配置文件 driverClassName=com.mysql.cj.jdbc.Driver url=jdbc:mysql://localhost:3306/db3?useSSL...
  • 连接池 javax.sql.Datasource数据库连接池 具体是实现由厂商提供,跟JDBC一样,必须导入jar包,这样以后就不用每次都有DriverManager创建连接了,而且这个连接池是针对这个数据库而定义的一个工厂,也就是必须初始化...
  • 工厂模式实现多种数据库连接

    千次阅读 2017-05-16 14:51:52
    package Factoryproduct; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement;... //数据库连接方法 public Connection Link
  • Java工厂模式JDBC连接数据库的方式

    千次阅读 2014-08-18 17:41:00
    JAVA也有一段时间了,对于
  • JAVA数据库工具类

    2011-04-01 23:50:04
    数据库工具类,采用的DBCP的连接池。并且采用了Google公司的工程师Bob Lee写的新的懒汉单例模式来构造连接工厂。并将获取到的数据库连接绑定到当前线程中。这样可以有效的防止申请连接的滥用。
  • //1)使用工厂类来创建dbcp连接池对象(读取配置文件方式) Properties prop = new Properties(); //使用类路径读取配置文件 InputStream in = Demo1.class.getResourceAsStream("/jdbc.properties"); //加载配置文件...
  • import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public class ConnectionFactory { private static ConnectionFactory factory =new ConnectionFact

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 524
精华内容 209
关键字:

java数据库连接工厂

java 订阅