ssh三大框架,三层架构 整合测试!完整分页代码,JdbcTemplate等测试,存储过程调用,留着以后复习吧

来源:互联网 发布:php parent父类 编辑:程序博客网 时间:2024/05/17 01:04

下载地址:http://download.csdn.net/detail/liangrui1988/5760453

下载之后是MyEclipse项目,需要的存存储过程代码:

--存储过程 包头create or replace package myPack istype c_cursors is ref cursor;procedure deUser(v_id long);--删除procedure getAllUser(myCursor out myPack.c_cursors);--查询end myPack;--存储过程 包体create or replace package body myPack as /****************删除*******************/procedure deUser(v_id long) is  e_table exception;  v_sql varchar2(200);   begin  if v_id is null then    raise e_table;    end if;    v_sql:='delete  from fuck where id=:1';     execute immediate v_sql using v_id;    exception       when e_table then        dbms_output.put_line('参数不能为空!');    end; /****************查询*******************/ procedure getAllUser(myCursor out myPack.c_cursors) as  v_sqlS varchar2(200);  begin        v_sqlS:='select * from fuck';            open myCursor for v_sqlS;  end;end myPack;   ------------------------select * from fuck





dao实现类代码:

package accp.dao.imple;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Types;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Map.Entry;import javax.sql.DataSource;import org.hibernate.Query;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.springframework.jdbc.core.JdbcTemplate;import org.springframework.jdbc.core.RowMapper;import org.springframework.jdbc.core.SqlParameter;import org.springframework.jdbc.core.simple.ParameterizedBeanPropertyRowMapper;import org.springframework.jdbc.core.simple.ParameterizedRowMapper;import org.springframework.jdbc.core.simple.SimpleJdbcCall;import org.springframework.jdbc.core.simple.SimpleJdbcTemplate;import org.springframework.jdbc.object.MappingSqlQuery;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;import acc.util.PageBean;import accp.bean.Fuck;import accp.dao.UserDao;public class UserDaoImple /*extends HibernateDaoSupport*/ implements UserDao {/** * sql 原生sql支持 *  */private JdbcTemplate jdbcTemplate;private SimpleJdbcTemplate simpleJdbcTemplate;private DataSource dataSource;private SimpleJdbcCall jdbcCall;//通过注入得得到DataSoruce再强转@SuppressWarnings("deprecation")public void setDataSource(DataSource dataSource) {this.jdbcTemplate = new JdbcTemplate(dataSource);//jdbcTemplate 方式查询this.dataSource= dataSource;//mappingSqlQuery方式//使用Simple 方式 更好this.simpleJdbcTemplate=new SimpleJdbcTemplate(dataSource);jdbcTemplate.setResultsMapCaseInsensitive(true);//创建simplejdbccallthis.jdbcCall=new SimpleJdbcCall(this.jdbcTemplate)              .withProcedureName("myPack.getAllUser")              .withoutProcedureColumnMetaDataAccess()              .returningResultSet("fucks",              ParameterizedBeanPropertyRowMapper              .newInstance(Fuck.class));}/** * MappingSqlQuery 类  SQL查询 */   @SuppressWarnings("unchecked")public Fuck login(Fuck u) {/*List<Fuck> list=this.getHibernateTemplate().find("from Fuck fu where fu.name=? and fu.password=? ",new Object[]{u.getName(),u.getPassword()});*/  /*Session session=sessionFactory.getCurrentSession();Query query=session.createQuery("from Fuck fu where fu.name=? and fu.password=? ");query.setString(0, u.getName());query.setString(1, u.getPassword());List<Fuck> list=query.list();*///sqlFuck uu;String sql="select id,name,password from fuck where name=? and password=?";uu=this.jdbcTemplate.queryForObject(sql, new Object[]{u.getName(),u.getPassword()},new RowMapper(){                    //查询并将结果记录为一个简单的数据模型。public Object mapRow(ResultSet rs, int rowNum)throws SQLException {Fuck fuck=new Fuck();fuck.setId(rs.getLong("id"));fuck.setName(rs.getString("name"));fuck.setPassword(rs.getString("password"));return fuck;}});return uu;}public int getCount(Fuck u) {/*查询一个简单的数字 * String sql="select count(*) from fuck where name=? and password=?";int i=jdbcTemplate.queryForInt(sql,new Object[]{u.getName(),u.getPassword()});*//*String sql="select count(*) from fuck where name=? and password=?";int i=jdbcTemplate.queryForInt(sql,new Object[]{u.getName(),u.getPassword()});*/return 0;}public Fuck getFuck(int ids){//方式一 使用jdbcTemplate MappingSql mappingSqlQuery =new MappingSql(dataSource); Object[] parms = new Object[1];    parms[0] = ids;    //执行sql 传入参数 返回查询结果    List customers = mappingSqlQuery.execute(parms);    if (customers.size() > 0) {        return (Fuck) customers.get(0);    }    else {        return null;    }/* * 方式二 使用SimpleJdbcTemplate *//*String sql="select id, name,password FROM fuck WHERE id = ?";ParameterizedRowMapper<Fuck> prm=new ParameterizedRowMapper<Fuck>(){public Fuck mapRow(ResultSet rs, int arg1) throws SQLException {Fuck fuck=new Fuck();fuck.setId(rs.getLong("id"));fuck.setName(rs.getNString("name"));fuck.setPassword(rs.getString("password"));return fuck;}};@SuppressWarnings("deprecation")Fuck fus=this.simpleJdbcTemplate.queryForObject(sql, prm, new Object[]{ids});return fus;*/}public void updateF(Fuck u) {jdbcTemplate.update("update fuck set name=?,password=? where id=?",new Object[]{u.getName(),u.getPassword(),u.getId()});}public void saveF(Fuck u) {jdbcTemplate.update("insert into fuck values(user_id.nextval,?,?)",new Object[]{u.getName(),u.getPassword()});}/** * 内部类继承MappingSqlQuery类 * @author liangrui * */static class MappingSql extends MappingSqlQuery {//构造方法传入DataSource 数据源对象,调用declarParamter 传入需要的SQL值的内型 public MappingSql(DataSource ds){     super(ds, "SELECT id, name,password FROM fuck WHERE id = ?");         super.declareParameter(new SqlParameter("id", Types.INTEGER));         compile();}  /**  * 这个对象实列后 调用execute()方法 传入Object[]数组参数 它初执行,  * 并反回resultSet 结果集  */@Overrideprotected Object mapRow(ResultSet rs, int id) throws SQLException {   Fuck cust = new Fuck();        cust.setId(Long.parseLong(rs.getObject("id").toString()));        cust.setName(rs.getString("name"));        cust.setPassword(rs.getString("password"));        return cust;}}public List<Fuck>  getShowList() {List<Fuck> f;f=jdbcTemplate.queryForObject("select * from fuck",                                new RowMapper<List<Fuck>>(){public List<Fuck>  mapRow(ResultSet rs, int arg1) throws SQLException {List<Fuck> listF=new ArrayList<Fuck>();while(rs.next()){System.out.println("封装中............");Fuck f=new Fuck();f.setId(rs.getLong("id"));f.setName(rs.getString("name"));f.setPassword(rs.getString("password"));listF.add(f);}return listF;}});return f;}/** * 存储过程删除用户 */public void deleteF(Fuck u) {jdbcTemplate.update("call mypack.deuser(?)",new Object[]{Long.valueOf(u.getId())});}public Fuck getProcedure() {return null;}//------------存储过程  游标 获取全部用户---------------------------------public List<Fuck> getProcShowList() {Map map=jdbcCall.execute(new HashMap<String,Object>(0));System.out.println("size: "+map.size());return (List<Fuck>) map.get("fucks");}//---------------------------分页处理-------------------------------------------public List<Fuck> getPageShow(PageBean pb) {System.out.println("pb.getOrader(): "+pb.getOrader() +" 当前页: "+pb.getCurrentPage()); String sql="select * from (select t.*,rownum r from fuck t " +"where rownum<=? order by ? )where r>? ";List<Fuck> lists=null;lists=jdbcTemplate.queryForObject(sql,//设置参数new Object[]{pb.getCurrentPage()*pb.getPageSize(),//当前页*每页显示的行数=最大数据截止的行数pb.getOrader(),(pb.getCurrentPage()-1)*pb.getPageSize()},//获取数据,并反回对象new RowMapper<List<Fuck>>(){public List<Fuck> mapRow(ResultSet rs, int arg1)throws SQLException {List<Fuck> list=new ArrayList<Fuck>();while(rs.next()){Fuck fuck=new Fuck();fuck.setId(rs.getLong("id"));fuck.setName(rs.getString("name"));fuck.setPassword(rs.getString("password"));list.add(fuck);}return list;}});//pb.setData(lists);return lists;}public int getFuckTotalRow() {int total=jdbcTemplate.queryForInt("select count(*) from fuck");return total;}}


spring xml


<?xml version="1.0" encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"xmlns:aop="http://www.springframework.org/schema/aop"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beans                    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd                    http://www.springframework.org/schema/aop                    http://www.springframework.org/schema/aop/spring-aop-3.0.xsd                    http://www.springframework.org/schema/tx                    http://www.springframework.org/schema/tx/spring-tx-3.0.xsd                                       http://www.springframework.org/schema/context                    http://www.springframework.org/schema/context/spring-context-3.0.xsd"                ><!--  配制数据源<bean id="myDataResource" class="org.apache.commons.dbcp.BasicDataSource"><property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/><property name="url"  value="jdbc:oracle:thin:@localhost:1521:ABC"/><property name="username" value="tenement"/><property name="password" value="rui"/><property name="initialSize" value="3"/><property name="maxActive" value="500"/><property name="maxIdle" value="3"/><property name="minIdle" value="1"/></bean>--><!-- 配制数据池 --> <bean id="myDataResource" class="org.springframework.jndi.JndiObjectFactoryBean">    <property name="jndiName" value="java:comp/env/jdbc/SSHnewPool"/>  </bean><!-- 配制原生sql查询方式    注入dataSource --><bean id="UserDao" class="accp.dao.imple.UserDaoImple">        <property name="dataSource" ref="myDataResource"/>    </bean><!-- session cofnig <bean id="mySession" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><property name="dataSource" ref="myDataResource"/><property name="hibernateProperties"><value>hibernate.dialect=org.hibernate.dialect.OracleDialecthibernate.hbm2ddl.auto=updatehibernate.show_sql=true</value></property><property name="mappingResources"><list><value>/accp/bean/Fuck.hbm.xml</value></list></property></bean>--><!-- 指定sessionfatory 的事务   <bean id="myThransactions" class="org.springframework.orm.hibernate3.HibernateTransactionManager"><property name="sessionFactory" ref="mySession"/></bean>--><!-- 事务方法  规则<tx:advice id="txAdvice" transaction-manager="myThransactions">    <tx:attributes> -->    <!-- 这些开头的方法 加上 不要读锁      <tx:method name="get*" read-only="true"/>       <tx:method name="find*" read-only="true"/>       <tx:method name="search*" read-only="true"/>       <tx:method name="query*" read-only="true"/>      -->      <!-- 这些开头的方法 设为REQUIRED 如果存在一个事务 ,则支看当前事务。  如果没有则开启一个新事务                                               设为supports时  如果存在一个事务 ,则支看当前事务。如果没有则安非事务处理       <tx:method name="add*" propagation="REQUIRED"/>      <tx:method name="del*" propagation="REQUIRED"/>      <tx:method name="update*" propagation="REQUIRED"/>      <tx:method name="do*" propagation="REQUIRED"/>      <tx:method name="*" propagation="REQUIRED" read-only="true"/>    </tx:attributes>  </tx:advice> --><!-- aop 切入点<aop:config><aop:pointcut expression="execution(* accp.dao..*.*(..))" id="myPointcut"/><aop:advisor advice-ref="txAdvice" pointcut-ref="myPointcut"/></aop:config>--><!-- <bean id="hiber" class="org.springframework.orm.hibernate3.HibernateTemplate"><property name="sessionFactory" ref="mySession"></property></bean> --> <!-- 配置事务 <bean id="myTransaction" class="accp.dao.imple.UserDaoImple"><property name="sessionFactory" ref="mySession"/></bean>--><bean id="serverInterface" class="accp.service.imple.ServiceImple"><property name="userDao" ref="UserDao"/></bean><bean id="userAction" class="accp.action.UserAction"><property name="userService" ref="serverInterface"/></bean></beans>

struts xml

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"><struts><package name="default1" extends="struts-default, spring-default"><action name="user_*" class="userAction"  method="{1}"><result name="success">ok.jsp</result><result name="TestConut">testConut.jsp</result><result name="TestMappingSql">testConut.jsp</result><result name="saveOK" type="redirectAction">user_showList.action</result><result name="deleteOK" type="redirectAction">user_showList.action</result><result name="updateSave">update.jsp</result><result name="showListr">userList.jsp</result><result name="pageShow">pageUSer.jsp</result></action></package></struts>    



原创粉丝点击