powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / java+mybatis правильно ли использовать sqlSessionFactory как ServletContext?
1 сообщений из 1, страница 1 из 1
java+mybatis правильно ли использовать sqlSessionFactory как ServletContext?
    #38077197
gema
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
web.xml
Код: xml
1.
2.
3.
4.
5.
<listener>
   <listener-class>
  com.modelingagency.listeners.CustomServletContextListener
   </listener-class>
 </listener>



Listener class
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
import java.io.Reader;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
  
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
  
public class CustomServletContextListener implements ServletContextListener
{
 public void contextInitialized(ServletContextEvent event)
 { 
  ServletContext ctx = event.getServletContext();
         
     String resource = "mybatis.config.xml";
     try{     
      Reader reader = Resources.getResourceAsReader(resource);    
      SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); 
      ctx.setAttribute("sqlSessionFactory", sqlSessionFactory); 
     }
     catch(Exception e){
      System.out.println("FATAL ERROR: myBatis could not be initialized");
      System.exit(1);
     }   
 }
  
 @Override
 public void contextDestroyed(ServletContextEvent event){
   //nothing to do here right now
 }
}



TestServlet
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
import java.io.IOException;
import java.util.ArrayList;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.ibatis.exceptions.PersistenceException;
import org.apache.ibatis.session.SqlSessionFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.modelingagency.db.ModelingAgencyDAO;
import com.modelingagency.objects.*;

public class TestServlet  extends HttpServlet{
	
	private static Logger log = LoggerFactory.getLogger(TestServlet.class);
	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException 
	{
		HttpSession session = request.getSession();			
		ServletContext sc = getServletContext();
		
		SqlSessionFactory sf = (SqlSessionFactory)getServletContext().getAttribute("sqlSessionFactory");
		ModelingAgencyDAO dao = new ModelingAgencyDAO(sf);
		
		try
		{
			ArrayList<Client> clients = dao.getClients();	
			log.info("Client size: " + clients.size());
			ArrayList<Model> models = dao.getModels();				
			ArrayList<Booking> bookings = dao.getBookings();				
			
			request.setAttribute("all_clients", clients);	
			request.setAttribute("all_models", models);
			request.setAttribute("all_bookings", bookings);
							
		}
		catch(PersistenceException p)
		{
			p.printStackTrace();		
		}
		finally
		{
			request.setAttribute("message","Welcome to the modeling agency MyBatis tutorial");
			log.info("The message attribute has been set");
		}	
																
		RequestDispatcher view = request.getRequestDispatcher("index.jsp");
		view.forward(request, response);
	}
	
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request,response);
	}
	
}
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / java+mybatis правильно ли использовать sqlSessionFactory как ServletContext?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]