In naher Zukunft wird das Unternehmen neue Projekte entwickeln und das Struts2+MyBatis+Spring Framework verwenden. Nachdem ich es gelernt habe, werde ich es in meinem Blog veröffentlichen, in der Hoffnung, Ihnen zu helfen!
Erkennt hauptsächlich Benutzerzusatz-, Lösch-, Änderungs- und Suchvorgänge
1. Importieren Sie das entsprechende JAR -Paket
2. Konfigurieren von web.xml konfiguriert hauptsächlich Struts2 und Feder
Der Inhalt der Datei web.xml lautet wie folgt:
<? XSI: Schemalocation = "http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_2_2.xsd"> < <Welcome-File> Index.jsp </Welcome-Datei <Param-name> contextConFigLocation </param-name> <param-value> classPath: beans.xml </param-value> </context-param> <!-Konfigurieren Sie Struts2-> <filter> <filter-name> Struts2 </Filter-Name> <filterklasse> <Filter-Nr. org.apache.struts2.dispatcher.ng.filter.strutsprepareAndexecuteFilter </Filter-Klasse> </filter> <filter-maping> <filter-name> struts2 </filter-name> <url-pattern>/*</url-patter> </filter-maping>
3. Konfigurieren Sie Federkonfigurationsdateien, hauptsächlich einschließlich Konfigurieren von Datenquellen, Transaktionen, Mybaits usw.
Die Bean.xml -Konfigurationsdatei lautet wie folgt:
<? xmlns: context = "http://www.springframework.org/schema/context" xmlns: aop = "http://www.spingframework.org/schwa XSI: Schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.sspringFramework.org/schema/aop http://www.springframework.org/schema/aop http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springFramework.org/schema/tx/sping-tx- http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springFramework.org/schema/context http://www.springFringFramework.org/schema/context/skontext/sping/sping-context- Beans mit Kommentaren-> <Kontext: Annotation-Konfiguration /> <!-Konfigurieren Sie das zu scannte Paket-> <Kontext: Komponenten-scan-base-package = "com.pdsu.edu"> < /context: component-scan> <! proxy-target-class = "true" /> <!-Datenbankkonfigurationsdatei Ort-> <context: Property-Placeholder-Standort = "ClassPath: jdbc.properties" /> <!-Konfigurieren Sie DBCP-Datenquelle-> <bean id = "dataSource" destroy-method = "cande". /> <Eigenschaft name = "url" value = "$ {jdbc.url}" /> <Eigenschaft name = "username" value = "$ {jdbc.username}" /> <Eigenschaft name = "password" value = "$ {jdbc.password}" /> <!-minimal Wartezeit in der Queue-Queue-> <-Cotention name = "minid." value="${jdbc.minIdle}"></property> <!-- Maximum waiting time in milliseconds--> <property name="maxWait" value="${jdbc.maxWait}"></property> <!-- Maximum active number--> <property name="maxActive" value="${jdbc.maxActive}"></property> <property name = "initialSize" value = "$ {jdbc.initialSize}"> </property> </bean> <!-Konfigurieren Sie MyBitassQlSessionFactoryBean-> <bean id = " value = "classPath: mybatis.xml"> </property> </bean> <!-SQLSessionTemplate-> <bean id = "sqlSessionTemplate"> <constructor-arg name = " name = "dataSource" ref = "dataSource"/> </bean> <!-Konfigurieren Sie Transaktionen mit Annotation Annotation-> <Tx: Annotationsgetriebene Transaktionsmanager = "TransactionManager"/> </beans> 4. JDBC -Konfigurationsdateidetails
jdbc.driverClassName = com.mysql.jdbc.driver jdbc.url = jdbc: mysql: // localhost: 3306/operationLog jdbc.username = root jdbc.password = jdbc.maxactive = 2 jdbc.maxidle = 5 jdbc.minidle = 1 jdbc.maxidly = 3 jdbc.maxwait = 3000
5. Konfigurieren Sie die myBatis Hauptkonfigurationsdatei:
<? type = "com.pdsu.edu.domain.user"/> </typealias> <mappers> <mapper resource = "com/pdsu/edu/domain/sqlmappers/user.xml"/> </mappers> </configuration>
6. Konfigurieren Sie user.xml -Datei
<? <resultMap type = "com.pdsu.edu.domain id="userLogin" parameterType="user" resultMap="userResult"> select * from user where username=#{username} and password=#{password} </select> <select id="selectAllUser" resultMap="userResult"> select * from user </select> <select id="findUserById" parameterType="int" resultMap="userResult"> Wählen Sie * vom Benutzer, wobei id =#{id} </select> <id = "insertUser" parameterType = "Benutzer"> <! [CDATA [in den Benutzer (Benutzername, Kennwort) Werte (#{userername},#{password})> </einfügen id = "teurername" ParameterType = "Benutzer">> </einfügen "> </> </upda."> ". userername =#{username}, password =#{password} wobei id =#{id} </update> <delete id = "deleteUser" parameterType = "int"> vom Benutzer löschen wobei ID =#{ID} </delete> </mapper> löschen 7. wie man Benutzerentität schreibt
User implementiert öffentlicher Klasse serialisierbar {private statische endgültige long serialversionuid = -4415990281535582814L; private Ganzzahl -ID; privater String -Benutzername; privates Zeichenfolgenkennwort; public Integer getid () {return id; } public void setId (Integer id) {this.id = id; } public String getUnername () {return userername; } public void setUnername (String -Benutzername) {this.username = userername; } public String getPassword () {Kennwort zurückgeben; } public void setPassword (String -Passwort) {this.password = password; } @Override public String toString () {return "user [id =" + id + ", password =" + password + ", username =" + userername + "]"; } @Override public int HashCode () {final int prime = 31; int result = 1; result = prime * result + ((id == null)? 0: id.hashcode ()); Rückgabeergebnis; } @Override public boolean Equals (Objekt obj) {if (this == obj) return true; if (obj == null) return false; if (getClass ()! = obj.getClass ()) return false; Benutzer Andere = (Benutzer) obj; if (id == null) {if (other.id! = null) return false; } else if (! id.equals (other.id)) return false; zurückkehren; }} 8. wie man Userdao schreibt
public interface userDao {public abstract void InsertUser (Benutzerbenutzer); public abstract void UpdateUser (Benutzerbenutzer); public abstract void DeleteUser (Ganzzahl userID); öffentlicher abstrakter Benutzer findUserById (Integer userID); öffentliche Abstract List <Bener> findAll (); public abstrakter Benutzer UserLogin (Benutzerbenutzer); } 9. Implementierung von UserDao
@Repository public class userDaoImpl implementiert userDao {private final String insert_user = "InsertUser"; private final String update_user = "updateUser"; private endgültige Zeichenfolge delete_user = "DeleteUser"; private final String find_user_byid = "findUserById"; private endgültige Zeichenfolge select_all_user = "selectAlluser"; private final String user_login = "userLogin"; @Autowired Private SQLSessionTemplate SQLSessionTemplate; public void InsertUser (Benutzerbenutzer) {SQLSessionTemplate.insert (Insert_User, Benutzer); } public void updateUser (Benutzer Benutzer) {SQLSessionTemplate.Update (update_user, user); } public void DeleteUser (Ganzzahl userID) {SQLSessionTemplate.delete (Delete_User, userId); } public User findUserById (Integer userID) {return SQLSessionTemplate.Selectone (find_user_byid, userId); } public list <Bener> findAll () {return sqlSessionTemplate.SelectList (select_all_user); } public User UserLogin (Benutzer Benutzer) {return SQLSessionTemplate.Selectone (user_login, user); }} 10. Benutzerservice -Schnittstelle
public interface userService {// Benutzer public abstract void adduser (Benutzerbenutzer) hinzufügen; public abstract void UpdateUser (Benutzerbenutzer); public abstract void DeleteUser (Ganzzahl userID); öffentlicher abstrakter Benutzer findUserById (Integer userID); public abstract list <Bener> findAlluser (); öffentliche abstrakte Benutzeranmeldung (Benutzerbenutzer); } 11. Implementierung der Benutzerservice -Schnittstelle
@Service @Transactional Public Class UserServiceImpl implementiert UserService {@autowired private userDao userDao; // Benutzer public void adduser hinzufügen (Benutzer Benutzer) {userDao.insertuser (Benutzer); } // Benutzer public void updateUser (Benutzer Benutzer) {userDao.Updateuser (Benutzer); } public void DeleteUser (Integer userID) {userDao.DeleteUser (userId); } public user findUserById (Integer userID) {userDao.finduserById (userId); } public list <Bener> findAlluser () {return userDao.findall (); } public User Anmeldung (Benutzerbenutzer) {userDao.userLogin (Benutzer) zurückgeben; }} 12. Konfigurieren Sie Struts2
<? value = "utf-8"/> <!-Geben Sie den Standard-Codierungssatz an, der auf dem setCharacacterencoding () und dem Freemarker von httpServletRequest verwendet wird, und die Ausgabe der Verkoppelung-> <Konstantname = "Struts.Configuration.xmlReload" Value ". name="struts.devMode" value="true"/> <!-- Print detailed error information in development mode--> <constant name="struts.ui.theme" value="xhtml"/> <package name="user" namespace="/user" extends="struts-default"> <action name="user_*" method="{1}"> <result name="success" type = "redirectAction"> user_queryAlluser.action </result> <result name = "input">/index.jsp </result> <result name = "userList">/userlist.jsp </result> <resultation name = "adduser">/userAdd.jsp </result> <resultname = "updutser">/terr. 13. Benutzeraktionspezifische Implementierung
@Controller @Scope ("Prototyp") Public Class UserAction erweitert actionupport {@autowired Private UserService UserService; privater Benutzerbenutzer; private Liste <Unters> userList; public String execute () löst Ausnahme {return null; } public String login () {if (user! = null) {user user2 = userService.login (user); if (user2! = null) {return Erfolg; }} this.addfielderror ("user.username", "Fehler in Benutzername oder Passwort!"); Eingabe zurückgeben; } public String addui () {return "adduser"; } public String updateUi () {user = userService.finduserById (user.getId ()); Rückgabe "UpdateUser"; } public String add () {UserService.adduser (Benutzer); Erfolgserfolg; } public String delete () {UserService.DeleteUser (user.getId ()); Erfolgserfolg; } public String update () {UserService.Updateuser (Benutzer); Erfolgserfolg; } public user getUser () {zurückgebener Benutzer; } public void setUser (Benutzer Benutzer) {this.user = user; } public String queryAlluser () {userList = userService.findallUser (); Rückgabe "UserList"; } public List <Bener> getUserList () {userList zurückgeben; } public void setUserList (Liste <Unters> userList) {this.userList = userList; }} 14. Implementierung der Anmeldeseite
<%@ page Language = "java" import = "java.util. String basepath = request.getScheme ()+": //"+request.getSerVername ()+":"+request.getServerport ()+path+"/"; %> <! DocType html public "-// w3c // dtd html 4.01 transitional // en"> <html> <head> <base href = "<%= Basepath%>"> <titels> Benutzerlogin </title> <meta http-actp = "pragma" content = " http-äquiv = "cache-control" content = "no-cache"> <meta http-äquiv = "expires" content = "0"> <meta http-äquiv type="text/css" href="styles.css"> --> <s:head/> </head> <body> <center> <h1>User Login</h1> <s:a action="user_addUI" namespace="/user">Add a new user</s:a> <s:form action="user_login" namespace="/user" method="post"> <s:textfield label = "userername" name = "user.username"> </s: textField> <s: password label = "password" name = "user.password"> </s: password> <s: value = "login"> </s: sub: sure> </s: Form> </center> </body> </html> </s: Form> </body> </html>
15. Fügen Sie eine Seite hinzu
<%@ page Language = "java" import = "java.util. Benutzer </title> <meta http-äquiv = "pragma" content = "no-cache"> <meta http-äquiv = "cache-control" content = "no-cache"> <meta http-achh. namespace = "/user" method = "post"> <s: textfield label = "userername" name = "user.username"> </s: textField> <s: password label = "password" name = "user.password"
16. Ändern Sie die Seite
<%@ page Language = "java" import = "java.util. Benutzer </title> <meta http-äquiv = "pragma" content = "no-cache"> <meta http-äquiv = "cache-control" content = "no-cache"> <meta http-equiv = "expires" content = "0"> </head> <body> <center> <h1> user user </h1> </h1> </h1> </h1> </h1> </h1> </h1> </h1> </h1> </h1> </h1> </h1> </h1> </<s. namespace="/user" method="post"> <s:hidden name="user.id"></s:hidden> <s:textfield label="username" name="user.username"></s:textfield> <s:password label="password" name="user.password"></s:password> <s:submit value="submit"></s:submit> </s:form> </center> </body> </html>
17. Listenseite
<%@ page Language = "java" import = "java.util. List</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> </head> <body> <center> <h2>User List</h2> <h3><s:a action="user_addUI" Namespace = "/user"> Hinzufügen eines neuen Benutzers </s: a> </h3> <table> <tr> <Th> Benutzer -ID </th> <Th> Benutzername </th> <Th> Benutzerkennwort </th> <Th> Betrieb </th> </tr> <s: iterator value = "userlist"> <tr> <Td> </td> <s:: value = "userername"/> </td> <td> <s: Eigenschaft value = "password"/> </td> <td> <s: a action = "user_updateui" namespace = "/user"> <s: param name = "user.id"> $ {} </s: param> modify Namespace = "/user"> <s: param name = "user.id"> $ {id} </s: param> löschen </s: a> </td> </tr> </s: iterator> </table> </center> </body> </html>Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.