以JNDI方式创建数据源首先要配置数据源的相关连接信息,该配置在Tomcat安装目录下的conf/context.xml文件中
1
2
3
4
5
6
7
8
9
10
11
12
<Context>
<Resource name="jdbc/NutzDemo"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
username="root"
password="root"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/cheng" />
</Context>
在项目的web.xml中引入数据源
1
2
3
4
5
<resource-ref>
<res-ref-name>jdbc/NutzDemo</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
获取数据库连接以进行相应的操作
1
2
3
4
5
6
7
8
9
10
// 初始化JNDI上下文,创建DataSource对象
Context initContext = new InitialContext();
Context context = (Context) initContext.lookup("java:comp/env");
DataSource dataSource = (DataSource) context.lookup("jdbc/NutzDemo");
Connection conn = dataSource.getConnection();
PreparedStatement ps = conn.prepareStatement("select * from t_role");
ResultSet rs = ps.executeQuery();
System.out.println(rs.next());
rs.close();
conn.close();
或者整合到Spring,在Spring的配置文件中添加如下代码
1
2
3
<bean id="datasource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="java:comp/env/jdbc/NutzDemor" />
</bean>