首页 文章 精选 留言 我的

精选列表

搜索[mvc框架],共10008篇文章
优秀的个人博客,低调大师

【java学习】spring mvc 公共dao的实现,定义基本的增删改查

接口类: package com.blog.db.dao; import com.blog.util.Pagination; import java.util.List; public interface PublicDao<T> { public void setMapper(Class t); public void setTableName(String tn); public List<T> queryList(Pagination pagination); public void deleteByID(int ID); public void add(T t,Object[] values,int[] types); public T queryById(int id); public T queryByField(String fieldname,String value); public void updateByID(T t,int ID,Object[] values,int[] types); } 实现类: package com.blog.db.dao.impl; import com.blog.db.dao.PublicDao; import com.blog.util.Pagination; import org.springframework.beans.factory.annotation.Value; import org.springframework.dao.EmptyResultDataAccessException; import org.springframework.jdbc.core.BeanPropertyRowMapper; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.RowMapper; import org.springframework.stereotype.Repository; import javax.annotation.Resource; import java.sql.Types; import java.util.List; /** * 公共dao实现 * @deprecated 提供常见的列表、插入、查询单个、更新数据服务 * @author ztf * */ @Repository("publicDao") public class PublicDaoimpl<T> implements PublicDao<T> { @Resource private JdbcTemplate jdbcTemplate; private String table_name = ""; //表名称 private List<String> fields; //表字段 @Value("${db_schema}") private String schema; //表模式 private RowMapper<T> mapper; /** * 设置Mapper映射 */ public void setMapper(Class t){ this.mapper = new BeanPropertyRowMapper<T>(t); } public RowMapper<T> getMapper(){ return mapper; } public void setTableName(String tn){ this.table_name = tn; } public String getTable_name() { return schema+"."+table_name; } public List<String> getFields(){ return this.fields; } public String getFieldsToString(){ String _fields; List<String> fields = getFields(); _fields = String.join(",",fields); return _fields; } /** * 查询列表 * @param pagination 传入公共util中定义的分页对象 * @return List<T> * */ public List<T> queryList(Pagination pagination) { List lists = null; String sql = "select * from ? ?"; lists = jdbcTemplate.queryForList( sql, getTable_name(), pagination.getSql(), getMapper() ); return lists; } /** * 根据ID删除某一个行 * @param ID 传入行id * */ public void deleteByID(int ID) { String sql = "delete from "+ getTable_name()+" where ID=?"; jdbcTemplate.update( sql, new Object[] { ID }, new int[] {Types.INTEGER} ); } /** * 插入数据 * @param t 传入操作的数据对象 * @param values 值的object[]对象 * @param types 值对象的类型 * */ public void add(T t,Object[] values,int[] types) { String sql = "insert into "+getTable_name()+"("+getFieldsToString()+") values(?)"; jdbcTemplate.update( sql, values, types ); } /** * 根据ID查询指定的行 * @param id 传入id * */ public T queryById(int id) { T t = null; String sql = "select * from "+getTable_name()+" where ID=?"; try{ t = jdbcTemplate.queryForObject( sql, new Object[] {id}, new int[] {Types.INTEGER}, getMapper() ); }catch(EmptyResultDataAccessException e){ t = null; } return t; } /** * 根据指定的fieldname查询指定值的单行数据 * @param fieldname 传入id * */ public T queryByField(String fieldname,String value) { T t = null; String sql = "select * from "+getTable_name()+" where "+fieldname+"=?"; try{ t = jdbcTemplate.queryForObject( sql, new Object[] {value}, new int[] {Types.VARCHAR}, getMapper() ); }catch(EmptyResultDataAccessException e){ t = null; } return t; } /** * 根据指定的id更新指定值的单行数据 * @param t 传入更新对象 * @param ID 传入指定的ID * @param values 值的object[]对象 * @param types 值对象的类型 int[] * */ public void updateByID(T t, int ID,Object[] values,int[] types) { String sql = "update "+getTable_name()+" set username=?,password=?,pic=?,describe=?,check_time=? where ID="+ID; jdbcTemplate.update( sql, values, types ); } } 核心的地方在:如何传递Mapper 这里我使用的是 private RowMapper<T> mapper; /** * 设置Mapper映射 */ public void setMapper(Class t){ this.mapper = new BeanPropertyRowMapper<T>(t); } public RowMapper<T> getMapper(){ return mapper; } 在调用Dao时传入 T类的.class对象 调用例如(部分代码): @Qualifier("publicDao") private PublicDao<User> ud; public User Sign(String username, String password) throws UnsupportedEncodingException { String md5_pass = MD5Encryption.getEncryption(password); ud.setTableName("users"); //指定查询表名 ud.setMapper(User.class); //指定映射class对象 User user = ud.queryByField("username",username); //根据字段 username查询值为xxx 可以实现基本表的增删改查,提升开发效率, 如果有特殊的Dao可以自定义一个专属Dao 再添加特殊方法======================================================== 转载请注明出处。

优秀的个人博客,低调大师

我的第一个MVC作品—燕赵宽频点播系统源码

代朋友(hevod.com)在园子里转发一个原创的视频点播系统,采用简单三层开发,希望得到大家的支持与鼓励! 其中有一些纰漏支持,还望各位指正! 燕赵宽频视频点播平台V1.0 开发环境:VS2005+Access hevod视频点播系统是一套采用Asp.net开发开源的视频在线播放系统,系统采用三层架构开发,数据库采用Access,适合于中小型网站应用,源码仅供个人学习参考,不得用于任何商业用途。 1、公用部分采用了用户控件进行调用 2、用户分权限管理,后台随时记录用户登录日志 网站前台页面和后台页面详见截图 前台页面均是采用div+css构建(目前只在IE6.0下调试,在其他浏览器版本下可能会产生错乱哦),第一次用div+css哦,不妥及兼容不当之处还请各位用户见谅。 由于本人不会设计页面,所以前后台页面均是改自互联网 演示及源码下载地址:http://www.hevod.com/default.aspx 本文转自 liudao 博客园博客,原文链接:http://www.cnblogs.com/liudao/archive/2008/01/24/1051060.html,如需转载请自行联系原作者

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册