📄 book.java
字号:
package component;
import java.util.Iterator;
import java.util.List;
import org.hibernate.*;
import org.hibernate.cfg.Configuration;
public class Book {
public String id;
public String bookId;
public String author;
public BookProperty bookProperty; //用于实现组件
public Book() {}
public String getId(){return id;} public void setId(String id){this.id=id;}
public String getBookId(){return bookId;} public void setBookId(String bookId){this.bookId=bookId;}
public String getAuthor(){return author;} public void setAuthor(String author){this.author=author;}
public BookProperty getBookProperty(){return bookProperty;}
public void setBookProperty(BookProperty bookProperty){this.bookProperty=bookProperty;}
public static void saveBook(){
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
Session session = sessionFactory.getCurrentSession();
BookProperty property = new BookProperty(); //声明一个组件对象
property.bookName="武侠小说"; property.price=58; //为组件对象赋值
session.beginTransaction();
for(int i=0;i<100;i++){
Book book = new Book(); //声明一个主体类对象
book.author="www"; book.bookId = String.valueOf(97823+i);
book.setBookProperty(property); //将组件对象赋予到主体类对象中
session.save(book); //如果数量大,可能会出现OutOfMemoryError错误,所以使用下面的方式,防此出错.
if(i%20==0){ //20取的是hibernate.cfg.xml中的batch_size的值.
//每20条数据,存入一次数据库,并释放内存.
session.flush(); //写入数据库
session.clear(); //释放内存
}
}
session.getTransaction().commit();
sessionFactory.close();
}
public static void queryBook(){ //数据库查询
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
Session session = sessionFactory.getCurrentSession();
session.beginTransaction(); //查询时所有的语句必须在beginTransaction()和getTransaction().commit()之间.
/*查询出所有符合条件的数据
Query query = session.createQuery("from Book where bookId like '%2%'"); //执行查询
List<Book> books = query.list();
*/
Query query = session.createQuery("from Book");
query.setFirstResult(20); //设置开始行
query.setMaxResults(10); //设置最大行
List<Book> books = query.list();//查询
for(Book book:books){ System.out.println(book.bookId); }
//Book book = (Book)session.createQuery("from Book").uniqueResult();
//System.out.println(book.bookId);
session.getTransaction().commit();
sessionFactory.close();
}
public static void updateBook(){
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
Session session = sessionFactory.getCurrentSession();
session.beginTransaction();
/*查询修改
//Book book = (Book)session.load(Book.class,"ff80808115568b800115568e00c300c5");
Book book = (Book)session.get(Book.class,"ff80808115568b800115568e00c300c5");
book.setBookId("189"); //必须要使用setBookId方法,不能直接赋值,否则无法更新.
session.flush(); //更新数据,无需使用update.
*/
/*托管修改
Book querybook = (Book)session.get(Book.class,"ff80808115568b800115568df9cd00c1");
Book updatebook = new Book();
updatebook = querybook; //将持久化对象赋给新的对象
updatebook.bookId = "785";
session.update(updatebook);
*/
session.getTransaction().commit();
sessionFactory.close();
}
public static void deleteBook(){
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
Session session = sessionFactory.getCurrentSession();
session.beginTransaction();
//Book book = (Book)session.get(Book.class,"ff80808115568b800115568df9cd00c1");
Book book = new Book(); book.id = "ff80808115568b800115568dfd2900c3";
session.delete(book);
session.getTransaction().commit();
sessionFactory.close();
}
public static void main(String args[]){
//saveBook();
queryBook();
//updateBook();
//deleteBook();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -