`
joy_cz
  • 浏览: 135753 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Hibernate学习(3)----JDBC编程

阅读更多

3.1 JDBC的编程

       JDBC是JAVA数据库编程API,JDBC提供了JA VA应用程序访问数据库资源的编程接口,提供了对SQL语言的支持。JDBC的主要作用是连接数据库,维护数据源,实现SQL语言,以及发送SQL到数据库并返回和处理结果。下面的ComputerAccess程序演示了利用JDBC访问MYSQL数据库中的Computer数据表的过程。

package com.joy_cz.jdbc;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.Properties;

/**

* @author 蔡哲

*/

public class ComputerAccess{

         public static void main(String[] args){

                  Connection conn = null;

                  try{

                      //加载MYSQL数据库驱动

                     Class.forName("org.gjt.mm.mysql.Driver");

                    //设置访问属性

                    Properties prop = new Properties();

                    prop.setProperty("user","root");

                    prop.setProperty("password","123456");

                    //打开数据库连接并连接到指定的URL

                    con = DriverManager.getConnection("jdbc:mysql://localhost:3306/hibernate",prop);

                   }catch(ClassNotFoundException e){

                   e.printStackTrace();}

                    catch(SQLException e){

                    e.printStackTrace();}}}

3.2  连接数据库 DriverManager

JDBC中的DriverManager是用来管理数据库驱动程序的。利用DriverManager可以建立数据库连接,管理多个数据库驱动,并识别不同的数据库URL所对应的数据库驱动。示例如下:

package com.joy_cz.jdbc;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.Properties;

/**

* @author 蔡哲

*/

public class DriverManagerTest

{            public static void main(String [] args)

             {

                    Connection conn = null;

                   try {

                         //加载MYSQL数据库驱动

                     Class.forName("org.gjt.mm.mysql.Driver");

                     Class.forName("org.postgresql.Driver");

                       //设置访问属性

                    Properties prop = new Properties();

                    prop.setProperty("user","root");

                    prop.setProperty("password","123456");

                    //将日志输出到控制台

                    DriverManager.setLogwriter(new PrintWriter(System.out));

                    //打开数据库连接并连接到指定的URL

                    String mysqlURL = "jdbc:mysql://localhost:3306/hibernate";

                    String postgresqlURL = "jdbc:postgresql://locahost:5432//hibernate";

                    con = DriverManager.getConnection(mysqlURL,prop);

                   // con = DriverManager.getConnection(postgresqlURL,prop);

                   }catch(ClassNotFoundException e){

                   e.printStackTrace();}

                    catch(SQLException e){

                    e.printStackTrace();}}}

3.3 数据源

DataSource对象代表JAVA的数据源。DataSource是数据库编程的一个工具,利用DataSource可以获得数据库连接。DataSource本身可以被注册到JNDI命名服务器上,通过JNDI,不同的JAVA应用程序可以共享DataSource,从而为数据库程序的开发提供很大的便利。示例如下:

package com.joy_cz.jdbc;

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;

/**

* @author 蔡哲

*/

public class BasicDataSourceTest

{            public static void main(String [] args)

             {

                     MysqlDataSource ds = new MysqlDataSource();

                    ds.setURL("jdbc:mysql://localhost:3306/hibernate");

                    ds.setUser("root");

                    ds.setPassword("123456");

                    Connection conn = ds.getConnection();         

            }

}

3.4 数据库连接池

   (1) C3P0连接池

         通过连接池可以提供ConnectionPoolDataSource类型的数据源。目前,连接池的开放源代码实现项目很多,而且有多种连接池实现工具可以被配置到Hibernate中使用,其中包括C3P0项目(http://sourceforge.net/projects/c3p0/)。下面的代码使用了C3P0提供的ComboPooledDataSource

package com.joy_cz.jdbc;

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.Statement;

import com.mchange.v2.c3p0.ComboPooledDataSource;

/**

* @author 蔡哲

*/

public class C3P0Test

{            public static void main(String [] args)

             {

                        //创建C3P0提供的连接池数据源

                       ComboPooledDataSource cpds = new ComboPooledDataSource();

                     //设置数据库驱动

                    cpds.setDriverClass("org.gjt.mm.mysql.Driver");

                    //设置JDBC的URL

                    cpds.setURL("jdbc:mysql://localhost:3306/hibernate");

                    cpds.setUser("root");

                    cpds.setPassword("123456");

                    //从连接池数据源获取数据库连接

                   Connection conn  = cpds.getConnection();

            }

}

 (2)  PooledDataSource 与JNDI

       利用连接池实现的DataSource是一个系统中需要反复调用的资源,通常被注册到JNDI,以便于被其他应用程序使用。使用JNDI服务的名称服务工具可从TOMCAT的软件包中得到( naming-common.jar),需要把naming-common.jar导入CLASSPATH。示例如下:

package com.joy_cz.jdbc;

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.Statement;

import java.util.Hashtable;

import javax.naming.Context;

import javax.naming.InitialContext;

import javax.sql.DataSource;

import com.mchange.v2.c3p0.ComboPooledDataSource;

/**

* @author 蔡哲

*/

public class C3P0JNDITest

{            public static void main(String [] args)

             {

                       Hashtable table = new Hashtable();

                       //设置JNDI的工厂类

                      table.put(Context.INITIAL_CONTEXT_FACTORY,"org.apache.naming.java.javaURLContextFactory");

                      //初始化JNDI上下文

                     InitialContext ctx = new InitialContext(table);

                        //创建C3P0提供的连接池数据源

                       ComboPooledDataSource cpds = new ComboPooledDataSource();

                     //设置数据库驱动

                    cpds.setDriverClass("org.gjt.mm.mysql.Driver");

                    //设置JDBC的URL

                    cpds.setURL("jdbc:mysql://localhost:3306/hibernate");

                    cpds.setUser("root");

                    cpds.setPassword("123456");

                    cpds.setInitialPoolSize(10);

                    //把数据源绑定到JNDI,名称是"hibernateDS"

                   ctx.bind("hibernateDS",cpds);

                  //从JNDI查找数据源

                DataSource ds = (DataSource)ctx.lookup("hibernateDS");

                    //从连接池数据源获取数据库连接

                   Connection conn  = ds.getConnection();

            }

}

 

分享到:
评论

相关推荐

    hibernate源码release-4.1.4.Final版

    通过深入学习Hibernate 4.1.4.Final的源码,我们可以更好地理解其设计思想,提升我们的编程技巧,同时也能为日常开发中遇到的问题提供解决方案。这是一份宝贵的资源,无论是对于初学者还是经验丰富的开发者,都值得...

    hibernate-distribution-3.5.6-Final.rar

    这些文档是学习和理解Hibernate功能、配置以及最佳实践的重要资源。通过阅读这些文档,开发者可以了解到如何将Java对象映射到数据库表,以及如何使用Hibernate进行数据操作,如CRUD(创建、读取、更新和删除)操作。...

    hibernate-distribution-3.6.6.Final.tar.gz

    在实际应用中,开发人员通常会结合Spring框架来使用Hibernate,通过Spring的声明式事务管理、AOP(面向切面编程)等功能,进一步简化开发流程。 总之,`hibernate-distribution-3.6.6.Final.tar.gz`压缩包是...

    hibernate-distribution-3.6.0.Final-dist

    **hibernate-distribution-3.6.0.Final-dist** 是一个包含Hibernate框架3.6.0最终版本的压缩包。...虽然现在有更新的Hibernate版本,但对于学习和理解ORM以及Hibernate的工作原理,3.6.0版本仍然是一个不错的选择。

    hibernate-release-4.2.12.Final libs

    Hibernate 是Java平台上的一款强大的ORM工具,它允许开发者以对象的方式来操作数据库,将数据库操作转化为对Java对象的操作,降低了数据库编程的复杂性。4.2.12.Final是Hibernate的一个稳定版本,包含了多项改进和...

    hibernate-release-4.2.3.lib.zip

    总结,`hibernate-release-4.2.3.Final.zip`中的lib文件夹包含了运行Hibernate应用所需的全部库文件,包括Hibernate核心库、JDBC驱动、缓存提供商等。通过理解和熟练运用这些知识点,开发者可以构建出高效、可靠的...

    hibernate-release-4.2.21.Final官方原版

    Hibernate是Java领域中一款著名的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库,极大地简化了数据库编程。此版本“hibernate-release-4.2.21.Final”是Hibernate 4系列的一个稳定版本,...

    org.hibernate.ejb-library-3.4.0.GA

    3. `com.springsource.javassist-3.15.0.GA.jar`:Java编程辅助工具,用于运行时修改和创建类,Hibernate使用它来动态生成代理类。 4. `...

    hibernate-distribution-3.3.2.GA-dist.zip

    Hibernate 是一个开源的 ORM 解决方案,它允许开发者使用面向对象的编程方式来操作关系型数据库,避免了传统的 JDBC 编程带来的复杂性。通过提供一套API,Hibernate 可以自动处理对象的持久化,使得Java对象与数据库...

    hibernate-release-4.3.8.Final

    Hibernate是一个开源的ORM框架,它通过提供一种编程和设计模式,使Java开发者能够将数据库操作转化为对Java对象的操作,极大地简化了数据库编程。在Hibernate 4.3.8.Final版本中,它继续强化了对JPA(Java ...

    hibernate-5.2.15. 最新jar包

    Hibernate是Java领域中一款著名的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库,极大地简化了数据库编程。在这个“hibernate-5.2.15. 最新jar包”中,包含的是Hibernate 5.2.15.Final版本...

    hibernate+junit+mysql-jdbc开发核心jar包三合一

    本资源“hibernate+junit+mysql-jdbc开发核心jar包三合一”显然是为了支持SSH框架中的Hibernate部分,并结合JUnit进行测试以及MySQL数据库连接。现在我们将详细探讨这三个组件及其在Java开发中的应用。 **Hibernate...

    hibernate-release-5.2.2.Final.zip

    3. Hibernate 5.2.2.Final新特性: - 改进了查询API,支持JPA 2.2规范。 - 提供了更强大的HQL(Hibernate Query Language)和Criteria API,支持复杂查询。 - 性能优化,包括更快的初始化时间和更好的内存管理。 ...

    hibernate--- jar包

    Hibernate是一个开源的对象关系映射(ORM)框架,它允许Java开发者在关系数据库上进行面向对象的编程。在Java开发中,Hibernate提供了一种方便、高效的方式来处理数据库操作,避免了直接编写SQL语句的繁琐。这个...

    hibernate-release-5.4.9.Final.zip

    它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate...

    hibernate-release-5.4.9.Final+5.1.2.Final.rar

    它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate...

    hibernate-2.1.8-all-bin_b.rar

    3. 支持多种数据库:Hibernate可以与多种数据库(如MySQL、Oracle、SQL Server等)无缝对接。 4. 二级缓存:提供了本地和分布式两种缓存策略,提高了数据读取效率。 5. 支持事务管理:通过编程或声明式方式控制事务...

    hibernate-release-5.4.25.Final_Hibernate5.4.25_hibernate所需jar包_源

    3. hibernate-validator-6.1.6.Final.jar:实现了JSR 380(Bean Validation 2.0),用于校验实体属性。 4. 数据库驱动jar:根据所使用的数据库,如MySQL、Oracle等,需要添加对应的JDBC驱动。 5. 其他依赖:如...

    hibernate-distribution-3.6.10.Final基本包

    Hibernate是一个开源的对象关系映射(ORM)框架,它允许Java开发者使用面向对象的方式来操作数据库,极大地简化了数据库编程。此“hibernate-distribution-3.6.10.Final”基本包是Hibernate 3.6.10版本的最终发行版...

Global site tag (gtag.js) - Google Analytics