最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

spring的jdbctemplate的crud的基類(lèi)dao

 更新時(shí)間:2014年02月10日 09:20:30   作者:  
本文主要介紹了使用spring的jdbctemplate進(jìn)行增刪改查的基類(lèi)Dao的簡(jiǎn)單寫(xiě)法,需要的朋友可以參考下

復(fù)制代碼 代碼如下:

import java.util.List;

/***
 * 基本接口
 *
 * @author xyq
 * @param <T>
 *
 */
public interface BaseDaoInf<T> {

 /***
  * 查詢(xún)接口
  *
  * @return
  */
 public List<T> find(String sql, Object[] parameters, Class<T> cl);

 /***
  *  添加,更新,刪除接口
  * @param sql
  * @param id
  * @param cl
  * @return
  */
 public int addOrUpdateOrDelete(String sql,Object[] parameters, Class<T> cl);
}

復(fù)制代碼 代碼如下:

import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.List;

import javax.annotation.Resource;

import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.PreparedStatementSetter;

import com.xyq.all.dao.inf.BaseDaoInf;

public class BaseDaoImpl<T> implements BaseDaoInf<T> {

 /**
  *
  */
 private static final long serialVersionUID = 1L;
 /***
  * 數(shù)據(jù)庫(kù)連接對(duì)象
  */
 @Resource(name = "jdbcTemplate")
 private JdbcTemplate jt;

 /***
  * 查詢(xún)接口
  */

 @Override
 public List<T> find(String sql, Object[] parameters, Class<T> cl) {

  List<T> resultList = null;
  try {
   if (parameters != null && parameters.length > 0)
    resultList = jt.query(sql, parameters,
      new BeanPropertyRowMapper<T>(cl));
   else
    // BeanPropertyRowMapper是自動(dòng)映射實(shí)體類(lèi)的
    resultList = jt.query(sql, new BeanPropertyRowMapper<T>(cl));
  } catch (Exception e) {
   e.printStackTrace();
  }
  return resultList;
 }

 /***
  * 添加,更新,刪除的實(shí)現(xiàn),返回1,0,-1
  */
 @Override
 public int addOrUpdateOrDelete(String sql, final Object[] parameters,
   Class<T> cl) {

  int num = 0;
  try {
   if (parameters == null || parameters.length == 0)
    num = jt.update(sql);
   else
    num = jt.update(sql, new PreparedStatementSetter() {

     @Override
     public void setValues(PreparedStatement ps)
       throws SQLException {

      for (int i = 0; i < parameters.length; i++)
       ps.setObject(i + 1, parameters[i]);
     }
    });
  } catch (Exception e) {
   e.printStackTrace();
   num = -1;
  }
  return num;
 }
}

復(fù)制代碼 代碼如下:

/**
 * 用戶(hù)操作接口
 * @author xyq
 *
 */
public interface UserInfoDaoInf {

 /***
  * 查詢(xún)是否有用戶(hù)
  * @param user
  * @return
  */
 public UserInfo findUser(UserInfo user);

 /***
  * 刪除用戶(hù)
  * @param user
  * @return
  */
 public int deleteUserById(UserInfo user);

 /***
  * 添加用戶(hù)
  * @param user
  * @return
  */
 public int addUser(UserInfo user);

 /***
  * 更新用戶(hù)
  * @param user
  * @return
  */
 public int updateUser(UserInfo user);
}

復(fù)制代碼 代碼如下:

import java.util.List;

import org.springframework.stereotype.Repository;

import com.xyq.all.dao.inf.UserInfoDaoInf;
import com.xyq.all.entity.UserInfo;

@Repository("userDao")
public class UserInfoDaoImpl extends BaseDaoImpl<UserInfo> implements
  UserInfoDaoInf {


 /***
  * 查找用戶(hù)信息
  */
 @Override
 public UserInfo findUser(UserInfo user) {

  List<UserInfo> list = null;
  String sql = "select * from userInfo where username=? and password =? ";
  list = super.find(sql,
    new String[] { user.getUserName(), user.getPassword() },
    UserInfo.class);
  if (list != null && list.size() > 0)
   return list.get(0);
  return null;
 }

 /***
  * 刪除用戶(hù)
  */
 @Override
 public int deleteUserById(UserInfo user) {

  String sql = "delete from userInfo where userid = ?";
  return super.addOrUpdateOrDelete(sql, new Integer[] { user.getUserId() },
    UserInfo.class);
 }

 /***
  * 添加用戶(hù)
  */
 @Override
 public int addUser(UserInfo user) {

  String sql = "insert into userInfo values(null,?,?,?)";

  return super.addOrUpdateOrDelete(
    sql,
    new Object[] { user.getUserName(), user.getPassword(),
      user.getSecondPassword() }, UserInfo.class);
 }

 /***
  * 更新用戶(hù)
  */
 @Override
 public int updateUser(UserInfo user) {

  String sql = "update userInfo set userName=?,password = ?,secondPassword = ? where userid=?";
  return super.addOrUpdateOrDelete(
    sql,
    new Object[] { user.getUserName(), user.getPassword(),
      user.getSecondPassword(), user.getUserId() },
    UserInfo.class);
 }

相關(guān)文章

  • Java中關(guān)于字符串的編碼方式

    Java中關(guān)于字符串的編碼方式

    這篇文章主要介紹了Java中關(guān)于字符串的編碼方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • java 域?qū)ο蠊蚕頂?shù)據(jù)的實(shí)現(xiàn)

    java 域?qū)ο蠊蚕頂?shù)據(jù)的實(shí)現(xiàn)

    本文主要介紹了java 域?qū)ο蠊蚕頂?shù)據(jù)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • java圖形界面之布局設(shè)計(jì)

    java圖形界面之布局設(shè)計(jì)

    這篇文章主要介紹了java圖形界面之布局設(shè)計(jì)的相關(guān)資料,需要的朋友可以參考下
    2015-06-06
  • java中l(wèi)ong(Long)與int(Integer)之間的轉(zhuǎn)換方式

    java中l(wèi)ong(Long)與int(Integer)之間的轉(zhuǎn)換方式

    這篇文章主要介紹了java中l(wèi)ong(Long)與int(Integer)之間的轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-10-10
  • 在idea里如何調(diào)整maven內(nèi)存

    在idea里如何調(diào)整maven內(nèi)存

    這篇文章主要介紹了在idea里如何調(diào)整maven內(nèi)存問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-09-09
  • 詳解全局事務(wù)注解@GlobalTransactional的識(shí)別

    詳解全局事務(wù)注解@GlobalTransactional的識(shí)別

    這篇文章主要為大家介紹了詳解全局事務(wù)注解@GlobalTransactional的識(shí)別源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-12-12
  • springboot的調(diào)度服務(wù)與異步服務(wù)使用詳解

    springboot的調(diào)度服務(wù)與異步服務(wù)使用詳解

    本文主要介紹了Java的ScheduledExecutorService接口和Spring Boot中如何使用調(diào)度線(xiàn)程池,包括核心參數(shù)、創(chuàng)建方式、自定義線(xiàn)程池、Cron表達(dá)式,以及如何在Spring Boot中配置和使用異步任務(wù),此外,還討論了如何模擬系統(tǒng)繁忙和調(diào)整異步線(xiàn)程池的拒絕策略
    2025-02-02
  • Java雙括弧初始化操作技巧

    Java雙括弧初始化操作技巧

    這篇文章主要介紹了Java雙括弧初始化操作技巧,這種方法不僅提高了代碼的可讀性,而且簡(jiǎn)化了代碼的數(shù)量,需要的朋友可以參考下
    2015-12-12
  • Java實(shí)現(xiàn)單鏈表的操作

    Java實(shí)現(xiàn)單鏈表的操作

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)單鏈表的操作,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Spring Boot與前端配合與Idea配置部署操作過(guò)程

    Spring Boot與前端配合與Idea配置部署操作過(guò)程

    這篇文章主要介紹了Spring Boot與前端配合與Idea配置部署的操作過(guò)程,本文圖文并茂給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2018-02-02

最新評(píng)論

崇信县| 常宁市| 高雄县| 兰西县| 乌拉特前旗| 广饶县| 东丽区| 庆城县| 若尔盖县| 舒城县| 罗江县| 札达县| 亳州市| 岱山县| 肥西县| 恩平市| 绥滨县| 疏勒县| 自治县| 广元市| 西乌| 克东县| 阜城县| 钦州市| 安福县| 湖州市| 奎屯市| 沁源县| 江阴市| 旬邑县| 德州市| 濮阳县| 临高县| 四川省| 高安市| 大余县| 嫩江县| 嵩明县| 高邑县| 澎湖县| 德安县|