java读取sql脚本文件并插入到mysql数据库

因为项目框架hibernate里的hibernate.hbm2ddl.auto属性设置为create(为了使得开发人员只关注于实体类而不必去关心数据库设计。。。),所以我们每次部署项目的时候都会把数据库生成的表全删除了然后根据实体类生成数据表,这样就需要在maven项目写一个测试类来初始化项目需要的一些基础数据,如用户、权限、资源、字典等。因为maven在构建到特定的生命周期阶段的时候会通过插件来
摘要由CSDN通过智能技术生成
因为项目框架hibernate里的hibernate.hbm2ddl.auto属性设置为create(为了使得开发人员只关注于实体类而不必去关心数据库设计。。。),所以我们每次部署项目的时候都会把数据库生成的表全删除了然后根据实体类生成数据表,这样就需要在maven项目写一个测试类来初始化项目需要的一些基础数据,如用户、权限、资源、字典等。因为maven在构建到特定的生命周期阶段的时候会通过插件来执行JUnit或者TestNG的测试用例,这个插件就是maven-surefire-plugin(这是需要配置的,当然也可以禁止去执行测试类,甚至禁止编译测试类),需要了解的请学习相关maven文档,或者参考http://blog.csdn.net/sin90lzc/article/details/7543262。
    考虑到上述因素,那么我就在src/test/java文件夹下新建一个测试类,那么这个测试类就会在clean install时候会执行,那么在这个时候执行数据初始化是合适的。因为初始化数据来自于sql脚本,所以我得读取sql脚本的内容并解析成相关的sql语句通过java的jdbc执行sql语句。那就开始做吧。不多说,上代码:
   
   
  1  package  com.infopatent.juangetljc.core;
  2 
  3  import  java.io.BufferedReader;
  4  import  java.io.FileInputStream;
  5  import  java.io.InputStream;
  6  import  java.sql.Connection;
  7  import  java.sql.DriverManager;
  8  import  java.sql.SQLException;
  9  import  java.sql.Statement;
 10  import  java.util.ArrayList;
 11  import  java.util.Arrays;
 12  import  java.util.List;
 13 
 14  import  org.junit.Test;
 15 
 16  import  junit.framework.TestCase;
 17 
 18  public   class  InitDataTest  extends  TestCase {
 19 
 20       private  String url  =   " jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8 " ;
 21       private  String driver  =   " com.mysql.jdbc.Driver "
 22       private  String userName  =   " root " ;
 23       private  String password  =   "" ;
 24      String filePathIn  =   " F://workspace/juange-tljc/juange-tljc-core/src/test/java/basedata.sql " ;
 25 
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值