之前做课设MFC时候无意看到csdn一名学长写的对大学四年的回顾,顿时感到自己弱爆发一条私信给那个学长,学长给了我许多建议,其中一个便是可以尝试写博客来分享和记录自己的经历,所以我就来写第一篇啦~~~
自己有幸能认识学校的大神周老师,于是自己一个大二的啥都不会就直接踏入了EJB的世界,接下来记录的这几天自己的经历和短时间内的任务。
当我们要连接数据库时,要先检查是否有这个数据库的驱动,而JBOSS7是采用模块化部署,与JBOSS前几个版本不同(Q1--好像是在JBOSS4之后就有很大的变动),所以我们要根据目录C:\jboss-7.1.1\modules\com在com下新建文件夹orcale(这里以oracle为例),部署JBoss中没有的模块。然后再oracle文件夹里建main,这是JBoss设定好的路径,它会根据这个路径加载模块,另外我们要明确自己要的oracle的驱动jar包并且知道它依赖于哪些其他的jar包,我们可以在网上搜索相关的信息,而后在main的文件夹中我们需要建立module.xml,其中的格式如图:
urn是指Uniform Resource Name,统一资源名称(另外url是指Uniform Resource Location,统一资源地址),resource中的jar包便是你的驱动,com.oracl是模块名字根据放置的文件夹位置产生的,这些都是相对路径,一般服务器都是有备用的,所以没有用绝对路径的,这样一个坏了另一个可以跟上(磁盘振片、双机热备),dependencies是你的模块依赖关系,先部署dependencies里的模块再部署这个模块。模块的好处是,运行时会先找module.xml,根据模块找jar,这以后如果改jar驱动只需要改个resource就可以了,别的依赖你的jar包因为改成依赖你的模块就不需要再去改那些依赖关系了。这样我们就成功部署了功能块了,部署模块相当于给多放了一个控件。
模块部署好了之后我们就可以开始进行使用啦,standalone.xml是JBoss运行时要用到的部署文件,
这是standalone.xml中关于数据库的部分,另外需要明白的是jndi是找数据源的名字,数据库连接池=数据源,jdbc:oracle:thin是指oracle轻量级的驱动。在之前网上学习的时候有提到要写persistence.xml文件,而在JBoss下不需要,虽然之前看百度都说建了EJB新的工程会自动给一个这个文件,然而在如今JBoss7下没有了这个持久层,而持久层的用处是对于不用的数据连接不会立即释放而是会给一段时间等待别人去使用,超过时间就会释放,这样就不会反复创建/释放连接,提高效率。要注意的是我们需要更改IP,端口对于oracle都是1521,用户名密码数据库名字当然也是要更改的。
这些都是在配置数据源时候的前期准备。而在真正进行数据库连接的时候,就只需要这些代码:
try {
final String dataSourceJndiName="java:jboss/datasources/BMSOracleDS";
InitialContext ctx = new InitialContext();
DataSource ds = (DataSource) ctx.lookup(dataSourceJndiName);//找到对象但是要告诉类型
//DataSource需要引入的包import javax.sql.DataSource;
Connection conn = ds.getConnection();
Statement stat = conn.createStatement();
ResultSet rs = stat.executeQuery("select * from ZKY.STUDENT");
rs.next();//切记要先next
str = rs.getString("ID");
if (rs != null) {
str = "Having got data successfully.";
} else {
str = "An error occured.";
}
rs.close();
stat.close();
conn.close();
} catch (Exception e) {
str = "Try!!!";
}
return str;
<span style="white-space:pre"> </span>这样用EJB连接数据库的基本事情算是搞定了。
<span style="white-space:pre"> </span>2016.1.26 21:21