怎么用多个数据库connection

怎么用多个数据库connection,第1张

1、onfig.php文件

'LOAD_EXT_CONFIG' =>'db,db_config',

// 加载扩展配置文件。多个文件用逗号分隔

//其中db.php中放置的是mysql的配置

//db_config放置的是sqlserver的配置

2、其中db.php内容如下

return array(

'DB_TYPE'=>'mysql',

'DB_HOST'=>'localhost',

'DB_NAME'=>'your_mysql_dbname',

'DB_USER'=>'your_mysql_user_name',

'DB_PWD'=>'123456',

'DB_PORT'=>'3306',

'DB_PREFIX'=>'',

)

db_config.php内容如下

return array(

'DB_CONFIG1' =>array(

'db_type' =>'pdo',

'db_user' =>'XX',

'db_pwd' =>'XXXXXXXX',

'DB_DSN' =>'sqlsrv:Server=XXXXXXDatabase=XXXX',

),

)

3、在Lib/Model下新建一个专门的模型

class SqlsrvModel extends Model {

protected $connection = 'DB_CONFIG1'

}

4、可以在Action中调各个模型了

Connection是建立与数据库的链接,Statement算是一个连接的实例,用来执行SQL语句,ResultSet是查询后得到的结果集,得到结果后必须执行.next()方法

给你个我刚写的例子,区别很好理解的,我一般都用Statement,这是第一次用PreraredStatement   只不过是在后面赋值而已

public class Test {

 public static void main(String[] args){

  String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"

  String dbURL = "jdbc:sqlserver://localhost:1433  DatabaseName=LIBRARY"

  String userName = "sa"

  String userPwd = ""

  Connection dbConn

  Statement stmt

  PreparedStatement ps

  try {

   Class.forName(driverName)

   dbConn = DriverManager.getConnection(dbURL, userName, userPwd)

   stmt = dbConn.createStatement()

   ResultSet rs1 = stmt.executeQuery("select *from borrow where uno = 2011111276")

   System.out.println("statement:")

   while (rs1.next()) {

    System.out.println(rs1.getString(1)+"  "+ rs1.getString(2))

   }

   

   

   

   ps = dbConn.prepareStatement("select *from borrow where uno = ?")

//注意这句

   ps.setString(1, "2011111276")

   ResultSet rs2 = ps.executeQuery()

   System.out.println("preparedstatement:")

   while (rs2.next()) {

    System.out.println(rs2.getString(1)+"  "+ rs2.getString(2))

   }

  } catch (Exception e) {

   e.printStackTrace()

  }

 }

}

数据库连接池与JDBC的区别如下:

1、理念方面的区别:

数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库 *** 作的性能。

JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序,同时,JDBC也是个商标名。

2、原理不同:

与数据库建立连接的标准方法是调用DriverManager.getConnection方法。该方法接受含有某个URL的字符串。DriverManager类(即所谓的JDBC管理层)将尝试找到可与那个URL所代表的数据库进行连接的驱动程序。DriverManager类存有已注册的Driver类的清单。当调用方法getConnection时,它将检查清单中的每个驱动程序,直到找到可与URL中指定的数据库进行连接的驱动程序为止。Driver的方法connect使用这个URL来建立实际的连接。

连接池基本的思想是在系统初始化的时候,将数据库连接作为对象存储在内存中,当用户需要访问数据库时,并非建立一个新的连接,而是从连接池中取出一个已建立的空闲连接对象。使用完毕后,用户也并非将连接关闭,而是将连接放回连接池中,以供下一个请求访问使用。而连接的建立、断开都由连接池自身来管理。同时,还可以通过设置连接池的参数来控制连接池中的初始连接数、连接的上下限数以及每个连接的最大使用次数、最大空闲时间等等。也可以通过其自身的管理机制来监视数据库连接的数量、使用情况等。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9913919.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存