java 代码初始化数据库表结构,存储过程和函数的方法
2017-06-17 09:38
519 查看
package xxx; import java.io.File; import java.util.Map; import org.apache.tools.ant.Project; import org.apache.tools.ant.taskdefs.SQLExec; import org.apache.tools.ant.types.EnumeratedAttribute; import org.apache.tools.ant.types.FileSet; import org.framework.config.Global; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class JdbcUtils { private final static Logger logger = LoggerFactory.getLogger(JdbcUtils.class); /**刷新数据库脚本,存入数据库中 * @param path * j2ee web path: this.getClass().getClassLoader().getResource("/").getPath(); * j2se path:ne 4000 w File(JdbcUtils.class.getResource("/").getFile()).getCanonicalPath(); * thread path:Thread.currentThread().getContextClassLoader().getResource("").toString().replaceFirst("file:/", ""); */ public static void scanSQL(String... paths){ try{ Map jdbcMap = Global.getJDBCInfo(); //jdbc配置信息不存在 不执行 if(jdbcMap==null){ return ; } String path = ""; if(paths==null||paths.length<=0){ path = Thread.currentThread().getContextClassLoader().getResource("").toString().replaceFirst("file:/", ""); }else{ path = paths[0]; } String driver = jdbcMap.get("driver").toString(); String url = jdbcMap.get("url").toString(); String user = jdbcMap.get("user").toString(); String psd = jdbcMap.get("psd").toString(); SQLExec sqlExec = new SQLExec(); sqlExec.setDriver(driver); sqlExec.setUrl(url); sqlExec.setUserid(user); sqlExec.setPassword(psd); //结束符为/ 表、函数、存储过程都要以/结尾 sqlExec.setDelimiter("/"); //设置脚本路径 FileSet fileSet=new FileSet(); fileSet.setProject(new Project()); fileSet.setDir(new File(path+Global.getDBShellPath())); //只处理以sql结尾的文件 fileSet.setIncludes("*.sql"); sqlExec.addFileset(fileSet); //有出错的语句该如何处理 sqlExec.setOnerror((SQLExec.OnError)(EnumeratedAttribute.getInstance(SQLExec.OnError.class, "abort"))); sqlExec.setPrint(true); //设置是否输出 sqlExec.setProject(new Project()); // 要指定这个属性,不然会出错 sqlExec.execute(); }catch(Exception e){ logger.info("scanSQL error",e); } } public static void main(String args[]){ //scanSQL(); String path; try { //path = new File(JdbcUtils.class.getResource("/").getFile()).getCanonicalPath(); //path = Thread.currentThread().getContextClassLoader().getResource("").toString().replaceFirst("file:/", ""); scanSQL(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
相关文章推荐
- springmvc 初始化表结构,函数和存储过程的方法
- java中调用数据库中的存储过程和函数
- Java中调用数据库的存储过程存储函数和包体
- java中使用jdbc和mybatis调用数据库中的存储过程和函数
- 数据库事务和存储过程已经函数的概念以及使用方法
- java中用事物控制语言调用数据库中的数据,以及调用存储过程或函数
- Java代码调用数据库带输出参数的存储过程
- Java代码调用存储过程和存储方法
- Java代码调用存储过程和存储方法
- SQL脚本判断数据库、函数、 存储过程等是否存在的方法
- Java代码中执行存储过程和函数
- MySQL导出数据库、数据库表结构、存储过程及函数
- Java学习笔记之数据库(触发器、事物、索引、投影和除、视图、存储过程和函数 )含各种链)___ 一直补充
- 使用 mysqldump 命令导出数据库存储过程及函数的方法!
- Java代码调用Oracle的存储过程,存储函数和包
- JAVA面向对象知识点总结(3)—静态static、主函数详解、静态代码快、对象初始化过程
- 取汉字拼音首字母的存储过程--很值得收藏的数据库自定义函数
- 动态改变数据库表结构的sql存储过程
- 利用Java存储过程简化数据库操作
- 正试图在 os 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码,这样做会导致应用程序挂起。问题的解决方法!