您现在的位置是:首页
>
栈在计算机中的应用 Mybatis 在CS程序中的应用
My ati 在CS程序中的应用 如果是自己用的My ati 不需要考虑对配置文件加密 如果不是 那就需要考虑加密 这篇文章主要讲如何配置CS的My ati 因为my ati 好使 所以几乎需要操
Mybatis 在CS程序中的应用

如果是自己用的Mybatis 不需要考虑对配置文件加密 如果不是 那就需要考虑加密 这篇文章主要讲如何配置CS的Mybatis
因为mybatis好使 所以几乎需要操作数据库的时候 我都会使用mybatis 而且在一个正式的项目中 同时存在BS和CS的程序 都使用的Mybatis 使用的相同mapper文件 Mybatis的XML配置文件正常如下
复制代码 代码如下: <?xml version=" " encoding="UTF " ?> <!DOCTYPE configuration PUBLIC " //mybatis //DTD Config //EN" " <configuration> <environments default="development"> <environment id="development"> <transactionManager type=JDBC /> <dataSource type=POOLED> <property name=driver value="driver" /> <property name=url value="url" /> <property name=username value="username" /> <property name=password value="password" /> </dataSource> </environment> </environments> <mappers> <mapper resource="/isea/dao/YouMapper xml" /> </mappers> </configuration>为了防止数据库用户名密码泄漏 我将XML进行双向加密 变成了一个字节文件 而且文件名后缀随意 例如 basic data 内容局部如下
根据XML生成Mybatis的SqlSessionFactory 代码如下
复制代码 代码如下: public class MyBatis { private static final String CONFIG = "basic data"; private SqlSessionFactory sqlSessionFactory; private static MyBatis instance = new MyBatis(); private MyBatis(){ InputStream inputStream = null; try { inputStream = getXMLIS(); if(inputStream==null){ throw new RuntimeException("数据库信息配置失败!"); } sqlSessionFactory = new SqlSessionFactoryBuilder() build(inputStream); } finally{ try { inputStream close(); } catch (Exception e) { } } } public static InputStream getXMLIS(){ InputStream inputStream = null; try { //对资源进行加密 解密后处理 BufferedReader reader = new BufferedReader(new FileReader(new File(Config LOCATION+"/"+CONFIG))); String str = null; StringBuffer sbBuffer = new StringBuffer(); while((str=reader readLine())!=null){ sbBuffer append(str); } EncrypDES encrypDES = new EncrypDES(); String result = encrypDES Decryptor(sbBuffer toString()); inputStream = new ByteArrayInputStream(result getBytes()); return inputStream; } catch (Exception e) { } return null; } public SqlSessionFactory getSqlSessionFactory(){ return sqlSessionFactory; } public static MyBatis getInstance(){ return instance; } }这里的data文件是在src下 代码中的EncrypDES是一个使用DES的加密解密类 代码中的Config LOCATION代码如下
复制代码 代码如下: public static String getRealPath() throws Exception { String realPath = Config class getClassLoader() getResource("") getFile(); java io File file = new java io File(realPath); realPath = file getAbsolutePath(); realPath = java net URLDecoder decode(realPath "utf "); return realPath; } lishixinzhi/Article/program/Java/JSP/201311/20548 很赞哦! (1041)