欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

spring的jdbctemplate的crud的基類dao

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

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

import java.util.List;

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

 /***
  * 查詢接口
  *
  * @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ù)庫連接對象
  */
 @Resource(name = "jdbcTemplate")
 private JdbcTemplate jt;

 /***
  * 查詢接口
  */

 @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是自動映射實體類的
    resultList = jt.query(sql, new BeanPropertyRowMapper<T>(cl));
  } catch (Exception e) {
   e.printStackTrace();
  }
  return resultList;
 }

 /***
  * 添加,更新,刪除的實現(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ù)制代碼 代碼如下:

/**
 * 用戶操作接口
 * @author xyq
 *
 */
public interface UserInfoDaoInf {

 /***
  * 查詢是否有用戶
  * @param user
  * @return
  */
 public UserInfo findUser(UserInfo user);

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

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

 /***
  * 更新用戶
  * @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 {


 /***
  * 查找用戶信息
  */
 @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;
 }

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

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

 /***
  * 添加用戶
  */
 @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);
 }

 /***
  * 更新用戶
  */
 @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)文章

  • 一文帶你認(rèn)識java中的String類

    一文帶你認(rèn)識java中的String類

    在Java語言中,所有類似“ABC”的字面值,都是String類的實例,String類位于java.lang包下,是Java語言的核心類,提供了字符串的比較、查找、截取、大小寫轉(zhuǎn)換等操作,這篇文章主要給大家介紹了關(guān)于java中String類的相關(guān)資料,需要的朋友可以參考下
    2021-10-10
  • 一文搞懂Java MD5算法的原理及實現(xiàn)

    一文搞懂Java MD5算法的原理及實現(xiàn)

    MD5信息摘要算法,一種被廣泛使用的密碼散列函數(shù),可以產(chǎn)生出一個128位(16字節(jié))的散列值(hash value),用于確保信息傳輸完整一致。本文將詳解MD5算法的原理及實現(xiàn),感興趣的可以了解一下
    2022-06-06
  • 使用SpringBoot自定義starter的完整步驟

    使用SpringBoot自定義starter的完整步驟

    這篇文章主要給大家介紹了關(guān)于使用SpringBoot自定義starter的完整步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • WIN10環(huán)境 Maven的安裝與配置詳細(xì)教程

    WIN10環(huán)境 Maven的安裝與配置詳細(xì)教程

    這篇文章主要介紹了WIN10環(huán)境 Maven的安裝與配置詳細(xì)教程,本文分步驟給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • FreeMarker配置(Configuration)

    FreeMarker配置(Configuration)

    所有與該configuration 對象關(guān)聯(lián)的模版實例都就可以通過獲得to_upper 轉(zhuǎn)換器,company 來獲得字符串,因此你不需要再一次次的往root 中添加這些變量了。如果你往root 添加同名的變量,那么你新添加的變量將會覆蓋之前的共享變量。
    2016-04-04
  • Java迭代器遍歷list的方法及代碼分析

    Java迭代器遍歷list的方法及代碼分析

    在本篇內(nèi)容里系小編給大家分享的是一篇關(guān)于Java迭代器遍歷list的方法總結(jié)內(nèi)容,有需要的朋友們可以參考學(xué)習(xí)下。
    2022-11-11
  • 關(guān)于rocketmq中日志文件路徑的配置指南

    關(guān)于rocketmq中日志文件路徑的配置指南

    rocketmq是java編寫的,也就是可以指定啟動參數(shù),下面這篇文章主要給大家介紹了關(guān)于rocketmq中日志文件路徑的配置指南,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-04-04
  • Java實現(xiàn)定時任務(wù)的示例代碼

    Java實現(xiàn)定時任務(wù)的示例代碼

    這篇文章主要為大家詳細(xì)介紹了Java實現(xiàn)定時任務(wù)的相關(guān)知識,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-11-11
  • Java Set接口及常用實現(xiàn)類總結(jié)

    Java Set接口及常用實現(xiàn)類總結(jié)

    Collection的另一個子接口就是Set,他并沒有我們List常用,并且自身也沒有一些額外的方法,全是繼承自Collection中的,因此我們還是簡單總結(jié)一下,包括他的常用實現(xiàn)類HashSet、LinkedHashSet、TreeSet的總結(jié)
    2023-01-01
  • Java基礎(chǔ)學(xué)習(xí)之集合底層原理

    Java基礎(chǔ)學(xué)習(xí)之集合底層原理

    今天帶大家回顧Java基礎(chǔ)的相關(guān)知識,文中對集合底層原理作了非常詳細(xì)的圖文介紹,對Java初學(xué)者有非常好的幫助,需要的朋友可以參考下
    2021-05-05

最新評論