mysql常用连接方式

mysql常用连接方式
mysql常用连接方式

**************************mysql数据库常用连接方式*****************************

//做好前提工作:比如打入连库的jar包。

//前三种连接方式可以参考本文件下struts之mysql连接参考.jar包中的例子(自写的)。

(一.)JDBC连接数据库。

public class DBConnection {

static final String driver = "com.mysql.jdbc.Driver" ;

static final String url = "jdbc:mysql://localhost:3306/student" ;

Connection conn = null ;

public Connection getConnection() {

try {

Class.forName(driver);//加载驱动类。

conn = DriverManager.getConnection(url,"root","root") ;//获得一个数据的物理连接。

} catch (ClassNotFoundException e) {

e.printStackTrace();

} catch (SQLException e) {

e.printStackTrace();

}

return conn ;

}

}

(二.)通过配置数据源连接数据库。

i>配置方法:启动Tomcat-->IE-->admin(登录权限)-->选项目-->DataScources-->右key-Create New DataSource-->配置相应参数。

ii>使用方法:Context initcx=new InitialContext();

Context envctx=(Context)initcx.lookup("java:comp/env");//绑定名是固定的。

DataSource ds=(DataSource)envctx.lookup("jdbc/mysql");

Connection con=ds.getConnection();

iii>使用位置:Servlet,Jsp,Struts中;也可以封装在java类中在上面三种组件中调用,直接在java类中使用好像不好使。

要求:熟练使用。

(三.)Struts中使用配置数据源。

i>配置位置:struts-config.xml中

//key名为数据源的引用名,自己定义的。

//驱动类。

/>

ii>使用方法:ServletContext context=this.servlet.getServletContext();

DataSource ds=(DataSource)context.getAttribute("strutsDB");//此key名为上面的数据源引用名。

Connection con=ds.getConnection();

iii>使用位置:通常是在struts中的Action中使用,如果封装到类必须拿到ServletContext对象。(可以以入参的方式传入)

(四.)Hibernate中连接数据库。

(五.)JNDI+数据源。

数据库连接池的好处

数据库连接池的好处.txt-//自私,让我们只看见自己却容不下别人。如果发短信给你喜欢的人,他不回,不要再发。看着你的相片,我就特冲动的想P成黑白挂墙上!有时,不是世界太虚伪,只是,我们太天真。数据库连接池的好处 对于一个简单的数据库应用,由于对于数据库的访问不是很频繁。这时可以简单地在需要访问数据库时,就新创建一个连接,用完后就关闭它,这样做也不会带来什么明显的性能上的开销。但是对于一个复杂的数据库应用,情况就完全不同了。频繁的建立、关闭连接,会极大的减低系统的性能,因为对于连接的使用成了系统性能的瓶颈。 连接复用。通过建立一个数据库连接池以及一套连接使用管理策略,使得一个数据库连接可以得到高效、安全的复用,避免了数据库连接频繁建立、关闭的开销。 对于共享资源,有一个很著名的设计模式:资源池。该模式正是为了解决资源频繁分配、释放所造成的问题的。把该模式应用到数据库连接管理领域,就是建立一个数据库连接池,提供一套高效的连接分配、使用策略,最终目标是实现连接的高效、安全的复用。 数据库连接池的基本原理是在内部对象池中维护一定数量的数据库连接,并对外暴露数据库连接获取和返回方法。如: 外部使用者可通过getConnection 方法获取连接,使用完毕后再通过releaseConnection 方法将连接返回,注意此时连接并没有关闭,而是由连接池管理器回收,并为下一次使用做好准备。 数据库连接池技术带来的优势: 1.资源重用 由于数据库连接得到重用,避免了频繁创建、释放连接引起的大量性能开销。在减少系统消耗的基础上,另一方面也增进了系统运行环境的平稳性(减少内存碎片以及数据库临时进程/线程的数量)。 2.更快的系统响应速度 数据库连接池在初始化过程中,往往已经创建了若干数据库连接置于池中备用。此时连接的初始化工作均已完成。对于业务请求处理而言,直接利用现有可用连接,避免了数据库连接初始化和释放过程的时间开销,从而缩减了系统整体响应时间。 3.新的资源分配手段 对于多应用共享同一数据库的系统而言,可在应用层通过数据库连接的配置,实现数据库连接池技术。某一应用最大可用数据库连接数的限制,避免某一应用独占所有数据库资源。

Java中连接MySql数据库的几种方法

JDBC Java中JDBC定义了java与各种sql数据库之间的编程接口,JDBC API是一个统一的标准应用程序编程接口,这样可以屏蔽异种数据库之间的差异。 JDBC的工作原理 JDBC与ODBC(OpenData Base Connectivity,开放式数据库连接)的作用非常类似,它在应用程序和数据库之间起到了桥梁的作用。ODBC使用的特别广泛,在java中还提供了JDBC-ODBC桥,能够在JDBC与ODBC之间进行转换,这样可以通过ODBC屏蔽不同种数据库之间的差异。在JDK的包java.sql.*中定义了一系列的类、接口、异常以及这些类和接口中定义的属性和方法,java的开发人员通过一定的规则调用java.sql.*中的API就可以实现对数据库管理系统的访问。 JDBC的四种驱动 1.JDBC-ODBC Bridge JDBC-ODBC Bridge可以访问一个ODBC数据源,但在执行Java程序的机器上必须安装ODBC驱动,并作出配置,它的调用方式如下图: 因为中间有个JDBC-ODBC,所以影响了执行效率。 配置ODBC数据源的方法如下(以Mysql为例): 第一步,打开控制面板—>管理工具--->数据源(ODBC) 选择系统DSN,这一项默认应该是空的,我这里是已经配置好了一个数据源。

第二步,点击添加 第三步,选择Mysql的ODBC驱动,点击完成。 注:MySQL的ODBC驱动在系统中一般是找不到的,因为它不是系统默认自带的驱动,所以,我们要自己安装我们所需要的MySQL的ODBC驱动。安装步骤如下: ①.下载安装包,https://www.360docs.net/doc/3c4862789.html,/downloads/connector/odbc/ ②.我们下载与自己系统相应的ODBC驱动 这里我们选择

java连接mysql数据库

Java连接MySQL 数据库的正确操作流程 时间:2010-05-25 15:41 来源:博客园字体:[大中小] 以下的文章主要介绍的是Java连接MySQL 数据库(以MySQL数据库为例),我们主要是以MySQL数据库为例讲下Java正确连接MySQL数据库的实际操作流程,以下就是对其详细内容的描述。 当然,首先要安装有JDK(一般是。然后安装MySQL,这些都比较简单,具体过程就不说了。配置好这两个环境后,下载JDBC驱动(这个是最新版的)。然后将其解压缩到任一目录。我是解压到D盘,然后将其目录下的加到classpath里,具体如下: “我的电脑”-> “属性” -> “高级” -> “环境变量”,在系统变量那里编辑classpath,将D:\加到最后,在加这个字符串前要加“;”,以与前一个classpath区分开。然后确定。 环境配置好了,很简单。现在,先配置MySQL,设其用户名为“root”,密码为“root”。在命令行或用一个SQL的前端软件创建Database。 我是用SQLyog的前端软件来创建Database的。 先创接MySQL 数据库: 1.CREATE DATABASE SCUTCS; 接着,创建表: 1.CREATE TABLE STUDENT 2.( 3.SNO CHAR(7) NOT NULL, 4.SNAME VARCHAR(8) NOT NULL, 5.SEX CHAR(2) NOT NULL, 6.BDATE DATE NOT NULL, 7.HEIGHT DEC(5,2) DEFAULT , 8.PRIMARY KEY(SNO) 9.); 然后插入数据,可以用SQL语句insert into <表名> values (value1, value2, ...); 也可以用SQLyog来操作 好了,创建好了。

完整java连接数据库步骤

完整java开发中JDBC连接数据库代码和步骤 JDBC连接数据库 ?创建一个以JDBC连接数据库的程序,包含7个步骤: 1、加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过https://www.360docs.net/doc/3c4862789.html,ng.Class类的静态方法forName(String className)实现。 例如: try{ //加载MySql的驱动类 Class.forName("com.mysql.jdbc.Driver") ; }catch(ClassNotFoundException e){ System.out.println("找不到驱动程序类,加载驱动失败!"); e.printStackTrace() ; } 成功加载后,会将Driver类的实例注册到DriverManager类中。 2、提供JDBC连接的URL ?连接URL定义了连接数据库时的协议、子协议、数据源标识。 ?书写形式:协议:子协议:数据源标识 协议:在JDBC中总是以jdbc开始 子协议:是桥连接的驱动程序或是数据库管理系统名称。 数据源标识:标记找到数据库来源的地址与连接端口。 例如:(MySql的连接URL) jdbc:mysql: //localhost:3306/test?useUnicode=true&characterEncoding=gbk ; useUnicode=true:表示使用Unicode字符集。如果characterEncoding设置为 gb2312或GBK,本参数必须设置为true 。characterEncoding=gbk:字符编码方式。 3、创建数据库的连接 ?要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象,该对象就代表一个数据库的连接。 ?使用DriverManager的getConnectin(String url , String username , String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和密码来获得。 例如: //连接MySql数据库,用户名和密码都是root String url = "jdbc:mysql://localhost:3306/test" ; String username = "root" ; String password = "root" ; try{ Connection con = DriverManager.getConnection(url , username , password ) ; }catch(SQLException se){ System.out.println("数据库连接失败!"); se.printStackTrace() ; }

Java连接MySql数据库,并且实现插入、删除、更新、选择操作

天之火–Qutr的专栏 君子终日乾乾,夕惕若,厉,无咎。 Home Java连接MySql数据库,并且实现插入、删除、更新、选择操作! 这是我最近写的一个连接MySql数据库的一个例子,主要实现了插入,删除,更新,选择操作,用的环境是j2sdk1.4.2_08,Eclipse3.1。以前我的同事用Python 写了同样的类,非常的好用,支持了我们公司的大部分业务,现在我们慢慢改用Java了,所以我用Java重写了一遍。一方面在今后的业务中能够用到,另一方面熟悉一下Java。 下面我把在Eclipse3.1下怎样配置数据库连接信息简单说一下。 1.启动Eclipse3.1。 2.建立一个Java project就叫DbConnect 吧,再在该Project下建立一个新类也叫 DbConnect 吧。 3.右击DbConnect.java文件点import,选择Archive file然后选择你的 mysql-connector-java-3.1.8-bin.jar文件,点Finish。你会看到有好些文件被加载进来,OK这就是连接MySql所需的驱动信息。如果到了这里你都成功的话那么恭喜你,你已经成功一半了!:) 4.接下来把我下面的代码copy到你的Java文件中,修改相关的数据库连接信息 运行一下。OK? 我说一下那个mysql-connector-java-3.1.8-bin.jar文件,其实这就是一个MySql的驱动,各数据库厂商提供了不同的适用于JDBC的驱动使得在Java中连接数据库非常简单。这里我就不多说了,以后我会写篇专门介绍数据库驱动的文章。关于MySql的驱动还有更新版本的,你需要到MySql的网站上去下载,这个网上到处都是,我就不多说了。下面看程序,有些地方我写了详细的注释应该能看懂。 这个类是非常有特色的,在每个方法的传人参数和返回值不变的情况下,希望高手能提出改进意见。多指教,谢谢! /** * 数据库连接、选择、更新、删除演示 */ //import java.sql.*; import java.sql.Connection; import java.sql.Statement; import java.sql.ResultSet; import java.sql.DriverManager; import java.util.*; public class DbConnect {

C#-连接MYSQL数据库的3种方法及示例

C# 连接MYSQL数据库的方法及示例 连接MYSQL数据库的方法及示例 方法一: using MySql.Data using MySql.Data.MySqlClient; 其他操作跟SQL是差不多,无非就是前缀变成MySql了. 补充: 下面是连接字符串,供参考. MySqlConnection con = new MySql.Data.MySqlClient.MySqlConnection("Database='testdb';Data Source='localhost';User Id='db';Password='apple';charset='utf8'"); con.Open(); MySqlCommand cmd = new MySqlCommand(); cmd.Connection = con; 使用MYSQL推出的MySQL Connector/Net is an https://www.360docs.net/doc/3c4862789.html, driver for MySQL 该组件为MYSQL为https://www.360docs.net/doc/3c4862789.html,访问MYSQL数据库设计的.NET访问组件。 安装完成该组件后,引用命名空间MySql.Data.MySqlClient; 使用命令行编译时:csc /r:MySql.Data.dll test.cs 方法二: 通过ODBC访问MYSQL数据库 访问前要先下载两个组件:https://www.360docs.net/doc/3c4862789.html,和MYSQL的ODBC驱动(MySQL Connector/ODBC (MyODBC) driver)目前为3.51版 安装完成后,即可通过ODBC访问MYSQL数据库 方法三: 使用CoreLab推出的MYSQL访问组件,面向.NET 安装完成后,引用命名空间:CoreLab.MySql; 使用命令编译时:csc /r:CoreLab.MySql.dll test.cs 以下为访问MYSQL数据库实例 编译指令:csc /r:CoreLab.MySql.dll /r:MySql.Data.dll test.cs using System; using https://www.360docs.net/doc/3c4862789.html,; using System.Text; using CoreLab.MySql; using System.Data.Odbc; using MySql.Data.MySqlClient; class ConnectMySql {

01关于数据库连接池和动态数据源的实现课案

关于数据库连接池和动态数据源的实现、使用 对于一个简单的数据库应用,由于数据库的访问不是很频繁。这时可以很简单地在需要访问数据库时,就新创建一个连接,用完后就关闭它,这样就不会带来更多的性能上的开销。但是对于复杂的数据库应用,情况就完全不同了。频繁的建立、关闭连接,会极大的减低系统的性能,因为对于连接的使用成了系统性能的瓶颈。这就意味我们需要去考虑怎样把一个连接多次使用。 连接复用,通过建立数据库的连接池以及一套连接使用的管理策略,使得一个数据库连接可以得到高效、安全的复用,避免了数据库连接频繁建立、关闭给系统带来的开销。外部使用者可以通过getConnection方法获取连接,使用完毕之后再通过releaseConnection 方法将连接返回,注意此时的连接并没有关闭,而是由连接池管理器回收,并为下一次使用做好准备。 一般的数据库连接池,是使用配置文件在项目启动的使用加载配置文件,根据文件中描述,生成对应的数据库连接池。连接池有许多的属性比如:连接池的初始化连接处、连接池的最大连接数、每次的自增连接数、最大空闲连接数等等 数据库连接池技术带来的优势: 1.资源重用 由于数据库连接得到重用,避免了频繁创建、释放连接引起的大量性能开销。在减 少系统消耗的基础上,另一方面也增进了系统运行环境的平稳性(减少内存碎片以 及数据库临时进程/线程的数量) 2.更快的系统响应速度 数据库连接池在初始化过程中,往往已经创建了若干数据库连接置于池中备用,此 时连接的初始化工作均已完成,对于业务处理而言,直接利用现有的可以连接,避 免了数据库连接初始化和释放过程的时间开销,从而缩短了系统整体的响应时间。 3. 统一的连接管理,避免数据库连接泄露 在较为完备的数据库连接池实现中可以根据预先的连接占用超时设定,强制回收被 占用的连接。从而避免常规数据库连接操作中可能出现的资源泄露。 一个数据库连接池的实现 1.前言 数据库应用,在许多软件系统中经常用到,是开发中大型系统不可缺少的辅助。但如果对数据库资源没有很好地管理(如:没有及时回收数据库的游标(ResultSet)、Statement、连接(Connection)等资源),往往会直接导致系统的稳定。这类不稳定因素,不单单由数据库或者系统本身一方引起,只有系统正式使用后,随着流量、用户的增加,才会逐步显露。 在基于Java开发的系统中,JDBC是程序员和数据库打交道的主要途径,提供了完备的数据库操作方法接口。但考虑到规范的适用性,JDBC只提供了最直接的数据库操作规范,对数据库资源管理,如:对物理连接的管理及缓冲,期望第三方应用服务器(Application Server)的提供。下面以JDBC规范为基础,介绍相关的数据库连接池机制,并就如果以简单的方式,实现有效地管理数据库资源介绍相关实现技术。

java平时最常用的7种数据库连接方式

今天总结了java平时最常用的7种数据库连接方式,现在分享给大家 MySQL: String Driver="com.mysql.jdbc.Driver"; //驱动程序 String URL="jdbc:mysql://localhost:3306/db_name"; //连接的URL,db_name 为数据库名 String Username="username"; //用户名 String Password="password"; //密码 Class.forName(Driver).new Instance(); Connection con=DriverManager.getConnection(URL,Username,Password); Microsoft SQL Server: 1) String Driver="com.microsoft.jdbc.sqlserver.SQLServerDriver"; //连接SQL数据库的方法 String URL="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=db_name"; //db_name为数据库名 String Username="username"; //用户名 String Password="password"; //密码 Class.forName(Driver).new Instance(); //加载数据可驱动 Connection con=DriverManager.getConnection(URL,UserName,Password); // 2) String Driver="com.microsoft.sqlserver.jdbc.SQLServerDriver"; //连接SQL数据库的方法 String URL="jdbc:sqlserver://localhost:1433;DatabaseName=db_name"; //db_name为数据库名 String Username="username"; //用户名 String Password="password"; //密码 Class.forName(Driver).new Instance(); //加载数据可驱动 Connection con=DriverManager.getConnection(URL,UserName,Password); Sysbase: String Driver="com.sybase.jdbc.SybDriver"; //驱动程序 String URL="jdbc:Sysbase://localhost:5007/db_name"; //db_name为数据可名 String Username="username"; //用户名 String Password="password"; //密码 Class.forName(Driver).newInstance(); Connection con=DriverManager.getConnection(URL,Username,Password); Oracle(用thin模式): String Driver="oracle.jdbc.driver.OracleDriver"; //连接数据库的方法String URL="jdbc:oracle:thin:@loaclhost:1521:orcl"; //orcl为数据库的SID String Username="username"; //用户名 String Password="password"; //密码 Class.forName(Driver).newInstance(); //加载数据库驱动

Java连接mysql数据库源代码

Java连接mysql数据库源代码 /** *@author mervyn *@Development_time 2011.3.12 *welcome to https://www.360docs.net/doc/3c4862789.html,/mervyn_hb */ package src; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.sql.*; import java.util.*; public class MysqlConnectSystem { /** * @param args * @throws IOException */ public static void main(String[] args) throws SQLException, IOException { String Usename,KeyID,UrlString; //String DriverConnect; char MenuExitValue; String driver="com.mysql.jdbc.Driver"; Scanner EntryValue=new Scanner(System.in); System.out.println("欢迎使用MysqlConnectSystem信息管理系统!"); MysqlConnectSystem mysqlconnect=new MysqlConnectSystem(); MysqlConnectSystem mysqlinsert=new MysqlConnectSystem(); MysqlConnectSystem mysqlupdate=new MysqlConnectSystem(); MysqlConnectSystem mysqldelete=new MysqlConnectSystem(); System.out.println("请输入要登录的用户名:"); Usename=EntryValue.next(); System.out.println("请输入要登录的数据库的密码:"); KeyID=EntryValue.next(); System.out.println("请输入需要登录的数据库:"); UrlString="jdbc:mysql://127.0.0.1:3306/"+EntryValue.next(); do{ try { Class.forName(driver); Connection conn=DriverManager.getConnection(UrlString, Usename,

java数据库连接方法

一、问题引入 在java程序中,需要访问数据库,做增删改查等相关操作。如何访问数据库,做数据库的相关操作呢? 二、Java连接数据库方法概述 java.sql提供了一些接口和类,用于支持数据库增删改查等相关的操作。该jar包定义了java访问各种不同数据库(mysql,oracle,sqlserver。。。。。)的统一接口和标准。同时,各个数据库厂商都提供了该jar包中定义的各个接口的实现类,用于具体实现本厂数据库的增删改查操作,即称之为“数据库驱动jdbc driver”。例如mysql的数据库驱动为:com.mysql.jdbc.driver;oracle的数据库驱动为:oracle.jdbc.driver.oracledriver。在java程序中访问数据库,做数据库连接时,可以采用两种方式: 1、使用java.sql API 利用该包提供的各种接口和类直接访问数据库。 例子: 2、使用数据库连接池 目前存在多个开源的java数据库连接池,这些连接池都是在java.sql基础上编写而成。 该连接池的解决的问题是: 当使用java.sql中提供的api创建数据库连接时候,需要耗费很大的资源,要进 行用户名密码数据库连接验证等,即耗费资源也耗费时间。如果在程序中,每次需 要访问数据库时候,都进行数据库连接,那么势必会造成性能低下;同时,如果用 户失误忘记释放数据库连接,会导致资源的浪费等。而数据库连接池就是解决该问 题,通过管理连接池中的多个连接对象(connection),实现connection重复利用。 从而,大大提高了数据库连接方面的性能。 该连接池的功能是: 负责创建,管理,释放,分配数据库连接即(connection)。首先,负责创建相应 数目的数据库连接对象(connection)对象,并存放到数据库连接池(connect pool)中。当用户请求数据库连接时,该连接池负责分配某个处于空闲状态的数据库连接 对象;当用户发出释放该数据库连接时,该连接池负责将该连接对象重新设置为空

Java连接MySql数据库入门操作

这是连接后进行一些简单操作后的结果: Succeeded connecting to the Database! 学号姓名 2011001 张三 2011002 李四 2011003 王五 先去下载MySql并安装好。安装MySql的方法在 https://www.360docs.net/doc/3c4862789.html,/view/9cc0fcc76137ee06eff918d5.html 然后下载jdbc驱动。 https://www.360docs.net/doc/3c4862789.html,/downloads/connector/j/ 下载好了解压即可。把那个zip文件也放到解压后的目录中,方便管理使用。 我使用的是eclipse,我要导入包,先进行一些设置。

安装jre。 添加外部jar文件 打开刚才解压得到的jar文件。

打开的效果。 使用mysql创建数据库,进行测试。 mysql> use test; Database changed mysql> create table student ( -> sno char(7) not null, -> sname varchar(8) not null, -> sex char(2) not null -> ); Query OK, 0 rows affected

mysql> insert into student values -> (2011001, '张三', '男'); Query OK, 1 row affected mysql> insert into student values -> (2011002, '李四', '男'); Query OK, 1 row affected mysql> insert into student values -> (2011003 , '王五', '男'); Query OK, 1 row affected mysql> select * from student; +---------+-------+-----+ | sno | sname | sex | +---------+-------+-----+ | 2011001 | 张三| 男| | 2011002 | 李四| 男| | 2011003 | 王五| 男| +---------+-------+-----+ 3 rows in set mysql> 编码测试。 输入下面源代码: import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class JDBCTest { public static void main(String[] args){ try { // 加载驱动程序 Class.forName("com.mysql.jdbc.Driver"); // URL指向要访问的数据库名test String url = "jdbc:mysql://127.0.0.1:3306/test"; // MySQL配置时的用户名 String user = "root";

Crystal Reports(水晶报表) JDBC连接mysql数据库

Crystal Reports 2008(水晶报表) JDBC连接mysql数据库 在本文中,主要介绍的是Crystal Reports 2008使用JDBC连接mysql数据库。 在连接之间,首先要确认你电脑上面都安装了mysql数据库。 其次,就是jdbc连接数据时候所使用的相关jar包。 接下来,就可以进行数据库的一些连接操作了。 对JDBC不是很了解的,可以到完整java开发中JDBC连接数据库代码和步骤了解相关的操作 1.打开Crystal Reports的数据专家 2.点击JDBC(JNDI)出现:

3.输入url和数据库类名,点击下一步:

4.输入password 和user id 点击完成即可。 5.不过,在这操作之前,你需要做的是以下步骤: 在你安装的Crystal Reports目录: 我安装的目录是:D:\crystal reports 2008\Common\4.0\java 在此目录下面,有一个文件:CRConfig.xml配置文件

D:\crystal reports 2008\Common\4.0\java\CRConfig.xml 1 2../.. 310 4 5 6 7 8 9 10CFKOA-YOTTM2M-OOUFAFF-N43M 11 12 13D:\crystal reports 2008\javasdk\bin 14D:\crystal reports 2008\Common\4.0\java/lib/mysql-connector-java-5.1.10-bin.jar;D:\c rystal reports 2008\Common\4.0\java/lib/crlovmanifest.jar;D:\crystal reports 2008\Common\4.0\java/lib/C RLOVExternal.jar;D:\crystal reports 2008\Common\4.0\java/lib/CRDBJDBCServer.jar;D:\crystal reports 2

Java中数据库连接池原理机制

连接池的基本工作原理 基本概念及原理 由上面的分析可以看出,问题的根源就在于对数据库连接资源的低效治理。我们知道,对于共享资源,有一个很闻名的设计模式:资源池(Resource Pool)。该模式正是为了解决资源的频繁分配?释放所造成的问题。为解决上述问题,可以采用数据库连接池技术。数据库连接池的基本思想就是为数据库连接建立一个“缓冲池”。预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去。我们可以通过设定连接池最大连接数来防止系统无尽的与数据库连接。更为重要的是我们可以通过连接池的治理机制监视数据库的连接的数量?使用情况,为系统开发?测试及性能调整提供依据。 服务器自带的连接池 JDBC的API中没有提供连接池的方法。一些大型的WEB应用服务器如BEA的WebLogic 和IBM的WebSphere等提供了连接池的机制,但是必须有其第三方的专用类方法支持连接池的用法。 连接池要害问题分析

1、并发问题 为了使连接治理服务具有最大的通用性,必须考虑多线程环境,即并发问题。这个问题相对比较好解决,因为java语言自身提供了对并发治理的支持,使用synchronized要害字即可确保线程是同步的。使用方法为直接在类方法前面加上synchronized要害字,如:public synchronized Connection getConnection() 2、多数据库服务器和多用户 对于大型的企业级应用,经常需要同时连接不同的数据库(如连接Oracle和Sybase)。如何连接不同的数据库呢?我们采用的策略是:设计一个符合单例模式的连接池治理类,在连接池治理类的唯一实例被创建时读取一个资源文件,其中资源文件中存放着多个数据库的url地址()?用户名()?密码()等信息。如tx.url=172.21.15.123:5000/tx_it,https://www.360docs.net/doc/3c4862789.html,er=yang,tx.passWord=yang321。根据资源文件提供的信息,创建多个连接池类的实例,每一个实例都是一个特定数据库的连接池。连接池治理类实例为每个连接池实例取一个名字,通过不同的名字来治理不同的连接池。 对于同一个数据库有多个用户使用不同的名称和密码访问的情况,也可以通过资源文件处理,即在资源文件中设置多个具有相同url地址,但具有不同用户名和密码的数据库连接信息。 3、事务处理 我们知道,事务具有原子性,此时要求对数据库的操作符合“ALL-ALL-NOTHING”原则,即对于一组SQL语句要么全做,要么全不做。

Java连接数据库全过程

Java连接数据库全过程 第一次用java连接数据库,开始竟然不知道从哪里下手,后看了很多书,请教了很多高手,忙了一天才连接上,所以我把这个详细的过程整理出来贡献给大家,不当的地方,希望大家告诉我,一定更正。 要准备的软件: 1.操作系统:windows xp或其他系统; 2.java运行环境:JDK 官方下载网址:https://www.360docs.net/doc/3c4862789.html,/javase/downloads/index.jsp 3.数据库:SQL server 2000; 下面是java连接数据库需要更新的东西,不然连不上的: 1安装SQL SP3补丁:“SQLSERVER2000SP3补丁.exe”,和普通的程序安装一样。 2.把3个jar包:“msbase.jar”,“mssqlserver.jar”,“msutil.jar”加到classpath中,具体的安装方法我已经详细整理:“Java连接数据库配置——加载jar包”。 Java连接数据库的核心程序文件:"TestConnect.java"如下 //TestConnect.java import java.sql.*; public class TestConnect { private Connection con=null;//Connection:与特定数据库的连接(会话)。在连接上下文中执行 SQL 语句并返回结果。 String dbDriver="com.microsoft.jdbc.sqlserver.SQLServerDriver";//声明数据库驱动名(这个是微软的驱动名) //String dbDriver="sun.jdbc.odbc.JdbcOdbcDriver";//sun驱动程序名 //String dbUrl="jdbc:odbc:lhs"; String dbUrl="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=lhs";//数据库驱动程序URL,和相应的驱动配套。 String dbUser="sa";//定义数据库登陆用户名 String dbPasw="123";//定义相应用户的登陆密码 //创建数据库连接 public void connect()

Java使用JDBC连接MYSQL数据库增删改查示例

Java使用JDBC连接MYSQL数据库增删改查示例JDBC连接MYSQL数据库: import java.sql.Connection; import java.sql.DriverManager; public class Mysql { public static void main(String arg[]) { try { Connection con = null; //定义一个MYSQL链接对象 Class.forName("com.mysql.jdbc.Driver").newInstance(); //MYSQL 驱动 con = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test", "root", "root"); //链接本地MYSQL System.out.print("yes"); } catch (Exception e) { System.out.print("MYSQL ERROR:" + e.getMessage()); } }

} Class.forName("com.mysql.jdbc.Driver").newInstance(); 我们链接的是MYSQL 数据库,所以需要一个MYSQL的数据库驱动,如果你的环境中没有安装,可以下载:mysql-connector-java-5.1.17-bin.jar JAR包,然后放进jdk1.6.0_37\jre\lib\ext 重启eclispe 就可以在JRE系统库中看到。 con = DriverManager.getConnection;("jdbc:mysql://127.0.0.1:3306/test", "root", "root"); 是链接数据库的语句,返回Connection con;对象。参数格式:("jdbc:mysql://ip:端口/数据库名称", 用户名,密码) 写入一条数据 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class Mysql { /**

vs2010连接mysql数据库方法

Vs2010连接Mysql数据库方法 下载MySQL 5.5.13 正式版:https://www.360docs.net/doc/3c4862789.html,/html/361.html ------------------------------------------- 操作系统:winxp-32bit 数据库:MySQL Server 5.5 (安装路径:D:\Program Files\MySQL\MySQL Server 5.5) IDE: Microsoft Visual Studio 2010 untimate/Professional (以上东西都是完整安装的) ------------------------------------------- 一、VC设置 1、新建一个工程,随便写一个helloworld,目的是就是让工程下的“debug”文件夹出现 2、把D:\Program Files\MySQL\MySQL Server 5.5\lib下面的libmysql.dll复制到工程的debug文件夹里面 3、接下来要设置一些引用文件的环境变量,首先,点击项目->属性->vc++目录。 然后“include目录”那把“D:\Program Files\MySQL\MySQL Server 5.5\include”给加进来 再然后“lib目录”那里把“D:\Program Files\MySQL\MySQL Server 5.5\lib”也一起加进来 VC6.0设置: (1)打开VC6.0 工具栏Tools菜单下的Options选项,在Directories的标签页中右边的“Show directories for:”下拉列表中选中“Includefiles”,然后在中间列表框中添加你本地安装MySQL的include目录路径。(我的是D:\Program Files\MySQL\MySQL Server 5.5\include)。 (2)在上面说到的“Show directories for:”下拉列表中选中“Library files”,然后添加你本地安装MySQL的Lib目录路径。Lib目录下有debug目录,选debug。(我的是D:\Program Files\MySQL\MySQL Server 5.5\lib\debug)。 4、然后在项目->属性窗口下点击:连接器->输入->附加依赖项,把"libmysql.lib"写进去VC6.0设置:在“Project settings->Link:Object/library modules”里面添加“libmysql.lib”。 使用VC++编译时再添加以下项: 5、在stdafx.h里面添加如下的内容: #include "mysql.h" #include "winsock.h" // 如果编译出错,则把该行放到#include "mysql.h"之前#pragma comment(lib,"libmySQL.lib") // 如果在附加依赖项里已增加,则就不要添加了 二、数据库的相关操作 1、打开“开始->所有程序->MySQL->MySQL Server 5.5->MySQL Command Line Client.exe”,如果有密码就输入密码,没有设置密码就直接按回车,会提示服务器启动成功。

04. 数据库连接池(DataSource)

数据库连接池(DataSource) 1、概念 在三层架构中,DAO层直接与数据库交互,首先要建立与数据库的连接,如果采用下图(a)所示,则用户每次的请求都要创建连接,用完又关闭,而数据库连接的创建和关闭需要消耗较大的资源,因此实际开发中常采用图(b)所示,在应用程序启动时创建一个包含多个Connection对象的连接池,DAO层使用时直接从池子里取一个Connection对象,用完后放回池子,避免了重复创建关闭数据库连接造成的开销。 2、数据库连接池原理 下面的代码模拟了数据库连接池的原理(代码中的JDBCUtil工具类见《MySQL(JDBC)》),池子里保持了10个Connection对象,并提供了getConnection和release方法: public class ConnectionPoolDemo { //连接池实际上就是一个List private static List pool = new LinkedList();

static{//加载连接池类时在池子中放入10个连接 for(int i = 0;i < 10;i ++){ Connection conn; try { conn = JDBCUtil.getConnection(); pool.add(conn); } catch (Exception e) { e.printStackTrace(); } } } //从池子中取出一个连接 public synchronized Connection getConnection(){ return pool.remove(0); } //把连接还回池子中 public static void release(Connection conn){ pool.add(conn); } } 3、编写一个符合规范的连接池 上节模拟数据库连接池原理的代码也实现了一个简单连接池,但是不符合规范(Sun公司制定)。编写一个符合规范的连接池需要实现javax.sql.DataSource接口。(DataSource接口中定义了两个重载的getConnection方法) 编程难点☆:当用户使用完Connection,执行conn.close()时,Connection对象应保证将自己还给连接池,而不要把conn关闭。之所由Connection对象保证将自己返回到LinkedList 中,是因为DataSource接口中并未定义上节例子中类似release的方法。所以必须改写Connection中的close方法,使得用户执行conn.close()时,将Connection对象还给连接池。解决方案☆:改写驱动程序中Connection类的close方法。对已知类的某些方法进行功能上的改变,有以下几种编码方案(☆): 1)编写子类,覆写需要改变的方法。此处行不通,原因有:①程序中不知道继承哪个驱动的Connection实现类②数据库驱动对Connection接口的实现类是final的,不允许被继承。 2)装饰(包装)设计模式(静态代理) ①定义包装类:MyConnection,该类完成了对com.mysql.jdbc.Connection类的包装。 关键词:保持被包装对象的原有信息、对某个/某些方法进行改写。包装类的编写过程如下:/**

相关文档
最新文档