两种方式:
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配置文件中加入:
- <Resource name="jdbc/mysql"
- auth="Container"
- type="javax.sql.DataSource"
- driverClassName="com.mysql.jdbc.Driver"
- url="jdbc:mysql://localhost:3306/appdb"
- username="root"
- password="123456"
- maxActive="20"
- maxIdle="10"
- maxWait="10000"/>
<jee:jndi-lookup id="dataSource" jndi-name="${jndi_jdbc}" resource-ref="true" />//jndi_jdbc="jdbc/mysql"
2.2、局部配置:在项目中添加一个xml配置文件,配置jndi/mybatis