MyBatis Series Tutorial (vi)-integration with spring (integrate with spring)

Source: Internet
Author: User

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--&GT;&LT;DEPENDENCY&GT;&LT;GROUPID&GT;ORG.ASPECTJ&LT;/GROUPID&GT;&LT;ARTIFACTID&GT;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 files

Usercontroller.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)

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.