灵活使用DataSource数据源

    技术2023-09-08  112

    灵活使用DataSource数据源

    1、JNDI配置数据源

    在Tomcat服务器中conf下的context.xml文件中配置

    参数说明name表示以后要查找的名称。通过此名称可以找到DataSource,此名称任意更换,但是程序中最终要查找的就是此名称,为了不与其他的名称混淆,所以使用jdbc/oracle,现在配置的是一个jdbc的关于oracle的命名服务。auth由容器进行授权及管理,指的用户名和密码是否可以在容器上生效type此名称所代表的类型,现在为javax.sql.DataSourcemaxActive表示一个数据库在此服务器上所能打开的最大连接数maxIdle表示一个数据库在此服务器上维持的最小连接数maxWait最大等待时间。10000毫秒username数据库连接的用户名password数据库连接的密码driverClassName数据库连接的驱动程序url数据库连接的地址 <!-- 使用JNDI配置数据源 --> <Resource name="jdbc/smbs" auth="Container" type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="root" password="root" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/smbms?useUnicode=true&amp;characterEncoding=utf-8" />

    2、程序中使用

    导入包:

    javax.naming.* javax.sql.* java.sql.*

    Context ctx = new InitialContext(); //获取数据源 DataSource ds = (DataSource)ctx. lookup("java: comp/env/jdbc/smbs"); //获取连接对象 Connection conn = ds . getConnection(); System.out. print(conn); //释放资源 conn. close();

    注意:java: comp/env/ 以这个为前缀

    3、在Spring中配置JDNI

    <!-- 通过JNDI配置DataSource --> <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"> <!-- 通过jndiName指定引用的JNDI数据源名称 --> <property name="jndiName"> <value>java:comp/<u>env</u>/<u>jdbc</u>/<u>smbms</u></value> </property> </bean>

    4、属性配置文件配置数据源

    使用外部配置文件 创建 database.properties 文件 driver=com.mysql.jdbc.Driver url=jdbc:mysql://127.0.0.1:3306/<u>smbms</u>?useUnicode=true&characterEncoding=<u>utf</u>-8 username=root password=root

    注意 :创建 database.properties 文件的时候不能出现多余的空格,否则解析失败

    在 ApplicaContext.xml 中配置数据源

    <!-- 使用配置文件的方式配置数据源:加载配置文件 --> <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="location" value="classpath:database.properties" /> </bean> <!--数据源 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="${driver}" /> <property name="url" value="${url}" /> <property name="username" value="${username}" /> <property name="password" value="${password}" /> </bean> 内部配置数据源 <!--数据源 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://127.0.0.1:3306/<u>smbms</u>?useUnicode=true&characterEncoding=<u>utf</u>-8" /> <property name="username" value="root" /> <property name="password" value="root" /> </bean>

    用心去创造,用心去改变!

    Processed: 0.009, SQL: 9