JNDI连接数据库

来源:互联网 发布:多比软件 编辑:程序博客网 时间:2024/05/17 07:05

两种方式:

1、不启动任务服务器

2、使用服务器(tomcat/jboss等)


1、不启动任务服务器

private static void initJndi(){

try {
System.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.apache.naming.java.javaURLContextFactory"); //需要naming-java包
System.setProperty(Context.URL_PKG_PREFIXES, "org.apache.naming");//需要naming-common包
InitialContext ic = new InitialContext();
ic.createSubcontext("java:");
ic.createSubcontext("java:comp");
ic.createSubcontext("java:comp/env");
ic.createSubcontext("java:comp/env/jdbc");

MysqlConnectionPoolDataSource ds = new MysqlConnectionPoolDataSource();
ds.setURL("jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8");
ds.setUser("root");
ds.setPassword("pass");
ic.bind("java:comp/env/jdbc/mysql", ds);

Object obj=ic.lookup("java:comp/env/jdbc/mysql");//obj就是保存到ic中的ds
System.out.println("ss");
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

<!-- https://mvnrepository.com/artifact/tomcat/naming-common -->
<!-- <dependency>
   <groupId>tomcat</groupId>
   <artifactId>naming-common</artifactId>
   <version>5.0.28</version>
   <scope>test</scope>
</dependency> -->
<!-- https://mvnrepository.com/artifact/tomcat/naming-Java -->
<!-- <dependency>
   <groupId>tomcat</groupId>
   <artifactId>naming-java</artifactId>
   <version>5.0.28</version>
</dependency>
-->

/**

*获取数据库连接 databaseName="jdbc/mysql"

*/

private static synchronized Connection getContextConnection()
throws NamingException, SQLException {
Connection con = null;
if (ds == null) {
InitialContext ctx = null;
ctx = new InitialContext();
Context envCtx = (Context) ctx.lookup("java:comp/env");
if (databaseName == null || databaseName.trim().equals("")) {
return null;
}
ds = (DataSource) envCtx.lookup(databaseName);
}
if (ds != null)
con = ds.getConnection();
return con;
}

优点:测试方便。



2、启动服务器(tomcat加载

2.1、第一种:全局配置。

1)在tomcat的conf文件夹下的context.xml配置文件中加入:

  1. <Resource name="jdbc/mysql"   
  2.             auth="Container"   
  3.             type="javax.sql.DataSource"   
  4.             driverClassName="com.mysql.jdbc.Driver"   
  5.             url="jdbc:mysql://localhost:3306/appdb"   
  6.             username="root"   
  7.             password="123456"   
  8.             maxActive="20"   
  9.             maxIdle="10"   
  10.             maxWait="10000"/>  
2)使用jee:jndi-lookup 获取jndi_jdbc 的信息作为dataSource使用

<jee:jndi-lookup id="dataSource" jndi-name="${jndi_jdbc}" resource-ref="true" />//jndi_jdbc="jdbc/mysql"

2.2、局部配置:在项目中添加一个xml配置文件,配置jndi/mybatis






原创粉丝点击