spring+hibernate初探(電影查詢專案)
阿新 • • 發佈:2019-01-04
一、spring框架簡介
Spring是一個開放原始碼的設計層面框架,他解決的是業務邏輯層和其他各層的鬆耦合問題,因此它將面向介面的程式設計思想貫穿整個系統應用。Spring是於2003 年興起的一個輕量級的Java 開發框架,由Rod Johnson建立。簡單來說,Spring是一個分層的JavaSE/EE full-stack(一站式) 輕量級開源框架。
二、spring配置檔案
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <context:component-scan base-package="com"/> <bean name="student" class="com.ly.javabean.Student"> <property name="className" value="3年5班"/> </bean> <bean name="student8" class="com.ly.javabean.Student"> <property name="className" value="3年4班"/> </bean> <!-- <bean name="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="" </bean>--> <bean name="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> <property name="configLocation" value="classpath:hibernate.cfg.xml"/> </bean> <!--<context:component-scan base-package="com" />--> <bean name="hibernateTemplate" class="org.springframework.orm.hibernate5.HibernateTemplate"> <property name="sessionFactory" ref="sessionFactory"/> </bean> <bean name="dao" class="com.ly.dao.daoImpl.SysDaoImpl"> <property name="hibernateTemplate" ref="hibernateTemplate"/> </bean> </beans>
context:component-scan:使用構造型(stereotype)註解所標註的類,如@Component(元件),@Service(服務),@Controller(控制器),@Repository(資料倉庫)。
三、spring簡單使用
@RunWith(SpringJUnit4ClassRunner.class) @Component public class SpringTest { @Autowired private Sysdao dao; @Test public void demo1(){ /*ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"); Sysdao dao = applicationContext.getBean("dao",Sysdao.class);*/ List apkInfo = dao.find("from ApkInfo", null); System.out.println(Arrays.toString(apkInfo.toArray())); } }
由於有了spring的管理,物件的獲取可以直接有spring管理,不用直接new一個物件。這裡可以使用配置檔案的格式獲取,也就是上述註釋的部分來獲取一個物件,也可使用註解的方式獲取,但是在配置檔案中必須加上context:component-scan才可使用。
四、log4j
可引入log4j來記錄日誌。
# Global logging configuration 開發時候建議使用 debug log4j.rootLogger=info, stdout # Console output... log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS}%5p [%t] - %m%n
五、controller、service、dao的搭建
dao和service只是簡單的查詢,不在展示。
controller:
@WebServlet(name = "com.ly.controller.ShowViewServlet", urlPatterns = "/show/aa")
public class ShowViewServlet extends HttpServlet {
private Logger log = LoggerFactory.getLogger(ShowViewServlet.class);
public ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
doGet(request, response);
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
Myservice service = (Myservice) context.getBean("myserviceImpl");
response.setContentType("text/html;charset=utf-8");
String param = request.getParameter("param");
param = "%" + param + "%";
String hql = "select a from FilmBtsNew a where a.name like '" + param + "'";
List list = service.find(hql);
log.info("引數:{}", param);
JSONObject jsonObject = new JSONObject();
jsonObject.put("person", list);
response.getWriter().print(jsonObject);
}
}
結果如下:
現在只是簡單的將json資料上傳至web,下一步學習了簡單的前端就可以實現一個電影主頁了!