summaryrefslogblamecommitdiffstats
path: root/Dozentenmodulserver/src/main/java/sql/SQL.java
blob: 98fc8ef7f91c33451da724add7ef177b0f6c89dc (plain) (tree)
1
2
3
4
5
6
7
8

             

                   

                                   
                            
                       


                          
                         

                       

                             
                                
                              

                       

                   
 

                                                                            
                                            





                                                                              
                  
                      
                                                       
                                                                                                                                                                                                                 
                                                  
                         


                                                           
                                                                                            



                                             
 
                                                            

                               
                                                        






                                                                                                                                          
                                                                                                                                      
                                      
                                     

                                                                                          


                                                           
                                                                             



                                             
 
                                             

                               
                                                        




                                                                                                               
                                      
                                     
                                                                                   


                                                           
                                                                           



                                             
 
                                      
                      
                                                        
                                                               
                                         
                                                                                                                


                                     

                                                           
                                                                         

                                             
 

                             
 
                                                      
                                          
                      
                                                        
                                                               
                                         




                                                                                                                                  
                                    


                                                                
 

                                                           
                                                                               

                                             
 

                             
 
                                                          
                      
                                                        




                                                                                                                
                         
                                                   

                                                                          

                                                                                                                             
                                              


                                                                                                                                     
                                           



                                                                                  
                                 


                                                                                   
                          
 

                                                           
                                                                               

                                             
                             
          
 
                                                               
                                                                                             

                                                                                    
                                                        







                                                                                                                   
                         
                                                   

                                                                          

                                                                                                                                                                          
                                                        

                                                        

















                                                                                                                           


                                                                      
                                 
                                             


                                                                       
                          
 

                                                           
                                                                          

                                             
                             
          
 
                                                                       
                                                                                
                                                                                                 
 
                                                                                    




                                          
                  

                                         


                      
                                                        
                                                               

                                                                   
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
























                                                                                                    

                                                                                
                                                                        
                                                  
                                      
                                     

                                                           
                                                                             

                                             
                             
 
          
 









                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
 
                         
 




















                                                                                                                              
          
 

                                                               
                      
                                                        
                                                               
                                          
                                                                                                                                                                                                                                                                                                                                                            
                                             
 








                                                                                                       
                                           
                                                           
                                                                               



                                             
 

                                                       
                      
                                                        
                                                               
                                         
                                                                                                         




                                                                

                                                           
                                                                         

                                             

                             
 
          
 
                                                                
                                           
                                                                         
                      
                                                        
                                                               
                                          




                                                                                                                                                                                  









                                                                               

                                                           
                                                                              



                                             
 
                                                                     


                                                                                      
                                                                                    
                                    
 

                                        

                      
                                                        
                                                               

                                                                   



























                                                                                                                                                                                                                                                                                                
                                      
                                     

                                                           
                                                                               


                                             
 
          
 

                                                                         
                      
                                                        
                                                               
                                             

                                                                                                                                                     






                                                                                                     

                                                           
                                                                                     



                                             
 

                                                                            
                      
                                                        
                                                               
                                           
                                                                                                                                                                                                                                                                
                                                                                                            
                                              





                                                                                                  


                                                                                        


                                     

                                                           
                                                                             



                                             
 
                                                                                  
                                                                                          
                                                                                               
                      
                                                        
                                                                                            






                                                                        
                          

                                                 
                          

                                                                                                                           



                                                                                                            

                                                               











                                                                                



                                                                     

                                                                   


                                                                                        
                                      
                                     


                                                           
                                                                                



                                             
 
                                                                
 
                      
                                                        
                                                               


                                                                                                             
 
                                      
                                     
                                     
 

                                                           
                                                                            
                                             
                  
 
                              

          
                                                      


                                                                                      







                                                                                    
                                                        
                                                               
                                                                                                  















                                                                                 
                                      
                                     
                                                                                     
 

                                                           
                                                                                  

                                             
 


                          
 
                                                                       
 
                      
                                                        

                                                               


                                                                                               
                                     
                                           
 

                                                           

                                                                                              

                                             
 
                              

          
 
                                                  
 
                      
                                                        
                                                               

                                                                                                        
                         
                                      
                                     


                                                           
                                                                              

                                             
 

                              
 
                                                                     
 
                      
                                                        

                                                               





                                                                                                                                    
                                   
                                                                
                                     
                                     


                                                           
                                                                        




                                             
 

                                                                         
                      
                                                        

                                                               


                                                                                                                                         




                                                                                          
 

                                     


                                                           
                                                                                 




                                             
         
                                                  
                      
                                                        







                                                                                                          
                                     







                                                                                
  
package sql;

import java.sql.*;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.UUID;

import models.Configuration;

import org.apache.log4j.Logger;
import server.BinaryListener;
import server.Image;
import server.Lecture;

public class SQL {

	private static Logger log = Logger.getLogger(BinaryListener.class);

	public Connection getConnection() {
		try {
			Class.forName("com.mysql.jdbc.Driver").newInstance();
		} catch (InstantiationException | IllegalAccessException
				| ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		try {
			Connection con = DriverManager
					.getConnection("jdbc:mysql://"+Configuration.config.getSql_connection()+"?user="+Configuration.config.getSql_user()+"&password="+Configuration.config.getSql_pass()+"");
			con.setAutoCommit(false);
			
			return con;
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			log.info(new Date() + " - Failed to return connection to Client.");
			e.printStackTrace();
		}
		return null;
	}

	public int writeFTPUser(String user, String pass) {
		Statement stm;
		try {
			Connection con=getConnection();
			stm = con.createStatement();

			int ret = stm
					.executeUpdate("INSERT INTO `bwLehrpool`.`FtpUsers`(`User`,`Password`,`Uid`,`Gid`,`Dir`)VALUES('"
							+ user
							+ "',SHA1('"
							+ pass
							+ "'),'10001','12345','"+Configuration.config.getAbsolute_path()+"temp/');");
			con.commit();
			con.close();
			log.info(new Date() + " - created FTPUser " + user + " : " + pass
					+ ".");
			return ret;
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			log.info(new Date() + " - Failed to writeFTPUser.");
			e.printStackTrace();
		}
		return -1;
	}

	public int DeleteUser(String user) {
		Statement stm;
		try {
			Connection con=getConnection();
			stm = con.createStatement();

			int ret = stm
					.executeUpdate("DELETE FROM `bwLehrpool`.`FtpUsers` where User like '"
							+ user + "';");
			con.commit();
			con.close();
			log.info(new Date() + " - FTPUser " + user + " deleted.");
			return ret;
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			log.info(new Date() + " - Failed to DeleteUser.");
			e.printStackTrace();
		}
		return -1;
	}

	public ResultSet getImage() {
		try {
			Connection con=getConnection();
			Statement stm = con.createStatement();
			ResultSet rs=stm
					.executeQuery("SELECT image_name FROM bwLehrpool.m_VLData_imageInfo;");
			con.close();
			return  rs;
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			log.info(new Date() + " - Failed to getImage.");
			e.printStackTrace();
		}

		return null;
	}

	public String getPathOfImage(String image_id,
			String version) {
		try {
			Connection con=getConnection();
			Statement stm = con.createStatement();
			ResultSet rs=stm
					.executeQuery("SELECT image_path FROM bwLehrpool.m_VLData_imageInfo where GUID_imageID='"
							+ image_id
							+ "' and imageVersion='"
							+ version
							+ "';");
			rs.first();
			String path=rs.getString("image_path");
			con.close();
			return  path;

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			log.info(new Date() + " - Failed to getPathOfImage.");
			e.printStackTrace();
		}

		return null;
	}

	public String setInstitution(String university) {
		try {
			Connection con=getConnection();
			Statement stm = con.createStatement();

			ResultSet ret = stm
					.executeQuery("SELECT * FROM bwLehrpool.m_institution where name like'"
							+ university + "';");
			
			if (ret.next() == false) {
				
				String id = UUID.randomUUID().toString();
				stm.executeUpdate("INSERT INTO `bwLehrpool`.`m_institution`(`institutionID`,`name`)VALUES('"
						+ id + "','" + university + "');");
				con.commit();
				ResultSet rs = stm
						.executeQuery("SELECT institutionID FROM bwLehrpool.m_institution WHERE name like '"
								+ university + "';");
				rs.next();
				String institution=rs.getString("institutionID");
				con.close();
				
				return institution;
			} else {
				String institution=ret.getString("institutionID");
				con.close();
				return institution;
			}

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			log.info(new Date() + " - Failed to setInstitution.");
			e.printStackTrace();
		}
		return "-1";
	}

	public String setPerson(String login, String lastname,
			String firstname, String mail, Date lastlogin, String Institution) {
		DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
		try {
			Connection con=getConnection();
			Statement stm = con.createStatement();

			ResultSet ret = stm
					.executeQuery("SELECT userID FROM bwLehrpool.m_user where Nachname like '"
							+ lastname
							+ "' and Vorname like '"
							+ firstname
							+ "';");
			
			if (ret.next() == false) {
				
				String id = UUID.randomUUID().toString();
				stm.executeUpdate("INSERT INTO `bwLehrpool`.`m_user`(`userID`,`loginName`,`nachname`,`vorname`,`mail`,`lastLogin`,`institution`)VALUES('"
						+ id
						+ "','"
						+ login
						+ "','"
						+ lastname
						+ "','"
						+ firstname
						+ "','"
						+ mail
						+ "','"
						+ formatter.format(new Date())
						+ "','"
						+ Institution
						+ "');");
				con.commit();
				ResultSet rs = stm
						.executeQuery("SELECT userID FROM bwLehrpool.m_user where Nachname like '"
								+ lastname
								+ "' and Vorname like '"
								+ firstname
								+ "';");
				rs.next();
				String userid=rs.getString("userID");
				con.close();
				return userid;
			} else {
				ret.first();
				String userid=ret.getString("userID");
				con.close();
				return userid;
			}

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			log.info(new Date() + " - Failed to setPerson.");
			e.printStackTrace();
		}
		return "-1";
	}

	public boolean setImageData(String pk_person, boolean license,
			boolean internet, long cpu, long ram, String imagename,
			String imagePath, boolean isTemplate, long filesize, String shareMode) {

		DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");

		int internet_bol = 0;
		int license_bol = 0;
		if (internet == true) {
			internet_bol = 1;
		}
		if (license == true) {
			license_bol = 1;
		}

		try {
			Connection con=getConnection();
			Statement stm = con.createStatement();
			
			String uid = UUID.randomUUID().toString();
			stm.executeUpdate("INSERT INTO `bwLehrpool`.`m_VLData_imageInfo`(`GUID_imageID`,`imageVersion`,`image_name`,`image_path`,`image_lastCall`,`image_create_time`,`image_update_time`,`image_owner`,`image_change_by`,`rec_create_time`,`rec_change_time`,`rec_owner`,`rec_change_by`,`content_operatingSystem`,`status_isCompressed`,`status_isSecure`,`status_isOptimzed`,`status_isValid`,`status_isReady`,`status_isDeleted`,`status_isLastOfficialVersion`,`cond_hasLicenseRestriction`,`cond_hasInternetRestriction`,`cond_minRAM`,`cond_minCPUs`,`image_isTemplate`,`image_filesize`,`image_syncMode`)VALUES('"
					+ uid // GUID_imageID
					+ "',1,'" // imageVersion
					+ imagename // image_name
					+ "','" + imagePath // image_path
					+ "','" + formatter.format(new Date()) // image_lastCall
					+ "','" + formatter.format(new Date()) // image_create_time
					+ "','" + formatter.format(new Date()) // image_update_time
					+ "','" + pk_person // image_owner
					+ "','" + pk_person // image_change_by
					+ "','" + formatter.format(new Date()) // rec_create_time
					+ "','" + formatter.format(new Date()) // rec_change_time
					+ "','" + pk_person // rec_owner
					+ "','" + pk_person // rec_change_by
					+ "',0" // content_operatingSystem
					+ ",1" // status_isCompressed
					+ ",1" // status_isSecure
					+ ",1" // status_isOptimzed
					+ ",1" // status_isValid
					+ ",1" // status_isReady
					+ ",0" // status_isDeleted
					+ ",0,'" // status_isLastOfficialVersion
					+ license_bol // cond_hasLicenseRestriction
					+ "','" + internet_bol // cond_hasInternetRestriction
					+ "','" + ram // cond_minRAM
					+ "','" + cpu // cond_minCPUs
					+ "','" + isTemplate //image_isTemplate
					+ "','" + filesize //image_filesize
					+ "','" + shareMode //shareMode
					+ "');");
			con.commit();
			con.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			log.info(new Date() + " - Failed to setImageData.");
			e.printStackTrace();
		}
		return true;

	}

	public List<Image> getImageList() {
		
			Connection con=getConnection();
			Statement stm;
			List<Image> list = new ArrayList<Image>();
			try {
				stm = con.createStatement();
				ResultSet res=stm
						.executeQuery("SELECT vl.GUID_imageID, vl.imageVersion,vl.image_name, vl.cond_hasLicenseRestriction, os.name, '' as lecture,vl.image_update_time,  Concat(u.Nachname,' ',u.Vorname) as user FROM bwLehrpool.m_VLData_imageInfo vl, bwLehrpool.m_operatingSystem os, bwLehrpool.m_user u Where vl.content_operatingSystem=os.operatingSystemID and vl.image_owner=u.userID and vl.image_name not in (SELECT vl.image_name FROM bwLehrpool.m_VLData_imageInfo vl, bwLehrpool.m_operatingSystem os, bwLehrpool.m_VLData_lecture lect, bwLehrpool.m_user u Where vl.content_operatingSystem=os.operatingSystemID and lect.imageID=vl.GUID_imageID and vl.image_owner=u.userID) union SELECT vl.GUID_imageID, vl.imageVersion,vl.image_name, vl.cond_hasLicenseRestriction, os.name, lect.name as lecture,  vl.image_update_time, Concat(u.Nachname,' ',u.Vorname) as user FROM bwLehrpool.m_VLData_imageInfo vl, bwLehrpool.m_operatingSystem os, bwLehrpool.m_VLData_lecture lect, bwLehrpool.m_user u Where vl.content_operatingSystem=os.operatingSystemID and lect.imageID=vl.GUID_imageID and vl.image_owner=u.userID;");
				

			

					while (res.next()) {

						list.add(new Image(res.getString("GUID_imageID"), res
								.getString("imageVersion"),
								res.getString("image_name"), res
										.getString("cond_hasLicenseRestriction"), res
										.getString("name"), res.getString("lecture"),
								res.getString("image_update_time"), res
										.getString("user")));

					}
				
				con.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

		
			return list;
	
	}

	public List<Lecture> getLectureList() {
		List<Lecture> list = new ArrayList<Lecture>();
		try {
			Connection con=getConnection();
			Statement stm = con.createStatement();
			ResultSet res=stm
					.executeQuery("SELECT l.lectureID, l.name, l.isActive,l.startTime,l.endTime,l.lastUsed,l.description, i.image_name, concat(u.Nachname,' ',u.Vorname) as user FROM bwLehrpool.m_VLData_lecture l, bwLehrpool.m_VLData_imageInfo i, bwLehrpool.m_user u where i.GUID_imageID=l.imageID and l.admin_owner=u.userID;");
			while (res.next()) {

				list.add(new Lecture(res.getString("lectureID"), res
						.getString("name"), res.getString("isActive"), res
						.getString("startTime"), res.getString("endTime"), res
						.getString("lastUsed"), res.getString("description"),
						res.getString("image_name"), res.getString("user")));

			}
			con.close();
			return list;
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			log.info(new Date() + " - Failed to getLectureList.");
			e.printStackTrace();
		}
		return null;
	}

	public List<String> getAllOS() {
		List<String> list = new ArrayList<>();
		try {
			Connection con=getConnection();
			Statement stm = con.createStatement();
			ResultSet rs=stm
					.executeQuery("SELECT name FROM bwLehrpool.m_operatingSystem;");
			while (rs.next()) {
				list.add(rs.getString("name"));
			}
			return list;
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			log.info(new Date() + " - Failed to getAllOS.");
			e.printStackTrace();
		}

		return null;

	}

	public Map<String,String> getPersonData(String Vorname,
			String Nachname) {
		Map<String, String> map = new HashMap<String, String>();
		try {
			Connection con=getConnection();
			Statement stm = con.createStatement();
			ResultSet rs= stm
					.executeQuery("SELECT u.Nachname, u.Vorname, u.mail, i.name FROM bwLehrpool.m_user u, bwLehrpool.m_institution i where u.Nachname like '"
							+ Nachname
							+ "' and u.Vorname like '"
							+ Vorname
							+ "' and u.institution=i.institutionID;");
			while (rs.next()) {

				map.put("mail", rs.getString("mail"));
				map.put("Nachname", rs.getString("Nachname"));
				map.put("Vorname", rs.getString("Vorname"));
				map.put("Hochschule", rs.getString("name"));

			}
			con.close();
			return map;
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			log.info(new Date() + " - Failed to getPersonData.");
			e.printStackTrace();
		}
		return null;
	}

	public int setLectureData(String pk_person, String pk_image,
			int imageversion, String name, String desc, String shortdesc,
			String start, String end, boolean isactive) {

		DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
		int active_bol = 0;

		if (isactive == true) {
			active_bol = 1;
		}
		try {
			Connection con=getConnection();
			Statement stm = con.createStatement();
			
			String uid = UUID.randomUUID().toString();
			stm.executeUpdate("INSERT INTO `bwLehrpool`.`m_VLData_lecture`(`lectureID`,`name`,`isActive`,`startTime`,`endTime`,`lastUsed`,`shortDescription`,`description`,`imageID`,`imageVersion`,`admin_createTime`,`admin_changeTime`,`admin_owner`,`admin_change_by`)VALUES('"
					+ uid
					+ "','"
					+ name
					+ "','"
					+ active_bol
					+ "','"
					+ start
					+ "','"
					+ end
					+ "','"
					+ formatter.format(new Date())
					+ "','"
					+ shortdesc
					+ "','"
					+ desc
					+ "','"
					+ pk_image
					+ "','"
					+ imageversion
					+ "','"
					+ formatter.format(new Date())
					+ "','"
					+ formatter.format(new Date())
					+ "','"
					+ pk_person
					+ "','"
					+ pk_person + "');");
			con.commit();
			con.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			log.info(new Date() + " - Failed to setLectureData.");
			e.printStackTrace();
		}
		return 0;

	}

	public Map<String,String> getImageIDandVersion(String name) {
		Map<String, String> map = new HashMap<String, String>();
		try {
			Connection con=getConnection();
			Statement stm = con.createStatement();
			ResultSet image= stm
					.executeQuery("SELECT GUID_imageID, imageVersion FROM bwLehrpool.m_VLData_imageInfo where image_name like '"
							+ name + "';");
			while (image.next()) {
				map.put("GUID", image.getString("GUID_imageID"));
				map.put("version", String.valueOf(image.getString("imageVersion")));

			}
			con.close();
			return map;
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			log.info(new Date() + " - Failed to getImageIDandVersion.");
			e.printStackTrace();
		}
		return null;
	}

	public Map<String,String> getImageData(String id, String version) {
		Map<String, String> map = new HashMap<String, String>();
		try {
			Connection con=getConnection();
			Statement stm = con.createStatement();
			ResultSet data=stm
					.executeQuery("SELECT image_name,cond_hasInternetRestriction,cond_hasLicenseRestriction, cond_minCPUs, cond_minRAM, image_syncMode,image_filesize,image_path FROM bwLehrpool.m_VLData_imageInfo where GUID_imageID = '"
							+ id + "' and imageVersion = '" + version + "' ;");
			while (data.next()) {
				map.put("name", data.getString("image_name"));
				map.put("internet",
						data.getString("cond_hasInternetRestriction"));
				map.put("license", data.getString("cond_hasLicenseRestriction"));
				map.put("cpu", data.getString("cond_minCPUs"));
				map.put("ram", data.getString("cond_minRAM"));
				map.put("shareMode", data.getString("image_syncMode"));
				map.put("filesize", data.getString("image_filesize"));
				map.put("path", data.getString("image_path"));
			}
			con.close();
			return map;
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			log.info(new Date() + " - Failed to getImageData.");
			e.printStackTrace();
		}
		return null;
	}

	public int UpdateImageData(String name, String newName,String image_path,
			boolean license, boolean internet, long cpu, long ram, String id,
			String version, boolean isTemplate, long filesize, String shareMode) {
		try {
			Connection con=getConnection();
			DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
			Statement stm = con.createStatement();
			int newVersion = Integer.parseInt(version) + 1;

			int internet_bol = 0;
			int license_bol = 0;
			if (internet == true) {
				internet_bol = 1;
			}
			if (license == true) {
				license_bol = 1;
			}
			log.info(new Date() + " - 'image_name` = '"	+ newName+ "\n length of name="+newName.length());
			
			stm.executeUpdate("UPDATE `bwLehrpool`.`m_VLData_imageInfo` SET `imageVersion` = '"
					+ newVersion
					+ "',`image_name` = '"
					+ newName
					+ "',`image_path` = '"
					+ image_path
					+ "',`image_update_time` = '"
					+ formatter.format(new Date())
					+ "',`rec_change_time` = '"
					+ formatter.format(new Date())
					+ "',`cond_hasLicenseRestriction` = '"
					+ license_bol
					+ "',`cond_hasInternetRestriction` = '"
					+ internet_bol
					+ "',`cond_minRAM` = '"
					+ ram
					+ "',`cond_minCPUs` = '"
					+ cpu
					+ "',`image_isTemplate` = '"
					+ isTemplate
					+ "',`image_filesize` = '"
					+ filesize
					+ "',`image_syncMode` = '"
					+ shareMode
					+ "' WHERE `GUID_imageID` = '"
					+ id
					+ "' AND `imageVersion` = '" + version + "';");
			con.commit();
			con.close();
			return 0;
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			log.info(new Date() + " - Failed to UpdateImageData.");
			e.printStackTrace();
		}
		return -1;
	}

	public boolean deleteImage(String id, String version) {

		try {
			Connection con=getConnection();
			Statement stm = con.createStatement();

			stm.executeUpdate("DELETE FROM bwLehrpool.m_VLData_imageInfo where GUID_imageID = '"
					+ id + "' " + "AND imageVersion = '" + version + "';");

			con.commit();
			con.close();
			return true;

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			log.info(new Date() + " - Failed to deleteImage.");
			e.printStackTrace();
		}

		return false;
	}

	public int updateLectureData(String pk_image,
			int imageversion, String name, String newName, String desc,
			String shortdesc, String start, String end, boolean isactive,
			String id) {

		DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
		int active_bol = 0;

		if (isactive == true) {
			active_bol = 1;
		}
		try {
			Connection con=getConnection();
			Statement stm = con.createStatement();
			stm.executeUpdate("UPDATE `bwLehrpool`.`m_VLData_lecture` SET `name` = '"
					+ newName
					+ "',`isActive` = '"
					+ active_bol
					+ "',`startTime` = '"
					+ start
					+ "',`endTime` = '"
					+ end
					+ "',`description` = '"
					+ desc
					+ "',`imageID` = '"
					+ pk_image
					+ "',`imageVersion` = '"
					+ imageversion
					+ "',`admin_changeTime` = '"
					+ formatter.format(new Date())
					+ "'WHERE `lectureID` = '" + id + "';");
			con.commit();
			con.close();
			log.info(new Date() + " - Succeeded to updateLectureData.");

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			log.info(new Date() + " - Failed to updateLectureData.");
			e.printStackTrace();
		}

		return 0;

	}

	public boolean connectedToLecture(String id, String version) {

		try {
			Connection con=getConnection();
			Statement stm = con.createStatement();

			ResultSet rs = stm.executeQuery("SELECT lectureID FROM "
					+ "bwLehrpool.m_VLData_lecture WHERE imageID = '" + id
					+ "' AND imageVersion = '" + version + "';");
			con.close();
			return rs.first();

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			log.info(new Date()
					+ " - Failed to execute method connectedToLecture.");
			e.printStackTrace();
		}

		return false;

	}

	public boolean deleteLecture(String id) {

		try {
			Connection con=getConnection();
			Statement stm = con.createStatement();
			stm.executeUpdate("DELETE FROM bwLehrpool.m_VLData_lecture WHERE lectureID = '"
					+ id + "';");
			
			con.commit();
			con.close();
			return true;
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			log.info(new Date() + " - Failed to deleteLecture.");
			e.printStackTrace();
		}

		return false;
	}

	public String getFile(String imageid, String imageversion) {

		try {
			Connection con=getConnection();
			Statement stm = con.createStatement();

			ResultSet rs = stm
					.executeQuery("SELECT image_path FROM bwLehrpool.m_VLData_imageInfo WHERE GUID_imageID = '"
							+ imageid
							+ "' AND imageVersion = '"
							+ imageversion
							+ "';");
			rs.next();
			String path=rs.getString("image_path");
			con.close();
			return path;

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			log.info(new Date() + " - Failed to getFile.");
			e.printStackTrace();
		}

		return null;
	}

	public Map<String,String> getDeleteXMLData(String id) {
		Map<String, String> map = new HashMap<String, String>();
		try {
			Connection con=getConnection();
			Statement stm = con.createStatement();

			ResultSet rs = stm
					.executeQuery("SELECT name, admin_createTime FROM bwLehrpool.m_VLData_lecture where lectureID='"
							+ id + "';");
			rs.next();
			map.put("date", rs.getString("admin_createTime").replace(" ", "")
					.replace("-", "").replace(":", ""));
			map.put("name", rs.getString("name"));
			

			con.close();
			return map;

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			log.info(new Date() + " - Failed to getDeleteXMLData.");
			e.printStackTrace();
		}

		return null;
	}
	
	public int UpdateImagePath(String name) {
		try {
			Connection con=getConnection();
			Statement stm = con.createStatement();
			String image_path="prod/"+name;
			
			stm.executeUpdate("UPDATE `bwLehrpool`.`m_VLData_imageInfo` SET `image_path` = '"
					+ image_path
					+ "' WHERE `image_path` = '"
					+ "temp/"+name + "';");
			con.commit();
			con.close();
			return 0;
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			log.info(new Date() + " - Failed to UpdateImageData.");
			e.printStackTrace();
		}
		return -1;
	}
}