zoukankan      html  css  js  c++  java
  • Mybatis+Struts2的结合:实现用户插入和查找

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

      一 准备工作。

       1.新建一个java web项目。

       2.在webContentlib目录下导入所需要的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-allstruts-2.3.24.1appsWEB-INFlib

          我下载的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.webContentlibweb.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"
     2     pageEncoding="UTF-8"%>
     3 <%
     4 
     5 String path = request.getContextPath();
     6 String BasePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
     7 
     8 %>
     9   
    10 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    11 <html>
    12 <head>
    13 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    14 <base href="<%=BasePath %>"></base>
    15 <title>首页</title>
    16 </head>
    17 <body>
    18     <h3 align="center">添加用户</h3>
    19     <form action="user/user!add">
    20         <table align="center">
    21             <tr>
    22                 <td><input type="text" name="username"></td>
    23             </tr>
    24             <tr>
    25                 <td><input type="password" name="password"></td>
    26             </tr>
    27             <tr>
    28                 <td><input type="submit" value="提交"></td>
    29             </tr>
    30         </table>
    31     </form>
    32     
    33     <h3 align="center">查询所有用户</h3>
    34     <p align="center"><a  href="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"
     2     pageEncoding="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 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
     7 <title>Insert title here</title>
     8 </head>
     9 <body bgcolor="#33CC99">
    10 <h3 align="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>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Insert title here</title>
    </head>
    <body bgcolor="#33CC99">
    <h3 align="center">用户列表</h3></body>
        <table align="center">
            <tr>
                <td>ID</td>
                <td>用户名</td>
                <td>密码</td>
            </tr>
            
            <s:iterator value="users" >    
                <tr>
                    <td> <s:property value="id" />        </td>
                    <td> <s:property value="username" />  </td>  
                    <td> <s:property value="password" />  </td> 
                </tr>
            </s:iterator>  
        </table>
    
    </html>

        

        5. struts.xml

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <!DOCTYPE struts PUBLIC
     3     "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
     4     "http://struts.apache.org/dtds/struts-2.3.dtd">
     5 
     6 <struts>    
     7      <constant name="struts.devMode" value="true" />
     8      <constant name="struts.enable.DynamicMethodInvocation" value="true" />
     9      
    10      <package name="default" namespace="/user" extends="struts-default">
    11         <action name="user" class="com.hjj.action.UserAction" >
    12             <result name="add">
    13             /user_add_success.jsp
    14             </result>
    15             
    16             <result name="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     <environments default="development">
     5         <environment id="development">
     6             <transactionManager type="JDBC" />
     7                 <dataSource type="POOLED">
     8                     <property name="driver" value="com.mysql.jdbc.Driver" />
     9                     <property name="url" value="jdbc:mysql://localhost:3306/mybatis" />
    10                     <property name="username" value="root" />
    11                     <property name="password" value="000000" />
    12                 </dataSource>
    13         </environment>
    14     </environments>
    15     <mappers>
    16             <mapper resource="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 <mapper namespace="com.hjj.dao.userMapper"> 
     4         <select id="getUser"  resultType="com.hjj.model.User"> 
     5                 select * from user;
     6         </select> 
     7         
     8         <insert id="insertUser"  parameterType="com.hjj.model.User"> 
     9                 insert into user (username,password) values (#{username},#{password});
    10         </insert> 
    11 </mapper>

        

        8 .User.java

     1 package com.hjj.model;
     2 
     3 public class User {
     4     
     5     private int id;
     6     private String username;
     7     private String password;
     8     
     9     public User(int id, String username, String password) {
    10         super();
    11         this.id = id;
    12         this.username = username;
    13         this.password = password;
    14     }
    15     public User() {
    16         super();
    17         // TODO Auto-generated constructor stub
    18     }
    19     
    20     public int getId() {
    21         return id;
    22     }
    23     public void setId(int id) {
    24         this.id = id;
    25     }
    26     public String getUsername() {
    27         return username;
    28     }
    29     public void setUsername(String username) {
    30         this.username = username;
    31     }
    32     public String getPassword() {
    33         return password;
    34     }
    35     public void setPassword(String password) {
    36         this.password = password;
    37     }
    38     
    39     @Override
    40     public String toString() {
    41         return "User [id=" + id + ", username=" + username + ", password=" + password + "]";
    42     }
    43 }

        9. UserAction.java

      

     1 package com.hjj.action;
     2 
     3 import java.io.IOException;
     4 import java.util.ArrayList;
     5 import java.util.List;
     6 
     7 import com.hjj.dao.MysqlDAO;
     8 import com.hjj.model.*;
     9 import com.opensymphony.xwork2.ActionSupport;
    10 import com.opensymphony.xwork2.ModelDriven;
    11 
    12 public class UserAction extends ActionSupport implements ModelDriven<User>{
    13     private User user = null; 
    14     List<User> users = new ArrayList<User>();
    15     
    16     
    17     public List<User> getUsers() {
    18         return users;
    19     }
    20     
    21     public void setUsers(List<User> users) {
    22         this.users = users;
    23     }
    24     
    25     public String add() throws IOException{
    26         System.out.println(user);
    27         MysqlDAO dao = new MysqlDAO();
    28         dao.insertUser(user);        
    29         return "add";
    30     }
    31     
    32     public String get() throws IOException{
    33         MysqlDAO dao = new MysqlDAO();
    34         users = dao.getUsers();
    35         return "get";
    36     }
    37     
    38     
    39     public User getModel() {
    40         if(user == null){
    41             user = new User();
    42         }
    43         return user;
    44     }
    45 
    46 }

        10 . MysqlDAO.java

     1 package com.hjj.dao;
     2 
     3 import java.io.IOException;
     4 import java.io.Reader;
     5 import java.util.ArrayList;
     6 import java.util.List;
     7 
     8 import org.apache.ibatis.io.Resources;
     9 import org.apache.ibatis.session.SqlSession;
    10 import org.apache.ibatis.session.SqlSessionFactory;
    11 import org.apache.ibatis.session.SqlSessionFactoryBuilder;
    12 
    13 import com.hjj.model.User;
    14 
    15 public class MysqlDAO {
    16     
    17     private SqlSessionFactory sessionFactory = null;
    18     private SqlSession session = null;
    19     
    20     public MysqlDAO() throws IOException{
    21         String resource = "conf.xml"; 
    22     
    23         Reader reader = Resources.getResourceAsReader(resource); 
    24     
    25         sessionFactory = new SqlSessionFactoryBuilder().build(reader);
    26         
    27     }
    28     public List<User> getUsers(){
    29         
    30         List<User> users = new ArrayList<User>();
    31         
    32         session = sessionFactory.openSession();
    33         
    34         String statement = "com.hjj.dao.userMapper.getUser";
    35         
    36         users = session.selectList(statement);
    37         
    38         session.commit();
    39         
    40         return users;
    41     }
    42     
    43     public void insertUser(User user){
    44             
    45         session = sessionFactory.openSession();
    46     
    47         String statement = "com.hjj.dao.userMapper.insertUser";
    48     
    49         int row = session.insert(statement, user);
    50         session.commit();
    51         System.out.println(row);
    52     }
    53 }

      四.运行代码。

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

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

        2. 提交后页面显示

        

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

        

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

          

  • 相关阅读:
    一起谈.NET技术,.Net Discovery系列之深入理解平台机制与性能影响(下) 狼人:
    一起谈.NET技术,Silverlight 2.5D RPG游戏技巧与特效处理:(十二)魔法系统 狼人:
    一起谈.NET技术,.Net Discovery系列之深入理解平台机制与性能影响 (中) 狼人:
    一起谈.NET技术,再次分享一个多选文件上传方案 狼人:
    一起谈.NET技术,Silverlight 2.5D RPG游戏技巧与特效处理:(十一)AI系统 狼人:
    一起谈.NET技术,.NET中的异步编程 IO完成端口以及FileStream.BeginRead 狼人:
    一起谈.NET技术,C#中标准Dispose模式的实现 狼人:
    一起谈.NET技术,DotNet并行计算的使用误区 狼人:
    一起谈.NET技术,.NET中的委托 狼人:
    一起谈.NET技术,ASP.NET MVC3 基础教程 – Web Pages 1.0 狼人:
  • 原文地址:https://www.cnblogs.com/HouJiao/p/5022367.html
Copyright © 2011-2022 走看看