ssh 增、查、改、删

来源:互联网 发布:javascript 对象数组 编辑:程序博客网 时间:2024/06/05 12:05

代码:

一、引架包这里只提供架包名

ant-1.6.5.jar

ant-antlr-1.6.5.jar

ant-junit-1.6.5.jar

ant-launcher-1.6.5.jar

ant-swing-1.6.5.jar

antlr-2.7.6.jar

asm-3.3.jar

asm-attrs.jar

asm-commons-3.3.jar

asm-tree-3.3.jar

aspectjrt.jar

aspectjweaver.jar

c3p0-0.9.0.jar

cglib-nodep-2.2.jar

checkstyle-all.jar

classes12.jar

cleanimports.jar

commons-collections-2.1.1.jar

commons-fileupload-1.2.2.jar

commons-io-2.0.1.jar

commons-lang3-3.1.jar

commons-logging.jar

concurrent-1.3.2.jar

connector.jar

dom4j-1.6.1.jar

ehcache-1.2.jar

freemarker-2.3.19.jar

hibernate3.jar

jaas.jar

jacc-1_0-fr.jar

javassist-3.11.0.GA.jar

jaxen-1.1-beta-7.jar

jboss-cache.jar

jboss-common.jar

jboss-jmx.jar

jboss-system.jar

jdbc2_0-stdext.jar

jgroups-2.2.8.jar

jta.jar

junit-3.8.1.jar

log4j-1.2.14.jar

ognl-3.0.5.jar

oscache-2.1.jar

proxool-0.8.3.jar

spring.jar

struts2-core-2.3.4.jar

struts2-spring-plugin-2.3.4.jar

swarmcache-1.0rc2.jar

syndiag2.jar

versioncheck.jar

xerces-2.6.2.jar

xml-apis.jar

xwork-core-2.3.4.jar

二、后台entity及映射文件、dao、daoimpl、service、serviceimpl、LoginAction
entityStudent 

package li.entity;

import java.io.Serializable;
import java.util.Set;

public class Student implements Serializable{
    private String sid;
    private String name;
    private String pass;
    private String age;
    private Department department;
    
    public String getSid() {
        return sid;
    }
    public void setSid(String sid) {
        this.sid = sid;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPass() {
        return pass;
    }
    public void setPass(String pass) {
        this.pass = pass;
    }
    public String getAge() {
        return age;
    }
    public void setAge(String age) {
        this.age = age;
    }
    public Department getDepartment() {
        return department;
    }
    public void setDepartment(Department department) {
        this.department = department;
    }
}

映射文件

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping >
    <class name="li.entity.Student" table="t_ssh_student">
        <id name="sid"><!-- 表示定义主键 -->
            <generator class="uuid"/><!-- UUID生成策略是hibernate自带一个主键生成策略32,64,128位唯一字符序列  -->
        </id>
        <property name="name"/><!-- 普通属性 -->
        <property name="pass"/>
        <property name="age"/>
        <many-to-one name="department" column="did" cascade="save-update"></many-to-one>
    </class>
</hibernate-mapping>

dao

package li.dao;

import java.util.List;
import li.entity.Student;

public interface IStudentDao {
    public void addstudent(Student student);
    public List<Student> findallstudent();
    public void deletestudent(Student student);
    public void updatestudent(Student student);
}

daoimpl

package li.dao.impl;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import li.dao.IStudentDao;
import li.entity.Student;

public class StudentDaoImpl extends HibernateDaoSupport implements IStudentDao {

    @Override
    public void addstudent(Student student) {
        Session session = this.getSession();
        session.save(student);//添加
    }
    @Override
    public List<Student> findallstudent() {
        Session session = this.getSession();
        Query query = session.createQuery("from Student");
        List<Student> students = query.list();
        return students;//查询所有
    }    
    @Override
    public void updatestudent(Student student) {
        Session session = this.getSession();
        Student stu = (Student)session.load(Student.class, "2c928273425496a0014254991f540001");
        stu.setName(student.getName());
        stu.setPass(student.getPass());
        stu.setAge(student.getAge());
        session.update(stu);//修改
    }
    @Override
    public void deletestudent(Student student) {
        Session session = this.getSession();
        Student stu = (Student)session.load(Student.class, "2c928273425568e90142556b9aff0001");
        session.delete(stu);//删除
    }
}

service

package li.service;

import java.util.List;

import li.entity.Student;

public interface IStudentService {
    public void addstudent(Student student);
    public List<Student> findallstudent();
    public void updatestudent(Student student);
    public void deletestudent(Student student);
}
serviceimpl

package li.service.impl;

import java.util.List;

import li.dao.IStudentDao;
import li.entity.Student;
import li.service.IStudentService;

public class StudentServiceImpl implements IStudentService {
    private IStudentDao studentdao;

//****************************************************
//get and set
    public IStudentDao getStudentdao() {
        return studentdao;
    }
    public void setStudentdao(IStudentDao studentdao) {
        this.studentdao = studentdao;
    }
//****************************************************
//方法
//添加
    @Override
    public void  addstudent(Student student) {
        studentdao.addstudent(student);
    }
//查询所有学生
    @Override
    public List<Student> findallstudent() {
        return studentdao.findallstudent();
    }
//修改
    @Override
    public void updatestudent(Student student) {
        studentdao.updatestudent(student);
    }
//删除
    @Override
    public void deletestudent(Student student) {
        studentdao.deletestudent(student);
    }
}
LoginAction

package li.web;

import java.util.List;

import li.entity.Student;
import li.service.IStudentService;

public class LoginAction {
    List<Student> students = null;
    private Student stu;
    private IStudentService studentservice;
//*********************************************************
//构造方法    
    public LoginAction() {
        super();
    }
//*********************************************************
//get and set
    
    public IStudentService getStudentservice() {
        return studentservice;
    }
    public List<Student> getStudents() {
        return students;
    }

    public void setStudents(List<Student> students) {
        this.students = students;
    }

    public Student getStu() {
        return stu;
    }

    public void setStu(Student stu) {
        this.stu = stu;
    }

    public void setStudentservice(IStudentService studentservice) {
        this.studentservice = studentservice;
    }
//*********************************************************
//action method    
    //增加
    public String addstudent(){
        System.out.println("add:"+stu.getName()+":"+stu.getPass());
        studentservice.addstudent(stu);
        return "success";
    }
//查询所有学生
    public String findallstudent(){
        System.out.println("findallstudent");
        students = studentservice.findallstudent();
        return "success";
    }
//修改    
    public String updatestudent(){
        System.out.println("updatestudent");
        studentservice.updatestudent(stu);
        return "success";
    }
//删除    
    public String deletestudent(){
        System.out.println("deletestudent");
        studentservice.deletestudent(stu);
        return "success";
    }

}
三、jsp页面

index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
  </head>
 
  <body>
    <h3>添加</h3>
    <form action="loginadd" method="post" >
        姓名:<input type="text" name="stu.name" value=""/><br>
        密码:<input type="password" name="stu.pass" value=""/><br>
        <input type="submit"  value="添加"/><br>
    </form>
    <h3>查询所有</h3>
    <form action="findall" method="post" >
        <input type="submit"  value="查询所有"/><br>
    </form>
    <h3>修改</h3>
    <form action="update" method="post" >
        姓名:<input type="text" name="stu.name" value=""/><br>
        密码:<input type="password" name="stu.pass" value=""/><br>
        年龄:<input type="text" name="stu.age" value=""/><br>
        <input type="submit"  value="修改"/><br>
    </form>
    <h3>删除</h3>
    <form action="delete" method="post" >
        <input type="submit"  value="删除"/><br>
    </form>
  </body>
</html>

findallstudent.jsp     //路径:WebRoot/pages/findallstudent.jsp

<%@ page language="java" import="java.util.*,li.entity.Student.*" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>

<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
  </head>
 
  <body>
    成功页面<br>
    <s:iterator value="students" var="st" >
            id:<s:property value="#st.sid"/>&nbsp
            姓名:<s:property value="#st.name"/>&nbsp
            密码:<s:property value="#st.pass"/><br>
    </s:iterator><br>
  </body>
</html>

/pages/findallstudent.jsp

/pages/login_error.jsp            这两个jsp页面只是跳转页面,验证form表单是否提交成功的,具体略

四、web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
  <display-name></display-name>
 
  <welcome-file-list><!-- 首页 -->
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
 
  <filter><!-- 过滤器,引到struts.xml中 -->
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>
 
  <context-param><!-- 引到applicationContext.xml中 -->
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:applicationContext.xml</param-value>
  </context-param>
  <listener><!-- 监听 -->
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
 
</web-app>

五、struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

   <constant name="struts.enable.DynamicMethodInvocation" value="true"></constant><!-- 动态方法调用 -->
   <constant name="struts.i18n.encoding" value="UTF-8"></constant><!-- 转码 -->
   <constant name="struts.devMode" value="true"></constant><!-- 开发模式:修改struts.xml不用重启服务器 -->
   <constant name="struts.objectFactory" value="spring"></constant><!--  加入常量配置 struts action类实例由spring创建 -->
   
    <package name="default" namespace="/" extends="struts-default">
        
        <action name="loginadd" class="loginaction" method="addstudent"><!-- class属性必须指定到applicationContext.xml注册action类的id属性  -->
            <result name="success">/pages/login_success.jsp</result>
            <result name="error">/pages/login_error.jsp</result>
        </action>
        
        <action name="findall" class="loginaction" method="findallstudent">
            <result name="success">/pages/findallstudent.jsp</result>
            <result name="error">/pages/login_error.jsp</result>
        </action>
        
        <action name="update" class="loginaction" method="updatestudent">
            <result name="success">/pages/login_success.jsp</result>
            <result name="error">/pages/login_error.jsp</result>
        </action>
        
        <action name="delete" class="loginaction" method="deletestudent">
            <result name="success">/pages/login_success.jsp</result>
            <result name="error">/pages/login_error.jsp</result>
        </action>
        
    </package>

</struts>
六、applicationContext.xml

<?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:tx="http://www.springframework.org/schema/tx"
         xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"
           >

    <!-- 配置session工厂 -->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="configLocation">
            <value>classpath:hibernate.cfg.xml</value><!-- 有疑问 -->
        </property>
    </bean>
    <!-- 配置事务管理器 -->
    <bean id="transcationmanager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>
    <!-- 配置事务传播特征 -->
    <tx:advice id="txadvice" transaction-manager="transcationmanager">
        <tx:attributes>
            <tx:method name="add*" propagation="REQUIRED"/>
            <tx:method name="dele*" propagation="REQUIRED"/>
              <tx:method name="update*" propagation="REQUIRED"/>
              <tx:method name="*" read-only="true"/>
        </tx:attributes>
    </tx:advice>
    <!-- 配置那些方法会参与事务 -->
    <aop:config>
        <!-- <aop:pointcut id="myaop" expression="execution(* li.service.impl.*.add*(..))"/> 以add开头的方法参与事物 -->
        <aop:pointcut id="myaop" expression="execution(* li.service.impl.*.*(..))"/><!-- 所有方法参与事物 -->
        <aop:advisor pointcut-ref="myaop" advice-ref="txadvice" />
    </aop:config>
    
    
    <!-- 注册dao层实现类  叫myuserdao-->
    <bean id="mystudentdao" class="li.dao.impl.StudentDaoImpl">
        <property name="sessionFactory" ref="sessionFactory"></property>
    </bean>
    <!-- 注册service层实现类 叫myservice 需要IUserDao类型的属性 -->
    <bean id="myservice" class="li.service.impl.StudentServiceImpl">
        <property name="studentdao" ref="mystudentdao"></property><!-- 将mystudentdao注入 StudentServiceImpl类中的studentdao变量中-->
    </bean>
    <!-- 注册action类 叫loginaction, 需要IUserService类型的属性-->
    <bean id ="loginaction" class="li.web.LoginAction">
         <property name="studentservice" ref="myservice"></property><!-- 将myservice注入LoginAction类中的userservice变量中-->
    </bean>
</beans>
七、hibernate.cfg.xml

<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
    <session-factory >
        <property name="hibernate.dialect">org.hibernate.dialect.OracleDialect</property>
        <property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
        <property name="hibernate.connection.username">li</property>
        <property name="hibernate.connection.password">p123</property>
        <property name="hibernate.connection.url">jdbc:oracle:thin:@172.18.2.243:1521:liorclli</property>
        <property name="hibernate.show_sql">true</property>
        <property name="hibernate.hbm2ddl.auto">update</property>
        <mapping resource="li/entity/Student.hbm.xml"/>
        <mapping resource="li/entity/Department.hbm.xml"/>
    </session-factory>
    
</hibernate-configuration>
八、log4j.properties

# For JBoss: Avoid to setup Log4J outside $JBOSS_HOME/server/default/deploy/log4j.xml!
# For all other servers: Comment out the Log4J listener in web.xml to activate Log4J.
log4j.rootLogger=INFO, stdout, logfile

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n

log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.File=${petstore.root}/WEB-INF/petstore.log
log4j.appender.logfile.MaxFileSize=512KB
# Keep three backup files.
log4j.appender.logfile.MaxBackupIndex=3
# Pattern to output: date priority [category] - message
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n





原创粉丝点击