(1)下面是发布模板的代码:
public void publishOneTemplate(){
try{
ssId = this.getFTPClientInfo();
if(ssId != null && !"".equals(ssId)){
this.connectServerAndSetFileType();
localFilePath = this.getFileAbsolutePath();
System.out.println("localFilePath="+localFilePath);
if(localFilePath != null && flag == true){
createDatabase(localFilePath);
this.createDirectoryName(publishWebsiteName,ftpClient,new File(localFilePath),localFilePath);
}
this.closeConnect();
}
}catch(java.net.SocketException se){
se.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}
}
(2)下面是自动建立数据库mysql
public void createDatabase(String path){
Connection connection = null;
try {
String jdbcFile = path + "/WEB-INF/conf/jdbc.properties";
InputStream in = new FileInputStream(jdbcFile);
Properties p = new Properties();
p.load(in);
String driver = p.getProperty("jdbc.driver");
String url = p.getProperty("jdbc.url");
String databaseUrl = url.substring(0, url.lastIndexOf("/"))+"/information_schema";
String databaseName = url.substring(url.lastIndexOf("/")+1,url.length());
String user = p.getProperty("jdbc.username");
String password = p.getProperty("jdbc.password");
Class.forName(driver);
connection = DriverManager.getConnection(databaseUrl, user, password);
connection.setAutoCommit(false);
Statement statement = connection.createStatement();
ResultSet rs = statement.executeQuery("select * from SCHEMATA where SCHEMA_NAME='"+databaseName+"'");
if (!rs.next()){
statement.clearBatch();
statement.addBatch("create database if not exists `"+databaseName+"`");
File scriptFile = new File(path + "/WEB-INF/script/database.sql");
String script = FileUtil.convertFile2String(scriptFile);
statement.addBatch("USE `"+databaseName+"`");
String[] scripts = script.split(";");
for (int i = 0; i < scripts.length; i++){
if (!"".equals(scripts[i].trim()))
statement.addBatch(scripts[i]);
}
statement.executeBatch();
connection.commit();
}
} catch (FileNotFoundException e) {
logger.error(e.getMessage());
} catch (IOException e) {
logger.error(e.getMessage());
} catch (ClassNotFoundException e) {
logger.error(e.getMessage());
} catch (SQLException e) {
if (connection != null){
try {
connection.rollback();
} catch (SQLException e1) {
logger.error(e1.getMessage());
}
}
logger.error(e.getMessage());
} finally {
if (connection != null){
try {
connection.close();
} catch (SQLException e) {
logger.error(e.getMessage());
}
}
}
}
(3)这是它里面调用的一个方法。
public static String convertFile2String(File file, String encoding) throws IOException{
byte[] bs = new byte[new Long(file.length()).intValue()];
FileInputStream in = new FileInputStream(file);
try{
in.read(bs);
}finally{
in.close();
}
return encoding==null? new String(bs):new String(bs,encoding);
}
public static String convertFile2String(File file) throws IOException{
return convertFile2String(file,null);
}
分享到:
相关推荐
这篇博客文章“seam创建工程”很可能是指导读者如何在开发环境中设置和初始化一个Seam项目。 首先,创建Seam工程通常涉及以下步骤: 1. **环境准备**:确保你的开发环境中已经安装了Java JDK、Eclipse IDE(或其他...
生产环境的数据库schema通常不会在部署时自动导出,需要手动处理。 通过上述步骤,你将成功创建一个基础的JBoss Seam工程。值得注意的是,尽管Seam项目中可能包含大量XML配置,但大部分是标准的Java EE配置,一旦...
Seam自动管理组件的生命周期,包括创建、初始化、销毁等过程。 2. **事件(Events)**: 事件模型是Seam的一大特色,允许组件之间通过发布和监听事件进行通信,增强了组件间的解耦合。 3. **注入(Injection)**: ...
Seam-gen 是一款用于快速生成基于 Seam 框架的基础项目结构的工具,它通过简单的命令行交互式过程,帮助开发者构建项目的雏形,并且能够根据数据库信息自动生成管理数据库的 CRUD(Create, Read, Update, Delete)...
3. **事务管理**:Seam自动管理Hibernate的事务,使得开发者无需编写繁琐的事务控制代码。在JSF动作事件触发时,Seam可以自动开启、提交或回滚事务。 4. **安全性和身份验证**:Seam提供了内置的安全框架,可以轻松...
2. **建立新的Eclipse项目**:通过Seam-gen插件自动创建项目模板。 3. **创建新操作**:演示了如何使用Seam-gen添加新功能或页面。 4. **生成应用程序**:从现有数据库中自动生成完整的Seam应用。 5. **部署EAR**:...
Seam-gen还支持从现有的数据库模式自动生成Seam应用的骨架代码,大大减少了初始阶段的手动编码工作量。 **2.6 将应用部署为EAR** 通过Seam-gen可以轻松地将Seam应用打包成EAR文件格式,并部署到支持EJB的容器中。 ...
1. **组件化**:Seam引入了一种强大的组件模型,使得开发人员可以轻松地创建、管理和组合应用程序组件。这些组件可以是UI元素、业务逻辑或者数据访问对象,它们通过依赖注入(Dependency Injection, DI)进行通信,...
- **从现有数据库生成应用程序**:利用现有的数据库架构自动生成 SEAM 代码。 - **将应用部署为EAR**:打包为 EAR 文件以便部署到 Java EE 容器。 - **Seam与增量热部署**:支持热部署,提高开发效率。 - **在Jboss...
本文将详细讲解如何在Eclipse环境中创建并理解一个Seam工程的实例,结合EJB(Enterprise JavaBeans)和JSF(JavaServer Faces)的应用。 **Seam框架** Seam是一个开源的Java EE框架,它简化了企业级应用的开发过程...
在Seam框架中,`JSF`是用于构建用户界面的MVC(Model-View-Controller)框架,它允许开发者通过声明式的方式创建动态和交互式的Web页面。`JPA`则负责数据持久化,与数据库进行交互,使得开发者能够方便地管理和操作...
- **Seam 和 jBPM 集成**:通过将 Seam 组件与 jBPM 流程引擎相结合,实现业务流程的自动化。 - **任务管理**:Seam 负责用户界面和交互逻辑,jBPM 负责处理任务的执行流程。 **1.4.2 工作原理** - **流程定义**:...
2. **组件模型**:Seam引入了自己的组件模型,允许开发者声明式地创建和管理对象。这种模型允许组件之间的依赖注入,并提供了生命周期管理,使得代码更加简洁和可测试。 3. **JSF集成**:Seam与JavaServer Faces的...
- **使用Seam创建CRUD数据库应用**:这部分内容详细介绍了如何使用Seam Dev Tools快速生成一个CRUD数据库应用。 #### 12. CRUD应用实践教程 - **使用CRUD应用**:这部分内容提供了关于如何使用之前创建的CRUD应用...
- **从现有数据库生成应用程序**:使用 Seam-gen 从现有的数据库结构自动生成应用程序。 - **将应用部署为 EAR**:介绍了如何将 Seam 应用程序打包成 EAR 文件进行部署。 - **Seam 与增量热部署**:介绍了如何利用 ...
5. **验证码支持**:为了防御自动化攻击,如脚本或恶意软件,Seam 提供了验证码功能,增强网站的安全性,防止非法登录和其他恶意行为。 对于开发人员来说,Seam 提供了方便的 API 和组件来控制这些功能。例如,可以...
- **数据库逆向工程**:这部分介绍了如何使用Seam框架的工具从现有数据库中自动生成应用程序。 ##### 6. 从现有的JPA/EJB3实体生成应用 - **实体逆向工程**:这部分介绍了如何使用Seam框架从现有的Java持久化API ...
- **创建CRUD数据库应用程序**:使用Seam框架可以快速搭建具有增删改查功能的应用程序,包括数据库设计、实体类生成、页面开发等步骤。 #### 九、CRUD应用程序实战演示 - **使用CRUD应用程序**:介绍如何使用已经...