Other tools or techniques that you need to use:
Project Management tools: Maven
Foreground Web Showcase: JSP
Other frameworks: Spring, Spring MVC
Database: Derby
Create a new MAVEN Web project
Maven Dependencies:
<!--Spring--><dependency><groupid>org.springframework</groupid><artifactid> Spring-context</artifactid><version>4.0.0.release</version></dependency><dependency ><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId>< Version>4.0.0.release</version></dependency><dependency><groupid> Org.springframework</groupid><artifactid>spring-tx</artifactid><version>4.0.0.release </version></dependency><dependency><groupId>org.springframework</groupId>< Artifactid>spring-jdbc</artifactid><version>4.0.0.release</version></dependency> <!--AspectJ--><DEPENDENCY><GROUPID>ORG.ASPECTJ</GROUPID><ARTIFACTID>ASPECTJRT </artifactId><version>1.6.10</version></dependency><!--Logging--><dependency ><groupid>org.slf4j</groupid><artifactId>slf4j-api</artifactId><version>1.6.6</version></dependency>< dependency><groupid>org.slf4j</groupid><artifactid>jcl-over-slf4j</artifactid>< version>1.6.6</version><scope>runtime</scope></dependency><dependency>< groupid>org.slf4j</groupid><artifactid>slf4j-log4j12</artifactid><version>1.6.6< /version><scope>runtime</scope></dependency><!--@Inject--><dependency>< groupid>javax.inject</groupid><artifactid>javax.inject</artifactid><version>1</ version></dependency><!--Servlet--><dependency><groupid>javax.servlet</groupid ><artifactid>servlet-api</artifactid><version>2.5</version><scope>provided </scope></dependency><dependency><groupId>javax.servlet.jsp</groupId>< artifactid>jsp-api</artifactid><version>2.1</version><scope>provided</scope></dependency>< Dependency><groupid>javax.servlet</groupid><artifactid>jstl</artifactid><version >1.2</version></dependency><!--Mybatis--><dependency><groupid>org.mybatis< /groupid><artifactid>mybatis</artifactid><version>3.2.7</version></dependency ><dependency><groupid>org.mybatis</groupid><artifactid>mybatis-spring</ artifactid><version>1.2.1</version></dependency><!--Test--><dependency>< Groupid>junit</groupid><artifactid>junit</artifactid><version>4.9</version> <scope>test</scope></dependency><!--Derby--><dependency><groupid> Org.apache.derby</groupid><artifactid>derby</artifactid><version>10.10.2.0</version ></dependency><dependency><groupid>org.apache.derby</groupid><artifactid>derbyclient</artifactid>< Version>10.10.2.0</version></dependency>
SQL build table and data insertion (can be ignored if previously done)
CREATE TABLE user_test_tb ( ID INT PRIMARY KEY, USERNAME varchar () not NULL, PASSWORD varchar = not null,< C4/>nickname VARCHAR () not NULL ); INSERT into User_test_tb VALUES (1, ' 1st ', ' 111 ', ' Jack '); INSERT into User_test_tb VALUES (2, ' 2nd ', ' 222 ', ' Rose '); INSERT into User_test_tb VALUES (3, ' 3rd ', ' 333 ', ' 'll ');
Web. XML (Scr/main/webapp/web-inf)
<?xml version= "1.0" encoding= "UTF-8"? ><web-app version= "2.5" xmlns= "Http://java.sun.com/xml/ns/javaee" Xmlns:xsi= "Http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation= "Http://java.sun.com/xml/ns/javaee http ://java.sun.com/xml/ns/javaee/web-app_2_5.xsd "><!--Spring configuration--><context-param><param-name >contextconfiglocation</param-name><param-value>/web-inf/*context.xml</param-value></ Context-param><listener><listener-class>org.springframework.web.context.contextloaderlistener </listener-class></listener><servlet><servlet-name>appServlet</servlet-name>< Servlet-class>org.springframework.web.servlet.dispatcherservlet</servlet-class><load-on-startup >1</load-on-startup></servlet><servlet-mapping><servlet-name>appservlet</ Servlet-name><url-pattern>/</url-pattern></servlet-mapping></web-app>
Appservlet-servlet.xml (Spring servlet configuration file Scr/main/webapp/web-inf)
<?xml version= "1.0" encoding= "UTF-8"? ><beans:beans xmlns= "Http://www.springframework.org/schema/mvc" Xmlns:xsi= "Http://www.w3.org/2001/XMLSchema-instance" xmlns:beans= "Http://www.springframework.org/schema/beans" xmlns:context= "Http://www.springframework.org/schema/context" xsi:schemalocation= "http// Www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsdhttp:// Www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp:// Www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd "> <!--turn on annotation support--><annotation-driven/><!--Spring's render layer configuration--><beans:bean class= " Org.springframework.web.servlet.view.InternalResourceViewResolver "><beans:property name=" prefix "value="/ web-inf/views/"/><beans:property name=" suffix "value=". jsp "/></beans:bean><!-- Spring's annotation default scan package--><context:component-scan Base-package= "Com.freud.practice"/><!--introduce additional spring configuration files--><beans:import resource= "Classpath: Applicationcontext.xml "/></beans:beans>
JSP file
show.jsp (under Src/main/webapp/web-inf/views directory)
<%@ page language= "java" contenttype= "text/html; Charset=iso-8859-1 "pageencoding=" iso-8859-1 "%><%@ taglib uri=" Http://java.sun.com/jsp/jstl/core "prefix=" C " %><! DOCTYPE HTML PUBLIC "-//w3c//dtd HTML 4.01 transitional//en" "Http://www.w3.org/TR/html4/loose.dtd" >
update.jsp (under Src/main/webapp/web-inf/views directory)<%@ page language= "java" contenttype= "text/html; Charset=iso-8859-1 " pageencoding=" Iso-8859-1 "%><! DOCTYPE HTML PUBLIC "-//w3c//dtd HTML 4.01 transitional//en" "Http://www.w3.org/TR/html4/loose.dtd" >
insert.jsp (under Src/main/webapp/web-inf/views directory)
<%@ page language= "java" contenttype= "text/html; Charset=iso-8859-1 "pageencoding=" Iso-8859-1 "%><! DOCTYPE HTML PUBLIC "-//w3c//dtd HTML 4.01 transitional//en" "Http://www.w3.org/TR/html4/loose.dtd" >
Applicationcontext.xml (Spring application configuration file in Src/main/resources directory)
<?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:aop= "Http://www.springframework.org/schema/aop" xmlns: context= "Http://www.springframework.org/schema/context" xmlns:lang= "Http://www.springframework.org/schema/lang" Xmlns:mvc= "Http://www.springframework.org/schema/mvc" xmlns:tx= "Http://www.springframework.org/schema/tx" xmlns: mybatis-spring= "http://mybatis.org/schema/mybatis-spring" xsi:schemalocation= "http://www.springframework.org/ Schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/ AOP Http://www.springframework.org/schema/aop/spring-aop-4.0.xsdhttp://www.springframework.org/schema/context Http://www.springframework.org/schema/context/spring-context-4.0.xsdhttp://www.springframework.org/schema/lang HTTP://WWW.SPRINGFRAMEWORK.ORG/SCHEMA/LANG/SPRING-LANG-4.0.XSDHTTP://WWW.SPRINGFRAMEWORK.ORG/SCHEMA/MVC/HTTP Www.springFRAMEWORK.ORG/SCHEMA/MVC/SPRING-MVC-4.0.XSDHTTP://WWW.SPRINGFRAMEWORK.ORG/SCHEMA/TX/HTTP Www.springframework.org/schema/tx/spring-tx-4.0.xsdhttp://mybatis.org/schema/mybatis-spring http://mybatis.org/ Schema/mybatis-spring-1.2.xsd "><bean class=" Org.mybatis.spring.mapper.MapperScannerConfigurer ">< Property Name= "Basepackage" value= "Com.freud.practice"/><property name= "Sqlsessionfactorybeanname" value= " Derbysqlsessionfactory "/></bean><!--Configuring the Derby Drive data source--><bean id=" Derbydatasource "class=" Org.springframework.jdbc.datasource.DriverManagerDataSource "><property name=" Driverclassname "value=" Org.apache.derby.jdbc.ClientDriver "/><property name=" url "value=" jdbc:derby://localhost:1527/freud;create= True "/></bean><bean id=" sqlsessionfactory "class=" Org.mybatis.spring.SqlSessionFactoryBean "Name=" Derbysqlsessionfactory "><property name=" DataSource "ref=" Derbydatasource "/><property name=" Mapperlocations "Value=" classpath*:com/freud/practice/*mapper.xml "/></bean> <!--transaction Manager--<bean id=" TransactionManager "class=" Org.spr Ingframework.jdbc.datasource.DataSourceTransactionManager "> <property name=" DataSource "ref=" Derbydatasource "/> </bean> <!--opening annotation-based transactions--<tx:annotation-driven/></beans>
Java filesUsercontroller.java (under the Src/main/java/com.freud.practice.controller directory)
Package Com.freud.practice.controller;import Com.freud.practice.user;import Com.freud.practice.usermapper;import Java.util.list;import Org.springframework.beans.factory.annotation.autowired;import Org.springframework.stereotype.controller;import Org.springframework.ui.model;import Org.springframework.web.bind.annotation.pathvariable;import Org.springframework.web.bind.annotation.requestmapping;import Org.springframework.web.bind.annotation.requestmethod;import ORG.SPRINGFRAMEWORK.WEB.SERVLET.CONFIG.ANNOTATION.ENABLEWEBMVC, @EnableWebMvc @controllerpublic class usercontroller{@Autowiredprivate usermapper usermapper;/** * * Get all user information * * @param model * @return */@RequestMapping ( Value = {"/", ""}, Method = Requestmethod.get) public String Getalluser (model model) {list<user> users = usermapper.ge Tusers (); System.out.println ("Show all user size:" + users.size ()); Model.addattribute ("Users", "Users"; return "show";} /** * * Insert GET request, jump to insert view is insert.jsp * * @return */@RequestMapping (value = {"/insert", ""}, Method = Requestmethod.get) public String Insertuser () {return "Insert";} /** * * Insert POST request, perform insert operation and return showall page * * @param user * @return */@RequestMapping (value = {"/insert", ""}, Method = R equestmethod.post) public String insertuserpost (user user) {usermapper.insertuser (user); return "redirect:/";} /** * * Update GET request, jump to update view that is update.jsp * * @param ID * @param model * @return */@RequestMapping (value = {"/updat E/{id} "," "}, Method = Requestmethod.get) public String updateUser (@PathVariable string ID, model) { Model.addattribute ("User", Usermapper.getuser (integer.valueof (ID)); return "Update";} /** * * Update POST request, perform the updating operation and return to ShowAll page * * @param ID * @param user * @return */@RequestMapping (value = {"/update/{id}" , ""}, Method = requestmethod.post) public String updateuserpost (@PathVariable string ID, user user) { Usermapper.updateuser (user); return "redirect:/";} /** * * Delete user * * @param ID * @return */@RequestMapping (value = {"/delete/{id}", ""}, Method = Requestmethod.get) public String deleteuser (@PathVariable int id) {usermapper.deleteuser (ID); return" redirect:/";}}
User.java (in Src/main/java/com.freud.practice)Package com.freud.practice;/** * * User object. * * @author a527672 * */public class user{private Integer id;private string Username;private string Password;priv Ate String nickname;public Integer getId () {return ID;} public void SetId (Integer id) {this.id = ID;} Public String GetUserName () {return username;} public void Setusername (String username) {this.username = username;} Public String GetPassword () {return password;} public void SetPassword (String password) {this.password = password;} Public String Getnickname () {return nickname;} public void Setnickname (String nickname) {this.nickname = nickname;}}
Usermapper.java (under the Src/main/java/com.freud.practice directory)
Package Com.freud.practice;import Java.util.list;public Interface usermapper{/** * * get all user * * @return */ Public list<user> getusers ();/** * * ID gets user * * @param ID * @return */public User getUser (int id);/** *< c4/>* Insert User * * @param user */public void Insertuser (user user),/** * * Update user * * @param user */public void UpdateUser (user user);/** * * Delete User * * @param userId */public void deleteuser (int userid) by ID;}
Usermapper.xml (MyBatis mapper configuration file, in Src/main/java/com.freud.practice directory)<?xml version= "1.0" encoding= "UTF-8"?> <! DOCTYPE Mapper Public "-//mybatis.org//dtd mapper 3.0//en" "Http://mybatis.org/dtd/mybatis-3-mapper.dtd" >< Mapper namespace= "Com.freud.practice.UserMapper" ><!--query--><select id= "getusers" resulttype= " Com.freud.practice.User ">select *from user_test_tb</select><!--query--><select id=" GetUser " Resulttype= "Com.freud.practice.User" >select *from user_test_tbwhere id=#{id}</select><!--inserting-->< Insert Id= "Insertuser" >insert into USER_TEST_TB values (#{id},#{username},#{password},#{nickname}) </insert ><!--Change--><update id= "UpdateUser" >update user_test_tb set USERNAME = #{username}, PASSWORD = #{pass Word}, nickname = #{nickname}where ID = #{id}</update><!--Delete--><delete id= "DeleteUser" >delete from USER_TEST_TB where id=#{id}</delete></mapper>
MyBatis Series Tutorial (vi)-integration with spring (integrate with spring)