栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

将JDBC连接代码放在servlet类中是个好主意吗?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将JDBC连接代码放在servlet类中是个好主意吗?

数据库连接的数据应该在你的JNDI数据源,如果你使用一个连接池,但它会更好, 从来没有
在一个班。由于您的服务器是Web应用程序,因此请注意,连接池配置在很大程度上取决于Web应用程序服务器。

作为示例,这在Tomcat 7数据库连接池配置和JBoss
7数据库连接池配置中得到了
很好的解释(还有其他步骤可以在GlassFish和其他Web应用程序服务器上配置数据库连接池,请注意,这在每个服务器上都是不同的)

从两个示例中,您都将看到一个XML文件,其中放置了连接属性:数据库URL,用户,密码,最小和最大池连接大小(将打开多少个数据库连接)

  • Tomcat方式:
        <Resource name="jdbc/ProjectX" auth="Container"        type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver"        url="jdbc:mysql://localhost:3306/projectx"        username="user" password="password" maxActive="20" maxIdle="10" maxWait="-1"/>
  • JBoss方式:
        <datasource jndi-name="jdbc/ProjectX" pool-name="MySqlDS"> <connection-url>jdbc:mysql://localhost:3306/projectx</connection-url> <driver>com.mysql</driver> <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation> <pool>     <min-pool-size>10</min-pool-size>     <max-pool-size>100</max-pool-size>     <prefill>true</prefill> </pool> <security>     <user-name>user</user-name>     <password>password</password> </security> <statement>     <prepared-statement-cache-size>32</prepared-statement-cache-size>     <share-prepared-statements/> </statement>    </datasource>    <drivers>        <driver name="com.mysql" module="com.mysql"> <xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>        </driver>    </drivers>

最后,如果您已经配置了数据库连接池并且可以使用,则在代码中恢复连接所需要做的就是调用

InitialContext#lookup
使用其JNDI资源名称恢复资源。

知道了这一点,在将JNDI资源配置为以名称“ jdbc /
ProjectX”连接到MySQL数据库之后,您可以拥有一个可以

Connection
像下面这样恢复的类:

    public class DatabaseConnectivity {        public static Connection getConnection() throws NamingException, SQLException { InitialContext cxt = new InitialContext(); DataSource ds = (DataSource) cxt.lookup("java:/comp/env/jdbc/ProjectX" ); return ds.getConnection();        }    }

顺便说一下,我将对包使用不同的名称来了解类的功能组。例如:

    src    - edu.home.controller.servlet      + CoreServlet.java    - edu.home.controller.filter      + SessionFilter.java    - edu.home.model.entity      + AnEntity.java      + AnotherEntity.java    - edu.home.model.database      + DatabaseConnectivity.java    - edu.home.model.service      + AnEntityService.java      + AnotherEntityService.java    (and on and on...)


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/412657.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号