1、spring配置数据库的几种方式:jdbc,jdni,连接池
2、jdbc与odbc的区别
3、orm类型数据库步骤
jdbc创建数据库连接
在java中创建数据库连接最简单的方法是使用jdbc方式,只要有基本的Java基础与数据库知识就可完成。基本配置方式可参见如下代码清单:
Class.forName("com.mysql.jdbc.Driver");
String url = "jdbc:mysql://localhost:3306/alibaba";
String user = "root";
String password = "11111111";
Connection conn = DriverManager.getConnection(url , user , password);
在Spring中可通过Spring配置文件完成数据库配置,代码清单如下所示:
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://localhost:3306/hibernate</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value>11111111</value>
</property>
</bean>
<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
<property name="dataSource">
<ref bean="dataSource" />
</property>
</bean>
xml文件中主要定义两个bean,第一个是数据源bean,主要配置数据库的驱动类、访问地址、用户与密码,主要配置参数与在代码中直接创建数据库连接没有差别。第二个实例jdbcTemplate是Spring提供的可以通过jdbc访问数据库的封装类,内部引用实例dataSource。代码中使用过程如下:
ApplicationContext context = new ClassPathXmlApplicationContext("datasource.xml");
JdbcTemplate jdbc = (JdbcTemplate) context.getBean("jdbcTemplate");
String sql = "select * from myuser";
List list = jdbc.queryForList(sql);
这两个使用方式本质上没有什么区别,只是数据访问参数配置地点不同,都具有应用程序与数据库之间耦合性高的特点。程序员要明确知道数据库的类型、数据库名称、用户名和密码才能进行开发。这样在部署时对于数据库的种类和参数就不可在更改。如在部署时,需要更换为Oracle数据库或者用户名与密码,必须对应用程序进行修改。此中方法在开发中配置较简单,可提高工作效率,但部署时应尽量避免。
JDNI创建数据库连接
相对于JDBC创建连接方式,JDNI方式降低了应用程序与数据库之间的耦合性。在部署web服务时,不需要更改系统代码,便可修改数据库访问参数。主要方式通过在tomcat目录的context.xml文件中创建数据源,再在应用程序中通过JDNI方式得到访问该数据源,完成数据库访问。此种方法可以在应用部署后,动态的修改context.xml文件来修改访问数据库的参数,而程序员则完全不用关系数据库的相关信息。
操作步骤首先是在Tomcat的context.xml的context元素中键入数据源定义:
<Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" name="jdbc/myDataBase" password="password" type="javax.sql.DataSource" url="jdbc:mysql://localhost:3306/hibernate" username="name"/>
定义好数据源后,要在应用中引用,引用方式是通过在web.xml配置信息,将数据源引用到本web应用下。引用方式是在web.xml中加入如下信息:
<resource-ref>
<res-ref-name>jdbc/myDataBase</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
在以上步骤的支持下,Java应用中就可以自由使用这个数据源了。使用方式如下所示:
Context ctx=new InitialContext();
DataSource source = (DataSource)ctx.lookup("java:comp/env/jdbc/myDataBase");
Connection conn = (Connection)source.getConnection();
数据库连接池
数据库连接池就以c3p0为例,其中有很多的参数可以配置,配置代码如下:
<bean id="dataSource"
class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="jdbcUrl">
<value>jdbc:mysql://localhost:3306/hibernate</value>
</property>
<property name="user">
<value>root</value>
</property>
<property name="password">
<value>11111111</value>
</property>
<property name="minPoolSize">
<value>5</value>
</property>
<property name="maxPoolSize">
<value>30</value>
</property>
<property name="initialPoolSize">
<value>10</value>
</property>
<property name="maxIdleTime">
<value>60</value>
</property>
</bean>
jdbc与odbc的区别。
在讨论连接数据库的方式时,时常会有jdbc与odbc两种选择。由于spring主要针对java平台,因此在spring中主要使用jdbc连接方式,但为何不选用odbc呢。因此在这把这两种方式的主要区别进行下解释:
odbc即是Open DataBase Connectivity(开放数据接口),是微软开放服务中有关数据库的一部分。它建立一种访问数据库的规范,内部提供了访问数据库的C语言Api。
jdbc是Java DataBase Connectivity ,是sun公司创建的标准,它主要提供了Java访问数据的接口与类。
因此它们的主要区别主要有一下几点:
1)jdbc主要针对java编程,odbc主要针对C编程
2)odbc保留了指针的使用,而java最大的优势在于淘汰比较麻烦的指针操作。因此若在java平台上使用Odbc访问数据库,势必对属性,类的健壮性,安全性,移植性带来影响。
3)使用odbc访问数据库,必须在每台客户机上安装手动安装驱动管理程序与驱动程序。而jdbc驱动器使用java语言编写,因此jdbc驱动器可以在任何具有java平台的计算机上都可自动安装,而且是安全的,可移植的。