本文主要介绍hebernate的原理以及一些简单的增删查改
ORM 就是利用描述对象和关系型数据库之间的映射信息,自动将 Java 应用程序中的对象持久化到关系型数据库的表中。通过操作 Java 对象,就可以完成对数据库表的操作。可以把 ORM 理解为关系型数据和对象之间的一个纽带,开发人员只需要关注纽带一端映射的对象即可
使用传统的 JDBC 开发小型应用系统,并不会有什么麻烦,但是对于大型应用系统的开发,使用 JDBC 就会显得力不从心。
例如对几十、几百张包含几十个字段的表进行插入操作时,编写的 SQL 语句不但很长,而且繁琐,容易出错;在读取数据时,需要编写多条语句从结果集中取出各个字段的信息,工作量非常大。
为了提高数据访问层的编程效率,Gavin King 开发了一个当今最流行的 ORM(即 Object-Relational Mapping 对象关系映射)框架—— Hibernate 框架
通过下列简单的添加操作理解整个运行过程
public class UserTest { // 添加操作 @Test public void testInsert() { // 1.创建Configuration对象并加载hibernate.cfg.xml配置文件 Configuration config = new Configuration().configure(); // 2.获取SessionFactory SessionFactory sessionFactory = config.buildSessionFactory(); // 3.得到一个Session Session session = sessionFactory.openSession(); // 4.开启事务 Transaction transaction = session.beginTransaction(); // 5.执行持久化操作 User user = new User(); user.setName("zhangsan"); user.setAge(21); user.setGender("男"); // 将对象保存到表中 session.save(user); // 6.提交事务 transaction.commit(); // 7.关闭资源 session.close(); sessionFactory.close(); } }session提供持久化的方法
Transaction Transaction 接口主要是用于管理事务,它是 Hibernate 的数据库事务接口,且对底层的事务接口进行了封装 //Transaction 接口的实例对象是通过 Session 对象开启的 Transaction transaction = session.beginTransaction();在 Transaction 接口中,提供了事务管理的常用方法
try{ transaction = session.beginTransaction(); //开启事务 session.save(user); //执行操作 transaction.commit(); //提交事务 }catch(Exception e) { transaction.rollback(); //回滚事务 }finally{ session.close(); //关闭资源 } Query Query 接口是 Hibernate 的查询接口,主要用于执行 Hibernate 的查询操作。 @Test public void testFindAll() { Configuration config = new Configuration().configure(); SessionFactory sessionFactory = config.buildSessionFactory(); // 1.得到一个Session Session session = sessionFactory.openSession(); Transaction transaction = session.beginTransaction(); // 2.编写 HQL,其中的User代表的是类 String hql = "from User"; // 3.创建Query查询对象 Query query = session.createQuery(hql); // 4.使用query.list()方法查询数据,并放入list集合 List<User> list = query.list(); for (User u : list) { System.out.println(u); } transaction.commit(); session.close(); sessionFactory.close(); } Criteria Criteria 接口是 Hibernate 提供的一个面向对象的查询条件接口,通过它完全不需要考虑数据库底层如何实现,以及 SQL 语句如何编写。 常用查询方法 public void testQBC() { Configuration config = new Configuration().configure(); SessionFactory sessionFactory = config.buildSessionFactory(); // 1.得到一个Session Session session = sessionFactory.openSession(); Transaction transaction = session.beginTransaction(); // 2.通过session获得Criteria对象 Criteria criteria = session.createCriteria(User.class); // 3.使用Restrictions的eq方法设定查询条件为name="zhangsan" // 4.向Criteria对象中添加查询条件 criteria.add(Restrictions.eq("name", "zhangsan")); // 5.执行Criterita的list()方法获得结果 List<User> list = criteria.list(); for (User u : list) { System.out.println(u); } transaction.commit(); session.close(); sessionFactory.close(); }执行生成的sql
代码如下(示例):
import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import warnings warnings.filterwarnings('ignore') import ssl ssl._create_default_https_context = ssl._create_unverified_context代码如下(示例):
data = pd.read_csv( 'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv') print(data.head())该处使用的url网络请求的数据。
提示:这里对文章进行总结: 例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
