一、iHiberBaseDAO类

package basic;
import java.util.*; /**
* 基于hibernate技术实现的BaseDAO基类
* @author ZHANGYANTAO
* @since 2014-12-19
* @version 2017-4-20
*/
public interface iHiberBaseDAO {
/**
* 实现单个的新瞬时实体类对象的持久化操作(添加对象到数据库中)
* 该hibernate添加方法仅用于对单个的瞬时对象进行持久化操作
* @param Object 任意的Hibernate的表映射实体类对象
* @return Object 主键id, null则表示添加失败
*/
public Object insert(Object obj); /**
* 实现批量的新瞬时实体类对象的持久化操作(添加对象到数据库中)
* 该hibernate添加方法仅用于对单个的瞬时对象进行持久化操作
* @param List<Object> 任意的Hibernate的表映射实体类对象列表
* @return boolean true成功,false失败
*/
public boolean insert(List<Object> list); /**
* 执行表数据删除操作
* 该hibernate删除方法仅用于对单个的瞬时对象使用其id属性进行持久化操作
* @param Class 给出对应表的Pojo类类型,如User.class
* @param Serializable 对应表中主键字段的Pojo类的成员属性的值,如用户编号id
* @return boolean true 成功 false 失败
*/
public boolean delete(Class cls, java.io.Serializable id); /**
* 执行表数据删除操作
* 该hibernate删除方法仅用于对单个的瞬时对象进行持久化删除操作
* @param Object Hibernate的表映射对象 当前为要删除表的实体类对象
* @return boolean true 成功 false 失败
*/
public boolean delete(Object obj) ; /**
* 修改表记录,使用对应表的实体类对象实现
* 该hibernate更新方法仅用于对单个的瞬时对象进行持久化操作
* @param Object Hibernate的表映射对象
* @return boolean true 成功 false 失败
*/
public boolean update(Object obj) ; /**
* 使用无参数的hql实现查询的,他将返回基于hql中查询对象的List数组对象
* @param String 符合hql结构的无参数查询语句
* @return List 失败返回null
*/
public List select(String hql) ; /**
* 使用无参数的hql实现查询的,他将返回基于hql中查询对象的List数组对象,实现top功能
* @param String 符合hql结构的无参数查询语句
* @param String 取List值的开始索引
* @param String 取List值得结束索引
* @return List 失败返回null
*/
public List select(String hql,int startIndex, int length) ; /**
* 使用带有参数的hql实现查询的,他将返回基于hql中查询对象的List数组对象
* @param String 符合hql结构的有参数查询语句
* @param Object[] 参数值数组
* @return List 失败返回null
*/
public List select(String hql,Object[] para) ; /**
* 使用无参数的hql实现查询的,他将返回基于hql中查询对象的List数组对象,实现top功能
* @param String 符合hql结构的无参数查询语句
* @param String 取List值的开始索引
* @param String 取List值得结束索引
* @return List 失败返回null
*/
public List select(String hql,Object[] para,
int startIndex, int length) ; /**
* 获取带聚合函数hql语句的查询结果
* @param hql 带聚合函数的hql结构的无参数查询语句
* @return List 失败返回null
*/
public int selectValue(String hql); /**
* 使用带有参数的hql,获取聚合函数查询的结果
* @param hql 带聚合函数的hql结构的有参数查询语句
* @param para Object[]类型的参数值数组
* @return List 失败返回null
*/
public int selectValue(String hql,Object[] para); /**
* 分页查询返回总页数
* 可使用的hql语句为(1)"from DForum"
* (2)from DForum order by forumid desc"
* (3)from DForum where DUser.userid = 'zhangjs' order by forumid desc"
* @param String hql 分页查询的hql字符串
* @param String pageSize 每页的结果数量
* @return int 查询得到的总页数结果
*/
public int selectPages(String hql,int pageSize); /**
* 分页查询返回总页数
* 可使用的hql语句为(1)"from DForum"
* (2)from DForum order by forumid desc"
* (3)from DForum where DUser.userid = 'zhangjs' order by forumid desc"
* @param String hql 分页查询的hql字符串
* @param Object[] para 对应hql中参数的值数组
* @param String pageSize 每页的结果数量
* @return int 查询得到的总页数结果
*/
public int selectPages(String hql,Object[] para, int pageSize); /**
* 分页查询
* 可使用的hql语句为(1)"from DForum"
* (2)from DForum order by forumid desc"
* (3)from DForum where DUser.userid = 'zhangjs' order by forumid desc"
* @param String hql 分页查询的无参数hql字符串
* @param int startPage 查询开始的页数
* @param int pageSize 查询要求的每页的记录数
* @return List 查询返回的记录队列
*/
public List selectByPage(String hql,int startPage, int pageSize); /**
* 分页查询
* 可使用的hql语句为(1)"from DForum"
* (2)from DForum order by forumid desc"
* (3)from DForum where DUser.userid = 'zhangjs' order by forumid desc"
* @param String hql 分页查询的无参数hql字符串
* @param Object[] para 对应分页查询hql中参数的值数组
* @param int startPage 查询开始的页数
* @param int pageSize 查询要求的每页的记录数
* @return List 查询返回的记录队列
*/
public List selectByPage(String hql,Object[] para, int startPage, int pageSize); /**
* 根据cls对应表的主键属性id来查询并返回cls类型的对象
* @param Class cls 要查询的Hibernate的表映射类对象名,如User对象的类型为User.class
* @param java.io.Serializable id 查询所用的对应主键的值
* @return Object 返回的cls类型的对象
*/
public Object findById(Class cls, java.io.Serializable id); /**
* 利用无参数的sql实现数据表对象的更新操作
* @param String sql 无参数的update的sql语句
* @return boolean true 成功 false 失败
*/
public boolean update(String sql); /**
* 利用带参数的sql实现数据表对象的更新操作
* @param String sql 带参数的update的sql语句
* @param Object[] para 对应sql语句中的参数值
* @return boolean true 成功 false 失败
*/
public boolean update(String hql,Object[] para); /**
* 利用sql实现数据表的批量删除
* @param String sql 无参数的delete的sql语句
* @return boolean true 成功 false 失败
*/
public boolean delete(String sql); /**
* 利用带参数的sql实现数据表的批量删除
* @param String sql 带参数的delete的sql语句
* @param Object[] para 对应sql语句中的参数值
* @return boolean true 成功 false 失败
*/
public boolean delete(String sql,Object[] para); /**
* 调用数据库存储过程(无参数)
* 参数:String procName 数据库存储过程名
* 输出参数:ResultSet rs 返回存储过程中查询的结果
* 返回值:0 更新语句执行失败 >0 更新语句成功
*/
public Object executeProduce(String procName); /**
* 调用数据库存储过程(带参数)
* 参数:String procName 数据库存储过程名
* 输出参数:ResultSet rs 返回存储过程中查询的结果
* 返回值:0 更新语句执行失败 >0 更新语句成功
*/
public Object executeProduce(String procName,Object[] para); /**
* 执行更新操作的批处理语句,这里将采用多个结果的事务方式,一起提交,一起回滚
*
* @param Object Hibernate的表映射对象 当前为要删除表的实体类对象
* @return boolean true 成功 false 失败
*/
public boolean executeBatch(Object[] obj, int[] model); public boolean executeBatch(List<Object> list,List<Integer> models);
}

二、iHiberDAOImpl类

package basic;

import java.io.Serializable;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.List; import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction; public class iHiberDAOImpl implements iHiberBaseDAO { public static final int INSERT = 1; //代表添加操作
public static final int UPDATE = 2; //代表修改操作
public static final int DELETE = 3; //代表删除操作 @Override
public Object insert(Object obj) { //obj必须是符合hibernate的pojo对象
Session session = HibernateSessionFactory.getSession();//每次执行前需引入session对象
Transaction tx = null;
try{
tx = session.beginTransaction(); //开启一个事务
Serializable key = session.save(obj);
tx.commit(); //持久化操作
session.close();
return key;
}catch(Exception e){
e.printStackTrace();
if(tx!=null) tx.rollback(); //撤销
if(session!=null) session.close();
}
return null; } @Override
public boolean insert(List<Object> list) {
Session session = HibernateSessionFactory.getSession();
Transaction tx = null;
try{
tx = session.beginTransaction(); //开启一个事务
for(Object obj : list){
session.save(obj);
}
tx.commit(); //持久化操作
session.close();
return true;
}catch(Exception e){
e.printStackTrace();
if(tx!=null) tx.rollback(); //撤销
if(session!=null) session.close();
}
return false; } @Override
public boolean delete(Class cls, Serializable id) {
Session session = HibernateSessionFactory.getSession();
Transaction tx = null;
try{
tx = session.beginTransaction(); //开启一个事务
//先用cls和id查出要删除的对象
session.delete(session.get(cls, id));
tx.commit(); //持久化操作
session.close();
return true;
}catch(Exception e){
e.printStackTrace();
if(tx!=null) tx.rollback(); //撤销
if(session!=null) session.close();
}
return false; } @Override
public boolean delete(Object obj) {
Session session = HibernateSessionFactory.getSession();
Transaction tx = null;
try{
tx = session.beginTransaction(); //开启一个事务
session.delete(obj);
tx.commit(); //持久化操作
session.close();
return true;
}catch(Exception e){
e.printStackTrace();
if(tx!=null) tx.rollback(); //撤销
if(session!=null) session.close();
}
return false; } @Override
public boolean update(Object obj) {
Session session = HibernateSessionFactory.getSession();
Transaction tx = null;
try{
tx = session.beginTransaction(); //开启一个事务
session.update(obj);
tx.commit(); //持久化操作
session.close();
return true;
}catch(Exception e){
e.printStackTrace();
if(tx!=null) tx.rollback(); //撤销
if(session!=null) session.close();
}
return false; } @Override
public List select(String hql) {
Session session = HibernateSessionFactory.getSession();
try{
Query query = session.createQuery(hql);
List list = query.list();
session.close();
return list;
}catch(Exception e){
e.printStackTrace();
if(session!=null) session.close();
}
return null;
} @Override
public List select(String hql, int startIndex, int length) {
Session session = HibernateSessionFactory.getSession();
try {
Query query =session.createQuery(hql);
query.setFirstResult(startIndex); //设置起始记录位置
query.setMaxResults(length); //设置返回记录数
List list = query.list();
session.close();
return list;
} catch (Exception e) {
e.printStackTrace();
if(session!=null) session.close();
}
return null; } @Override
public List select(String hql, Object[] para) {
Session session = HibernateSessionFactory.getSession();
try {
Query query =session.createQuery(hql);
//根据para设置参数
for(int i=0;i<para.length;i++){
query.setParameter(i, para[i]);
}
List list = query.list();
session.close();
return list;
} catch (Exception e) {
e.printStackTrace();
if(session!=null) session.close();
}
return null; } @Override
public List select(String hql, Object[] para, int startIndex, int length) {
Session session = HibernateSessionFactory.getSession();
try {
Query query =session.createQuery(hql);
//根据para设置参数
for(int i=0;i<para.length;i++){
query.setParameter(i, para[i]);
}
query.setFirstResult(startIndex); //设置起始记录位置
query.setMaxResults(length); //设置返回记录数
List list = query.list();
session.close();
return list;
} catch (Exception e) {
e.printStackTrace();
if(session!=null) session.close();
}
return null; } @Override
public int selectValue(String hql) {
Session session = HibernateSessionFactory.getSession();
try {
Query query = session.createQuery(hql);
Object obj = query.uniqueResult();
session.close();
if(obj instanceof Long)
return ((Long)obj).intValue();
else if(obj instanceof Integer)
return ((Integer)obj).intValue();
} catch (Exception e) {
e.printStackTrace();
if(session!=null) session.close();
}
return 0; } @Override
public int selectValue(String hql, Object[] para) {
Session session = HibernateSessionFactory.getSession();
try {
Query query = session.createQuery(hql);
//根据para设置参数
for(int i=0;i<para.length;i++){
query.setParameter(i, para[i]);
}
Object obj = query.uniqueResult();
session.close();
if(obj instanceof Long)
return ((Long)obj).intValue();
else if(obj instanceof Integer)
return ((Integer)obj).intValue();
} catch (Exception e) {
e.printStackTrace();
if(session!=null) session.close();
}
return 0; } @Override
public int selectPages(String hql, int pageSize) {
Session session = HibernateSessionFactory.getSession();
long pages_all = 0;
try {
Query query = session.createQuery(hql);
List list = query.list();
//获得查询记录总数
long records = list.size();
//计算分页数
pages_all =records%pageSize==0?records/pageSize:records/pageSize + 1; //获得总页数
session.close();
return (int)pages_all;
}catch(Exception e){
e.printStackTrace();
if(session!=null) session.close();
}
return 0; } @Override
public int selectPages(String hql, Object[] para, int pageSize) {
Session session = HibernateSessionFactory.getSession();
//编程思想:先获得查询记录数,再使用算法来计算出分页的页数
long pages_all = 0;
try {
Query query = session.createQuery(hql);
//根据para设置参数
for(int i=0;i<para.length;i++){
query.setParameter(i, para[i]);
}
List list = query.list();
//获得查询记录总数
long records = list.size();
//计算分页数
pages_all =
records%pageSize==0?records/pageSize:records/pageSize + 1; //获得总页数
session.close();
return (int)pages_all;
}catch(Exception e){
e.printStackTrace();
if(session!=null) session.close();
}
return 0; } @Override
public List selectByPage(String hql, int startPage, int pageSize) {
Session session = HibernateSessionFactory.getSession();
List pList = null;
int currentPage;
try {
Query query = session.createQuery(hql);
//先求出按照pageSize得到的分页的页数
List list = query.list();
//获得查询记录总数
long records = list.size();
//获得总页数
int pages_all =(int)(records%pageSize==0?records/pageSize:records/pageSize + 1); //获得总页数 //设置类成员当前页面的操作页码
if(startPage<=1){
currentPage = 1;
}else if(startPage >=pages_all){
currentPage = pages_all;
}else {
currentPage = startPage;
}
Query query2 = session.createQuery(hql);
query2.setFirstResult((currentPage -1)* pageSize);//从第几条记录开始查询 query2.setMaxResults(pageSize);//每页显示多少条记录
pList = query2.list();
session.close();
} catch (Exception e) {
e.printStackTrace();
if(session!=null) session.close();
}
return pList; } @Override
public List selectByPage(String hql, Object[] para, int startPage, int pageSize) {
Session session = HibernateSessionFactory.getSession();
List pList = null;
int currentPage;
try {
Query query = session.createQuery(hql);
//根据para设置参数
for(int i=0;i<para.length;i++){
query.setParameter(i, para[i]);
}
List list = query.list();
//获得查询记录总数
long records = list.size();
//获得总页数
int pages_all =
(int)(records%pageSize==0?records/pageSize:records/pageSize + 1); //获得总页数 //设置类成员当前页面的操作页码
if(startPage<=1){
currentPage = 1;
}else if(startPage >=pages_all){
currentPage = pages_all;
}else {
currentPage = startPage;
}
Query query2 = session.createQuery(hql);
//根据para设置参数
for(int i=0;i<para.length;i++){
query2.setParameter(i, para[i]);
}
query2.setFirstResult((currentPage -1)* pageSize);//从第几条记录开始查询 query2.setMaxResults(pageSize);//每页显示多少条记录
pList = query2.list();
session.close();
} catch (Exception e) {
e.printStackTrace();
if(session!=null) session.close();
}
return pList; } @Override
public Object findById(Class cls, Serializable id) {
Session session = HibernateSessionFactory.getSession();
try {
Object obj = session.get(cls, id);
session.close();
return obj;
} catch (Exception e) {
e.printStackTrace();
if(session!=null) session.close();
}
return null; } @Override
public boolean update(String sql) {
Session session = HibernateSessionFactory.getSession();
Transaction tx = null;
try{
tx = session.beginTransaction(); //开启一个事务
//将会话Session对象转换成jdbc的Connection
Connection con = session.connection();
PreparedStatement ptmt = con.prepareStatement(sql);
int row = ptmt.executeUpdate();
tx.commit(); //持久化操作
session.close();
if(row > 0)
return true;
else
return false;
}catch(Exception e){
e.printStackTrace();
if(tx!=null) tx.rollback(); //撤销
if(session!=null) session.close();
}
return false; } @Override
public boolean update(String sql, Object[] para) {
Session session = HibernateSessionFactory.getSession();
Transaction tx = null;
try{
tx = session.beginTransaction(); //开启一个事务
//将会话Session对象转换成jdbc的Connection
Connection con = session.connection();
PreparedStatement ptmt = con.prepareStatement(sql);
for(int i=0; i<para.length; i++){
ptmt.setObject(i+1, para[i]);
}
int row = ptmt.executeUpdate();
tx.commit(); //持久化操作
session.close();
if(row > 0)
return true;
else
return false;
}catch(Exception e){
e.printStackTrace();
if(tx!=null) tx.rollback(); //撤销
if(session!=null) session.close();
}
return false; } @Override
public boolean delete(String sql) {
Session session = HibernateSessionFactory.getSession();
Transaction tx = null;
try{
tx = session.beginTransaction(); //开启一个事务
//将会话Session对象转换成jdbc的Connection
Connection con = session.connection();
PreparedStatement ptmt = con.prepareStatement(sql);
int row = ptmt.executeUpdate();
tx.commit(); //持久化操作
session.close();
if(row > 0)
return true;
else
return false;
}catch(Exception e){
e.printStackTrace();
if(tx!=null) tx.rollback(); //撤销
if(session!=null) session.close();
}
return false; } @Override
public boolean delete(String sql, Object[] para) {
Session session = HibernateSessionFactory.getSession();
Transaction tx = null;
try{
tx = session.beginTransaction(); //开启一个事务
//将会话Session对象转换成jdbc的Connection
Connection con = session.connection();
PreparedStatement ptmt = con.prepareStatement(sql);
for(int i=0; i<para.length; i++){
ptmt.setObject(i+1, para[i]);
}
int row = ptmt.executeUpdate();
tx.commit(); //持久化操作
session.close();
if(row > 0)
return true;
else
return false;
}catch(Exception e){
e.printStackTrace();
if(tx!=null) tx.rollback(); //撤销
if(session!=null) session.close();
} return false; } @Override
public Object executeProduce(String procName) {
Session session = HibernateSessionFactory.getSession();
Transaction tx = null;
try {
tx = session.beginTransaction();
Connection conn=session.connection();
CallableStatement ctmt=conn.prepareCall("{? = call procName}");
ctmt.registerOutParameter(1,java.sql.Types.INTEGER);
boolean type = ctmt.execute();
tx.commit();
if(type){ //为true表明存储过程是一个select语句
ResultSet rs = ctmt.getResultSet();
//globesession.close();
return rs;
}else{ //不是select,则获取返回值
int isSuccess = ctmt.getInt(1); //获得返回值。
session.close();
return new Integer(isSuccess);
}
} catch (Exception e) {
e.printStackTrace();
if (tx != null) tx.rollback(); //错误时,回滚操作
if(session!=null) session.close();
}
return null;
} @Override
public Object executeProduce(String procName, Object[] para) {
Session session = HibernateSessionFactory.getSession();
Transaction tx = null;
try {
tx = session.beginTransaction();
Connection conn=session.connection();
CallableStatement ctmt=conn.prepareCall("{? = call procName}");
ctmt.registerOutParameter(1,java.sql.Types.INTEGER);
for(int i=0;i<para.length;i++){
ctmt.setObject(i+2, para[i]);
}
boolean type = ctmt.execute();
tx.commit();
if(type){ //为true表明存储过程是一个select语句
ResultSet rs = ctmt.getResultSet();
//globesession.close();
return rs;
}else{ //不是select,则获取返回值
int isSuccess = ctmt.getInt(1); //获得返回值。
session.close();
return new Integer(isSuccess);
}
} catch (Exception e) {
e.printStackTrace();
if (tx != null) tx.rollback(); //错误时,回滚操作
if(session!=null) session.close();
}
return null; } @Override
public boolean executeBatch(Object[] obj, int[] model) {
Session session = HibernateSessionFactory.getSession();
Transaction tx = null;
tx = session.beginTransaction();
try {
for(int i=0; i<obj.length; i++){
if(model[i]==INSERT)
session.save(obj[i]);
else if(model[i]==UPDATE)
session.update(obj[i]);
else if(model[i]==DELETE)
session.delete(obj[i]);
}
tx.commit();
session.close();
return true;
}catch(Exception e){
e.printStackTrace();
if (tx != null) tx.rollback(); //错误时,回滚操作
if (session!=null) session.close();
}
return false; } @Override
public boolean executeBatch(List<Object> list, List<Integer> models) {
Session session = HibernateSessionFactory.getSession();
Transaction tx = null;
try {
tx = session.beginTransaction();
for(int i=0; i<list.size(); i++){
Object obj = list.get(i);
Integer model = (Integer)models.get(i);
if(model.intValue()==INSERT){
session.save(obj);
}else if(model.intValue()==UPDATE){
session.update(obj);
}else if(model.intValue()==DELETE){
session.delete(obj);
}
}
tx.commit();
session.close();
return true;
}catch(Exception e){
e.printStackTrace();
if (tx != null) tx.rollback(); //错误时,回滚操作
if (session!=null) session.close();
}
return false;
} }

附加给大家一个junit测试方法书写

package Test;

import static org.junit.Assert.*;

import java.util.List;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import basic.*;
import model.TForumTitle;
import model.Tuser;
public class TestHiberBaseDAOImpl {
iHiberDAOImpl bdao=null; @Before
public void init(){
bdao=new iHiberDAOImpl();
}
@After
public void tearDown() throws Exception {
} @Test
public void testInsertObject() {
Tuser user=new Tuser();
user.setUserid("zhangsanfeng");
user.setNickname("太极宗师");
user.setPwd("123456");
user.setAgend("男");
user.setUsertype(2);
System.out.println(bdao.insert(user));
} @Test
public void testInsertListOfObject() {
fail("Not yet implemented");
} @Test
public void testDeleteClassSerializable() {
bdao.delete(Tuser.class,"zhangsanfeng"); } @Test
public void testDeleteObject() {
fail("Not yet implemented");
} @Test
public void testUpdateObject() {
Tuser user=(Tuser)bdao.findById(Tuser.class, "zhangsanfeng");
user.setNickname("太极宗师太极拳");
System.out.println(bdao.update(user));
} @Test
public void testSelectString() {
String hql="from Tuser where usertype =2";
List<Tuser> list =bdao.select(hql);
for (Tuser user : list) {
System.out.println(user.getNickname()+" "+user.getRealname());
}
} @Test
public void testSelectStringIntInt() {
fail("Not yet implemented");
} @Test
public void testSelectStringObjectArray() {
fail("Not yet implemented");
} @Test
public void testSelectStringObjectArrayIntInt() {
fail("Not yet implemented");
} @Test
public void testSelectValueString() {
//查询普通用户的数量
String hql="select count(*) from Tuser where usertype =1";
System.out.println(bdao.selectValue(hql));
} @Test
public void testSelectValueStringObjectArray() {
//查询博主用户数量
String hql="select count(*) from Tuser where usertype=?";
Object[] para={2};
System.out.println(bdao.selectValue(hql,para));
} @Test
public void testSelectPagesStringInt() {
fail("Not yet implemented");
} @Test
public void testSelectPagesStringObjectArrayInt() {
fail("Not yet implemented");
} @Test
public void testSelectByPageStringIntInt() {
//按照分页查询
String hql= "from TForumTitle where userid='zhangtao' order by titleid desc";
List<TForumTitle> list =bdao.select(hql,2,5);
for (TForumTitle obj : list) {
System.out.println(obj.getTopic());
}
} @Test
public void testSelectByPageStringObjectArrayIntInt() {
fail("Not yet implemented");
} @Test
public void testFindById() {
fail("Not yet implemented");
} @Test
public void testUpdateString() {
String sql ="update T_User set nickname =' 费柏设' where userid='zhangsanfeng'";
System.out.println(bdao.update(sql));
} @Test
public void testUpdateStringObjectArray() {
fail("Not yet implemented");
} @Test
public void testDeleteString() {
fail("Not yet implemented");
} @Test
public void testDeleteStringObjectArray() {
fail("Not yet implemented");
} @Test
public void testExecuteProduceString() {
fail("Not yet implemented");
} @Test
public void testExecuteProduceStringObjectArray() {
fail("Not yet implemented");
} @Test
public void testExecuteBatchObjectArrayIntArray() {
//删除对象
TForumTitle forum =(TForumTitle)bdao.findById(TForumTitle.class, 30);
//修改对应Tuser的文章数
Tuser user =(Tuser)bdao.findById(Tuser.class, "zhangtao");
user.setArticlecounter(user.getArticlecounter()-1);
Object[] objs={forum,user};
int[] models={bdao.DELETE,bdao.UPDATE};
//第一个对象删除,第二个对象修改
System.out.println(bdao.executeBatch(objs,models)); } @Test
public void testExecuteBatchListOfObjectListOfInteger() {
fail("Not yet implemented");
} }

我对不定期给大家提供java类的编写代码,及方式,敬请期待

SSH框架里的iHiberBaseDAO类与iHiberDAOImpl写法的更多相关文章

  1. ssh框架里拦截器的权限验证基本思路【转】

    相关表 序号 表性质 表名 字段 字段 字段 字段 字段 1 基表 用户表 id 帐号 密码     2 基表 角色表 id 角色名       3 基表 权限表 id 权限名 请求路径     4 ...

  2. ssh框架中,工具类调用service层方法(参考https://www.cnblogs.com/l412382979/p/8526945.html)

    代码如下: package common.dataService; import javax.annotation.PostConstruct; import org.springframework. ...

  3. SSH框架的简化

    ---恢复内容开始--- 一.简易化的SSH框架,如图: SSH框架的搭建,我就不多说了. 二.简易的ssh框架的步骤: 1.重新编写applicationContext.xmlwen文件 <一 ...

  4. Eclipse搭建SSH框架(Struts2+Spring+Hibernate)

    见识少的我经过一天多的研究才知道,在MyEclipse中搭好的框架的配置文件和jar包是通用的.接下来——亮剑! 工具:Eclipse+Tomcat+Mysql 一.先在Eclipse中配置好Tomc ...

  5. J2EE进阶(七)利用SSH框架根据数据表建立model类

    J2EE进阶(七)利用SSH框架根据数据表建立model类 前言 在利用SSH框架进行项目开发时,若将数据库已经建好,并且数据表之间的依赖关系已经确定,可以利用Hibernate的反转功能进行mode ...

  6. SSH框架整合

    SSH框架整合 一.原理图 action:(struts2) 1.获取表单的数据 2.表单的验证,例如非空验证,email验证等 3.调用service,并把数据传递给service Service: ...

  7. 对于SSH框架的选择

    选择框架:SSH 对于Web开发来说,SSH框架可以提高开发效率,还可以方便需求的变更以及对后期维护方面更容易操作.SSH也是目前稍微流行的Web开发框架. 选择框架描述: 首先说明一下SSH并不是一 ...

  8. struts2+spring+hibernate(SSH)框架的搭建和总结

    SSH框架:struts2+spring+hibernate,是目前较流行的一种Web应用程序开源集成框架,用于构建灵活.易于扩展的多层Web应用程序. struts2+spring+hibernat ...

  9. SSH框架简化

    通过对ssh框架有了基础性的学习,本文主要是使用注解的方式来简化ssh框架的代码编写. 注意事项: 1.运行环境:Windows 8-64位,Eclipse(开发工具),jdk1.8.0_91,Tom ...

随机推荐

  1. CSS中margin属性

    css中margin块级元素的垂直相邻外边距会合并,比如 方框的上下外边距并不是2px,而是合并为1px了. 设置float属性就可以避免这种同级元素边距合并

  2. 同步FIFO学习

    在网上找的一个经典同步FIFO例子. 一.前言 FIFO (First-In-First-Out) 是一种先进先出的数据交互方式,在数字ASIC设计中常常被使用.FIFO按工作时钟域的不同又可以分为: ...

  3. 3dsmax2019卸载/安装失败/如何彻底卸载清除干净3dsmax2019注册表和文件的方法

    3dsmax2019提示安装未完成,某些产品无法安装该怎样解决呢?一些朋友在win7或者win10系统下安装3dsmax2019失败提示3dsmax2019安装未完成,某些产品无法安装,也有时候想重新 ...

  4. Python练习 | Web本质Socket

    #--------------------------------客户端-------------------------------------- # 导入socket库 import socket ...

  5. 关于echart没有数据显示暂无数据

    对于echart当没有数据的时候怎么显示, 首先,如果你的series的值为空值的话,曲线将是一片空白,什么都不会有,所以在这里就要进行一个判断,如果没有值的话,人为的添加一个键 if(Object. ...

  6. Imgproc.findContours函数

    OpenCV里支持很多边缘提取的办法,可是如何在一幅图像里得到轮廓区域的参数呢,这就需要用到findContours函数,这个函数在OpenCV4Android的原型为: void org.openc ...

  7. Lvmetad is not active yet错误处理

    Lvmetad is not active yet错误处理 问题现象 今天早上把之前的服务器关机换了一个位置,之后启动后出现错误信息: lvmetad is not active yet; using ...

  8. MySql的索引操作

    索引是一种特殊的数据库结构,可以用来快速查询数据库表中的特定记录.索引是提高数据库性能的重要方式.MySQL中,所有的数据类型都可以被索引.MySQL的索引包括普通索引.唯一性索引.全文索引.单列索引 ...

  9. Winform取消用户按下键盘的事件

    1. 有时候针对某个控件,想取消它的所有键盘按下事件, 只需要为这个控件绑定keyDown事件即可,然后处理的代码如下: private void txtDeviceName_KeyDown(obje ...

  10. js事件绑定简单写法

    $E.on = function (o, e, f) { return o.addEventListener ? o.addEventListener(e, f, false) : o.attachE ...