Mybatis+Struts2的结合:实现用户插入和查找

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

总结一下今天一个成功的小实验:Mybatis+Struts2的结合:实现用户插入和查找。删除和修改如果以后写了,会继续更新。

一 准备工作。

1.新建一个javaweb项目。

2.在webContent\lib目录下导入所需要的jar包。

a.struts2需要的jar包。

struts2

xwork-core.jar

strut2-core.jar

ognl.jar

commoms-lang.jar

freemarker.jar

commons-fileupload.jar

包的位置:

struts-2.3.24.1-all\struts-2.3.24.1\apps\WEB-INF\lib

我下载的struts2的版本这个目录下有13个jar包,每个jar包的作用网上都可以查到。正常使用加入这六个就可以了。

b.mybatis需要的的jar包。

asm.jar

cglib.jar

commons-logging-.jar

log4j.jar

mybatis.jar

slf4j-api.jar

slf4j-log4j12.jar

c.MySQL需要的jar包。

mysql-connector-java-5.1.7-bin.jar

到此准备工作就做好了。

二.工程目录

在这里我贴出我的工程目录,便于我后面进行描述。

三.写代码。

对于Java web 工程的搭建,服务器的搭建我就不多说了,因为网上资料很多。(虽然我写的也有很多,但是只是想给自己做一个简单的总结,顺便分享给需要的人)

1.webContent\lib\web.xml

1<?xml version="1.0" encoding="UTF-8"?>2<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">3<display-name>MybatisAndStruts2</display-name>4<welcome-file-list>5<welcome-file>index.jsp</welcome-file>6</welcome-file-list>7<filter>8<filter-name>struts2</filter-name>9<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPRepareAndExecuteFilter</filter-class>10</filter>11<filter-mapping>12<filter-name>struts2</filter-name>13<url-pattern>/*</url-pattern>14</filter-mapping>15</web-app>

2.index.jsp

1<%@ page language="java"contentType="text/html; charset=UTF-8"2pageEncoding="UTF-8"%>3<%45Stringpath=request.getContextPath();6StringBasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";78%>910<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">11<html>12<head>13<metahttp-equiv="Content-Type"content="text/html; charset=UTF-8">14<basehref="<%=BasePath %>"></base>15<title>首页</title>16</head>17<body>18<h3align="center">添加用户</h3>19<formaction="user/user!add">20<tablealign="center">21<tr>22<td><inputtype="text"name="username"></td>23</tr>24<tr>25<td><inputtype="passWord"name="password"></td>26</tr>27<tr>28<td><inputtype="submit"value="提交"></td>29</tr>30</table>31</form>3233<h3align="center">查询所有用户</h3>34<palign="center"><ahref="user/user!get">查询</a></p>35</body>36</html>

3. user_add_success.jsp

1<%@ page language="java"contentType="text/html; charset=ISO-8859-1"2pageEncoding="ISO-8859-1"%>3<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">4<html>5<head>6<metahttp-equiv="Content-Type"content="text/html; charset=ISO-8859-1">7<title>Insert title here</title>8</head>9<bodybgcolor="#33CC99">10<h3align="center">user add success</h3></body>11</html>

4. user_get.jsp

<%@ page language="java"contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%@taglib prefix="s"uri="/struts-tags"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html; charset=UTF-8"><title>Insert title here</title></head><bodybgcolor="#33CC99"><h3align="center">用户列表</h3></body><tablealign="center"><tr><td>ID</td><td>用户名</td><td>密码</td></tr><s:iteratorvalue="users"><tr><td><s:propertyvalue="id"/></td><td><s:propertyvalue="username"/></td><td><s:propertyvalue="password"/></td></tr></s:iterator></table></html>

5. struts.xml

1<?xml version="1.0" encoding="UTF-8"?>2<!DOCTYPE struts PUBLIC3"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"4"http://struts.apache.org/dtds/struts-2.3.dtd">56<struts>7<constantname="struts.devMode"value="true"/>8<constantname="struts.enable.DynamicMethodInvocation"value="true"/>910<packagename="default"namespace="/user"extends="struts-default">11<actionname="user"class="com.hjj.action.UserAction">12<resultname="add">13/user_add_success.jsp14</result>1516<resultname="get">17/user_get.jsp?users=${users}18</result>19</action>20</package>21</struts>

6. conf.xml

1<?xml version="1.0" encoding="UTF-8"?>2<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">3<configuration>4<environmentsdefault="development">5<environmentid="development">6<transactionManagertype="JDBC"/>7<dataSourcetype="POOLED">8<propertyname="driver"value="com.mysql.jdbc.Driver"/>9<propertyname="url"value="jdbc:mysql://localhost:3306/mybatis"/>10<propertyname="username"value="root"/>11<propertyname="password"value="000000"/>12</dataSource>13</environment>14</environments>15<mappers>16<mapperresource="com/hjj/dao/userMapper.xml"/>17</mappers>18</configuration>

7. userMapper.xml

1<?xml version="1.0" encoding="UTF-8"?>2<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">3<mappernamespace="com.hjj.dao.userMapper">4<selectid="getUser"resultType="com.hjj.model.User">5select * from user;6</select>78<insertid="insertUser"parameterType="com.hjj.model.User">9insert into user (username,password) values (#{username},#{password});10</insert>11</mapper>

8 .User.java

1packagecom.hjj.model;23publicclassUser {45privateintid;6privateString username;7privateString password;89publicUser(intid, String username, String password) {10super();11this.id =id;12this.username =username;13this.password =password;14}15publicUser() {16super();17//TODO Auto-generated constructor stub18}1920publicintgetId() {21returnid;22}23publicvoidsetId(intid) {24this.id =id;25}26publicString getUsername() {27returnusername;28}29publicvoidsetUsername(String username) {30this.username =username;31}32publicString getPassword() {33returnpassword;34}35publicvoidsetPassword(String password) {36this.password =password;37}3839@Override40publicString toString() {41return"User [id=" + id + ", username=" + username + ", password=" + password + "]";42}43}

9. UserAction.java

1packagecom.hjj.action;23importjava.io.IOException;4importjava.util.ArrayList;5importjava.util.List;67importcom.hjj.dao.MysqlDAO;8importcom.hjj.model.*;9importcom.opensymphony.xwork2.ActionSupport;10importcom.opensymphony.xwork2.ModelDriven;1112publicclassUserActionextendsActionSupportimplementsModelDriven<User>{13privateUser user =null;14List<User> users =newArrayList<User>();151617publicList<User>getUsers() {18returnusers;19}2021publicvoidsetUsers(List<User>users) {22this.users =users;23}2425publicString add()throwsIOException{26System.out.println(user);27MysqlDAO dao =newMysqlDAO();28dao.insertUser(user);29return"add";30}3132publicString get()throwsIOException{33MysqlDAO dao =newMysqlDAO();34users =dao.getUsers();35return"get";36}373839publicUser getModel() {40if(user ==null){41user =newUser();42}43returnuser;44}4546}

10 . MysqlDAO.java

1packagecom.hjj.dao;23importjava.io.IOException;4importjava.io.Reader;5importjava.util.ArrayList;6importjava.util.List;78importorg.apache.ibatis.io.Resources;9importorg.apache.ibatis.session.SqlSession;10importorg.apache.ibatis.session.SqlSessionFactory;11importorg.apache.ibatis.session.SqlSessionFactoryBuilder;1213importcom.hjj.model.User;1415publicclassMysqlDAO {1617privateSqlSessionFactory sessionFactory =null;18privateSqlSession session =null;1920publicMysqlDAO()throwsIOException{21String resource = "conf.xml";2223Reader reader =Resources.getResourceAsReader(resource);2425sessionFactory =newSqlSessionFactoryBuilder().build(reader);2627}28publicList<User>getUsers(){2930List<User> users =newArrayList<User>();3132session =sessionFactory.openSession();3334String statement = "com.hjj.dao.userMapper.getUser";3536users =session.selectList(statement);3738session.commit();3940returnusers;41}4243publicvoidinsertUser(User user){4445session =sessionFactory.openSession();4647String statement = "com.hjj.dao.userMapper.insertUser";4849introw =session.insert(statement, user);50session.commit();51System.out.println(row);52}53}

四.运行代码。

1.地址栏输入:http://localhost:8080/MybatisAndStruts/index.jsp。显示页面如下(页面简单丑陋)。

第一个文本输入框为用户名,第二个为密码。

2. 提交后页面显示

3.返回index.jsp。点击查询。显示列表。

至此,所有的代码和测试已经写完了。这应该算是很简单的一个mybatis和struts的整合了,就当做入门练习了。至于里面的一些东西,例如ModelDriven,和user/user!add这些东西,学过struts2的人应该都知道。不过为了自己能够更深刻的理解,在明天我也会做出总结。

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航