`

Hibernate和JDBC实现CRUD操作的比较

阅读更多
使用JDBC实现CRUD操作:
查询操作:
public class UserDAO {
  public User findUserById(int id){
    User userInfo = null;	Connection  con = DBConnection.getConnection();
    PreparedStatement pst = null;   String sql = “select * from userInfo where id=? ”;	
    ResultSet rs = null;
    try {
      pst = con.prepareStatement(sql);	pst.setInt(1,id);
      rs = pst.executeQuery();
      if(rs.next()){
        userInfo = new User();	userInfo.setId(rs.getInt("id"));
        userInfo.setPassword(rs.getString("pass"));
        userInfo.setUserName(rs.getString(“user_name"));
      }
    } catch (SQLException e) {e.printStackTrace(); }
    finally{
      try {      rs.close();      pst.close();      con.close();      } catch (Exception e) { }
    } 
    return userInfo;
  }


添加操作:

public void addUser(User user) throws Exception{
Connection con = DBConnection.getConnection();
PreparedStatement pst = null; 
String sql = “insert into  userInfo(user_name,pass) values(?,?)”;
try {
pst = con.prepareStatement(sql);
pst.setString(1, user.getUserName());
pst.setString(2,user.getPassword());
pst.executeUpdate();
}finally{
	。。。
}
}


删除操作:

public void deleteUser(int id)  throws Exception{
Connection con = DBConnection.getConnection();
PreparedStatement pst = null; 
String sql = “delete from  userInfo where id = ?”;
try {
pst = con.prepareStatement(sql);
pst.setInt(1, id);
pst.executeUpdate();
}finally{
	。。。
}
}


更新操作:

public void updateUser(User user) throws Exception {
Connection con = DBConnection.getConnection();
PreparedStatement pst = null; 
String sql = “update  userInfo set name = ? ,password = ? where id = ?”;
try {
pst = con.prepareStatement(sql);
pst.setString(1,user.getName());
pst.setString(2,user.getPassword());
pst.setInt(3, id);
pst.executeUpdate();
} catch (SQLException e) {
	e.printStackTrace();
}finally{
	。。。
}
}

 

使用Hibernate实现CRUD操作:

public class UserDAO {
public User findUserById(int id){
	return session.get(User.class,id);
}
public void addUser(User user){
	session.save(user);
}
public void updateUser(User user){
		session.update(user);
}
public void deleteUser(int id){
		User user = new User();
		user.setId(id);
		session.delete(user);
}
}

 

类型一:

        //得到Configuration
        Configuration configuration=new Configuration().configure();
        //得到一个会话工厂
        SessionFactory sessionFactory=configuration.buildSessionFactory();
        //得到一个Session对象
        Session session=sessionFactory.openSession();
        //开始一个事务
        Transaction transaction=session.beginTransaction();
        /*//添加一个book
        Books book=new Books();
        book.setAuthor("c");
        book.setName("wh");
        session.save (book);*/
        /*//查询book
        Books book=(Books) session.load(Books.class, 2);
        System.out.println(book.getAuthor());*/
        /*//更新book
        Books book=(Books) session.load(Books.class, 2);
        book.setAuthor("chen");
        book.setName("Spring");*/
        /*//删除book
        Books book=(Books) session.load(Books.class, 14);
        session.delete (book);*/
        //提交事务
        transaction.commit();
        //关闭session
        session.close();

 

类型二:

        Configuration configuration=new Configuration().configure();
        SessionFactory sessionFactory=configuration.buildSessionFactory();
        Session session=sessionFactory.openSession();
        Transaction transaction=session.beginTransaction();
        /*//更新
        Query query=session.createQuery("update Books set name='hibernate' where id=:id");
        query.setInteger("id", 1);
        query.executeUpdate();*/
        //查询所有字段
        /*Query query=session.createQuery("from Books");
        List<Books > list=query.list();
        for(Books book:list){
            System.out.println("作者:"+book.getAuthor());       
        }*/
        /*//查询多个字段
        Query query=session.createQuery("select name,author from Books");
        List<Object[] > list2=query.list();
        for(Object[] object:list2){
            String author=(String) object[1];
            System.out.println("作者:"+author);       
        }*/
        //查询一个字段
        /*Query query=session.createQuery("select author from Books");
        List<String > list3=query.list();
        for(String author:list3){
            System.out.println("作者:"+author);   
        }*/
        transaction.commit();
        if(session!=null||!"".equals(session)){
            System.out.println("关闭session。。。。");
        }

 

//类型三:

     criteria 接口 的简单使用

 

                     ts=session.beginTransaction();     

                     Criteria cri=session.createCriteria(Employee.class).

                     setMaxResults(2).addOrder(Order.desc("id") );

                     List<Employee> list=cri.list();

                     for(Employee e: list){

                            System.out.println(e.getAaaid());

                    

                     ts.commit();

 

分享到:
评论

相关推荐

    Hibernate与JDBC对于数据库CRUD操作性能示例

    Hibernate与JDBC对于数据库的性能操作对比事例,配置,更多信息资源

    Hibernate基本增删改CRUD操作

    本教程将深入讲解如何使用Hibernate进行基本的创建(Create)、读取(Read)、更新(Update)和删除(Delete)操作,即CRUD操作。 ### 1. Hibernate环境搭建 首先,我们需要在项目中引入Hibernate的依赖库,通常...

    分别使用Hibernate和JDBC操作数据库

    比较两者,JDBC适合简单的数据库操作,而Hibernate更适合复杂的业务逻辑和大型项目,因为它的ORM特性减少了大量手动SQL编写的工作量,提高了开发效率和代码的可维护性。在实际项目中,开发者通常根据需求和项目规模...

    jdbc的crud代码

    在Java编程中,JDBC(Java Database Connectivity)是用于连接数据库的标准接口,它允许开发者通过编写Java代码来执行SQL语句,实现对数据库的增删改查(CRUD)操作。本文将详细介绍如何使用JDBC进行CRUD操作。 **...

    JDBC CRUD操作的粗略封装DEMO

    在IT行业中,JDBC(Java Database Connectivity)是Java程序与数据库交互的标准接口,它使得开发者能够用Java语言来执行SQL语句,实现数据的增、删、查、改(CRUD)操作。本示例“JDBC CRUD操作的粗略封装DEMO”提供...

    JDBC实现CRUD并用Junit进行单元测试

    本篇文章将深入探讨如何使用JDBC来实现创建(Create)、读取(Retrieve)、更新(Update)和删除(Delete)数据,以及结合JUnit进行单元测试确保代码的正确性。 首先,我们要理解JDBC的基本工作流程: 1. 加载驱动:使用...

    hibernate和jdbc测试

    在IT行业中,数据库操作是应用程序开发的核心部分,而Hibernate和JDBC是两种常见的Java数据库连接技术。本篇文章将深入探讨这两个技术,以及如何进行相关的测试。 首先,JDBC(Java Database Connectivity)是Java...

    SpringMVC+Spring+Hibernate+Oracle 实现图书管理(CRUD)

    Hibernate通过JDBC与Oracle进行通信,执行CRUD(创建、读取、更新、删除)操作。 综上所述,这个项目展示了如何利用SpringMVC、Spring、Hibernate和Oracle这四者协同工作,实现一个完整的图书管理系统。SpringMVC...

    ext3+struts2+hibernate+spring的CRUD+分页

    在CRUD操作中,Hibernate负责数据的保存、更新、查询和删除。 Spring框架则是一个全面的企业级应用开发框架,它提供了依赖注入(DI)、面向切面编程(AOP)、数据访问/集成、Web应用等多种功能。在本例中,Spring...

    传智播客JDBC_完成对数据库的CRUD操作.rar

    在“06_传智播客JDBC_完成对数据库的CRUD操作”中,可能详细讲解了以上概念,并通过实例演示了如何在Java程序中实现这些操作。学习这个教程,开发者能够熟练掌握JDBC的基础用法,进一步提升数据库操作能力。同时,...

    oracle分别使用jdbc和hibernate的例子

    本文将深入探讨如何使用JDBC和Hibernate来操作Oracle数据库,同时结合提供的标签"源码"和"工具",我们将讨论它们的实现细节和优势。 首先,JDBC是Java语言的标准API,它允许Java应用程序与各种类型的数据库进行通信...

    jdbc和hibernate学习内容

    JDBC(Java Database Connectivity)和Hibernate是Java中处理数据库操作的两个重要工具。对于初学者来说,理解和掌握这两个技术对于深入理解Java后端开发至关重要。 JDBC是Java API,它提供了一种标准的方式来连接...

    ibatis实现CRUD操作

    Ibatis通过XML或注解方式定义和配置SQL映射,将Java对象和数据库记录进行映射,实现了数据的CRUD操作。 在实现CRUD操作时,Ibatis有以下核心组件: 1. SQL Map配置文件:这是Ibatis的核心,用于存放SQL语句及其...

    Hibernate 配置以及简单的CRUD操作

    以上就是Hibernate的基本配置和CRUD操作的介绍。通过这些操作,我们可以轻松地在Java应用中处理数据库数据,而无需直接编写SQL语句,极大地提高了开发效率和代码的可维护性。在实际项目中,还需要注意事务管理、性能...

    JDBC通用DAO CRUD(不是Hibernate)

    自己写的一个JDBC通用DAO 有几点需要注意: 1.数据库命明目前只支持没下血杠命名(_) 2.表ID字段名取名有2种方式 (1)ID (2)TableName + ID 例如:user表 则取名为 id 或者 userid 因为没有用xml来映射表结构确定哪一个...

    hibernate + shardingjdbc +springboot 结合做的demo

    - **编写业务代码**:使用Hibernate的Session接口进行数据的CRUD操作,而ShardingJDBC会在背后透明地处理分片逻辑,确保数据正确路由到相应的数据库实例。 - **测试和优化**:运行应用,进行单元测试和集成测试,...

    Spring4-Struts2-Hibernate4 CRUD Demo_3

    【Spring4-Struts2-Hibernate4 CRUD Demo_3】是一个综合性的开发示例,它展示了如何在Java Web应用程序中整合三大主流框架:Spring 4、Struts 2和Hibernate 4来实现CRUD(创建、读取、更新、删除)操作。这个Demo...

    jdbc封装(实现对实体的增删改查[分页]).zip

    jdbc封装(实现对实体的增删改查[分页]),辅助学习Hibernate 包含三个文件夹,分别是: code-access实现 是用access实现的,本意是access方便,就一个文件,方便部署。但access有好多不支持,就写成这样.主要是可参考Dao...

    hibernate 链接access数据的jdbc驱动包

    这个驱动包包含了实现JDBC接口的类和方法,使得Java程序可以识别并连接到Access数据库。 在"hibernate 链接access数据的jdbc驱动包"中,可能包含以下组件: 1. **META-INF**:这是一个元数据目录,通常包含...

    hibernate+junit+mysql-jdbc开发核心jar包三合一

    在Hibernate配置中,开发者需要指定JDBC驱动和连接URL,以便Hibernate能够通过JDBC连接到MySQL数据库。 在实际开发中,这三者结合使用的方式通常是:首先,通过Hibernate配置文件设置数据库连接参数,利用Hibernate...

Global site tag (gtag.js) - Google Analytics