java代码配置jndi java环境配置代码

普通的java类能使用JNDI连接池吗?我配置了tomcat连接池,写的JSP文件使用正常,但是用普通类却无法使用?

其实java类中也可以用的。

在黑河等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站设计、做网站 网站设计制作按需网站设计,公司网站建设,企业网站建设,成都品牌网站建设,成都营销网站建设,外贸营销网站建设,黑河网站建设费用合理。

配置了tomcat的jndi数据库连接池,需要启动tomcat服务。而jsp运行正好需要启动tomcat,这样就可以初始化了tomcat的jndi数据库连接池。

而在java类的main主方法里面调用jndi数据库连接池肯定不行,因为main是静态的,当main运行时,jndi还没有初始化呢。所以你可以通过jsp向servlet请求,然后通过java类dao来调用jndi数据库连接池,这样在java类中也就可以调用jndi数据库连接池了!

ibatis中的jndi怎么配置

我使用的环境是netbeans6.7,ibatis-2.3.4,mysql5.1,tomcat6.018。

整个过程分为两步:创建数据库和创建一个简单的web工程。

首先,创建一个示例数据库。我使用的sql语句如下:

[java] view plain copy print?

Create database SimpleIBatis;

use SimpleIBatis;

create table User(

ID int(3) not null auto_increment primary key,

User_Name char(10) not null,

User_Password char(10) not null,

User_Time timestamp

);

insert into User(User_Name, User_Password) values('test', 'test');

其次,新建一个Java web工程

在netbeans中,新建一个名为”SimpleIBatis“的Java web工程,在库中添加ibatis的包。

在 源包中新建这几个文件:persistence.SqlMap.java, persistence.domain.User.java, persistence.sql.SqlMapConfig.xml, persistence.sql.User.xml,其实就是三个包加里面的四个文件。源码分别如下:

SqlMap.java:

[java] view plain copy print?

package persistence;

import com.ibatis点抗 mon.resources.Resources;

import com.ibatis.sqlmap.client.SqlMapClient;

import com.ibatis.sqlmap.client.SqlMapClientBuilder;

import java.io.IOException;

import java.io.Reader;

import java.sql.SQLException;

import persistence.domain.User;

public class SqlMap {

private static SqlMapClient sqlMapper;

static{

try{

Reader reader = Resources.getResourceAsReader("persistence/sql/SqlMapConfig.xml");

sqlMapper = SqlMapClientBuilder.buildSqlMapClient(reader);

reader.close();

}catch(IOException e){

System.err.println("An error occured on reading SqlMapConfig.xml ");

e.printStackTrace();

}

}

public static User selectUserById(int id) throws SQLException{

return (User) sqlMapper.queryForObject("selectUserById", id);

}

}

User.java

[java] view plain copy print?

/*

* To change this template, choose Tools | Templates

* and open the template in the editor.

*/

package persistence.domain;

public class User {

private int id;

private String username;

private String password;

private String time;

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getPassword() {

return password;

}

public void setPassword(String password) {

this.password = password;

}

public String getTime() {

return time;

}

public void setTime(String time) {

this.time = time;

}

public String getUsername() {

return username;

}

public void setUsername(String userName) {

this.username = userName;

}

}

SqlMapConfig.xml

[xhtml] view plain copy print?

?xml version="1.0" encoding="UTF-8"?

!DOCTYPE sqlMapConfig

PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"

""

sqlMapConfig

transactionManager type="JDBC" commitRequired="false"

dataSource type="JNDI"

property name="DataSource" value="java:comp/env/SimpleIBatis"/

/dataSource

/transactionManager

sqlMap resource="persistence/sql/User.xml"/

/sqlMapConfig

User.xml

[xhtml] view plain copy print?

?xml version="1.0" encoding="UTF-8"?

!DOCTYPE sqlMap

PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"

""

sqlMap namespace="User"

typeAlias alias="User" type="persistence.domain.User"/

select id="selectUserById" parameterClass="int" resultClass="User"

select

ID as id,

User_Name as username,

User_Password as password,

User_Time as time

from User

where ID = #id#

/select

/sqlMap

在index.jsp中的代码:

[java] view plain copy print?

%@page contentType="text/html" pageEncoding="UTF-8"%

%@page import="persistence.SqlMap, persistence.domain.User" %

!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

""

html

head

meta http-equiv="Content-Type" content="text/html; charset=UTF-8"

titleJSP Page/title

/head

body

p

%

User user = SqlMap.selectUserById(1);

String username = user.getUsername();

String password = user.getPassword();

%

UserName:%=username%br/

PassWord:%=password%

/p

/body

/html

附:

刚刚测试了下,在User.xml的select语句中可以不将全部字段选出来,那些没有在select的字段默认值为null之类的。如下面是我测试用的select语句:

[xhtml] view plain copy print?

?xml version="1.0" encoding="UTF-8"?

!DOCTYPE sqlMap

PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"

""

sqlMap namespace="User"

typeAlias alias="User" type="persistence.domain.User"/

select id="selectUserById" parameterClass="int" resultClass="User"

select

User_Password as password

from User

where ID = #id#

/select

/sqlMap

java JNDI现在还有人用吗?JNDI有哪些用处?用JNDI有优势吗?有哪些优势?

我们公司就用jndi,存在就有它的道理,

1、可以不用暴露数据库用户名、密码在代码配置中(尤其安全性要求高的项目)

2、有跨库事务时代码处理更简单(用的是resin容器)

3、打war包时不用区分测试生产配置,不用担心配置错数据库

求解释下面的代码,Java有关JNDI的,万分感谢!

你可以把JNDI看成是名称和值的对应关系就好了,用的时候取名字,至于值是什么,可以随时改变而不影响使用,使用的时候只任名字,这样可以把数据库的具信息封装隔离开来,而不用硬编码;至于具体的代码,每个Web服务器都不一样,不必太计较,看文档就可以了


分享名称:java代码配置jndi java环境配置代码
文章来源:http://myzitong.com/article/ddesssj.html