|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
自己的整个学习思路完全被老师的讲课思路所牵制,这样几节课听下来,恐怕自己的见解都应该是书里的知识点了,根本谈不上自身发现问题,分析问题,和解决问题能力的切实提高。
现阶段我们在开辟报表的时分,是利用jdbc链接数据库的,为进步报表的运转效力和不乱性,利用毗连池举行办理。对照烦琐和低耦合的办理举措,利用jndi毗连池。
jdbc和jndi的区分
JDBC-最基础的毗连数据库的体例,每次对数据库打交道的时分,毗连数据库是必要实例下你完成毗连数据库的办法大概类。
JNDIDataSource英文全称是:JavaNamingandDirectoryInterfacejava命明接口,当服务启动时事前把毗连数据库的已连很多多少条,详细几条你能够设置,寄存在tomcat容器里,用的时分能够间接利用,不必再实例化失掉毗连,绝对与jdbc效力要快点
在eclipse计划报表的时分,我们利用jdbc链接数据库做测试,当到了tomcat运转情况中切换到jndi毗连池,这是对照便利的开辟办法。
完成步骤:
1.tomcat设置jndi毗连池
在{tomcat目次}webapps{项目名}META-INF中新增context.xml文件,设置代码以下
<resource-ref>
<description>DatabaseSource</description>
<res-ref-name>jdbc/travel_agency</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
3.实例报表中数据源代码
1<data-sources>
2 <oda-data-sourceextensionID="org.eclipse.birt.report.data.oda.jdbc"name="数据源"id="227">
3 <propertyname="odaDriverClass">com.mysql.jdbc.Driver</property>
4 <propertyname="odaURL">jdbc:mysql://192.168.1.100/travel_agency</property>
5 <propertyname="odaUser">itravel</property>
6 <encrypted-propertyname="odaPassword"encryptionID="base64">NzA5Mzk0</encrypted-property>
7 <propertyname="odaJndiName">java:comp/env/jdbc/travel_agency</property>
8 </oda-data-source>
9 </data-sources>
除第7行<propertyname="odaJndiName">java:comp/env/jdbc/travel_agency</property>,其他是我们的之前的设置。用了第7行的代码,暗示该报表撑持jndi数据源,birt在运转报表的时分,会先用jndi往毗连,假如失利了再用jdbc链接,如许做的优点就是,我们在开辟报表的时分,没有放到web情况中,可使用jdbc,当放到tomcat中,由于有了第7行的设置。默许接纳jdni毗连。
4.步骤3中第6行暗码的天生程序(JAVA程序)
packagecom.hollycrm.birt.security;
importjava.io.BufferedReader;
importjava.io.IOException;
importjava.io.InputStreamReader;
importsun.misc.BASE64Encoder;
publicclassCreateBirtBase64Password{
publicstaticvoidmain(String[]args){
InputStreamReaderinStreamReader=newInputStreamReader(System.in);
BufferedReaderbuffReader=newBufferedReader(inStreamReader);
System.out.println("请输出必要经由过程Base64加密的字符串:");
StringstrSrcPassword=null;
try{
strSrcPassword=buffReader.readLine();
if(strSrcPassword!=null){
//经由过程用户输出的暗码信息天生Base64的加密暗码
StringstrBase64Password=newBASE64Encoder().encode(strSrcPassword.trim().getBytes());
System.out.println("您输出的原始暗码为:"+strSrcPassword+"对应天生的Base64暗码值为:"+strBase64Password);
}
}catch(IOExceptione){
e.printStackTrace();
}
}
C#是不行的,比如说美国的航天飞船里就有java开发的程序以上是我的愚见,其实不管那种语言,你学好了,都能找到好的工作, |
|