搭建环境
一、导入jar包
1.jdbc的jar包
2.hibernate的jar包:hibernate-release-5.2.6.Finallib equired
二、配置Hibernate。
1.建立hibernate.cfg.xml文件(包所在的文件夹的project里去搜索复制内部脉络)
2.配置(project/etc/hibernate.properties中搜索到使用的数据库配置)
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory > <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password"></property> <property name="hibernate.connection.url">jdbc:mysql://127.0.0.1:3306/mydb?characterEncoding=GBK</property> <property name="show_sql">true</property><!-- 控制台显示sql语句 --> <!-- 表映射加载 --> <mapping resource="maya/model/Fruit.hbm.xml"/> </session-factory> </hibernate-configuration>
三、准备数据库(在数据库中建立表)
四、准备实体(建议使用:引用类型。建议类名属性名与列名一致)
public class Fruit { private String ids; private String name; private Double price;//引用类型。不建议使用值类型double private String source; private Integer numbers;//引用类型。不建议使用值类型int private String image; public String getIds() { return ids; } public void setIds(String ids) { this.ids = ids; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Double getPrice() { return price; } public void setPrice(Double price) { this.price = price; } public String getSource() { return source; } public void setSource(String source) { this.source = source; } public Integer getNumbers() { return numbers; } public void setNumbers(Integer numbers) { this.numbers = numbers; } public String getImage() { return image; } public void setImage(String image) { this.image = image; } }
五、准备映射文件 实体类名.hbm.xml 例:Fruit.hbm.xml
方法:从project文件夹中搜索hbm.xml,按它的脉络更改
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping default-lazy="false" package="maya.model"><!-- 本包名 --> <class name="Fruit" table="Fruit"><!-- java类和数据库表 --> <id name="ids" ><!-- 主键 --> <generator class="assigned"/><!-- 手动赋值,如果是自动生成用native --> </id> <property name="name"/><!-- 其他字段 --> <property name="price"/> <property name="source"/> <property name="numbers" /> <property name="image"/> </class> </hibernate-mapping>
记住!!回到hibernate.cfg.xml下,加上<mapping resouse="映射文件路径"/>映射,本例已加载
六、写代码完成增删改查
public static void main(String[] args) { //读取hibernate.cfg.xml的配置,加载Hibernate的类库 Configuration config = new Configuration().configure(); //根据配置,生成session工厂 SessionFactory factory = config.buildSessionFactory(); //用工厂来生成session Session session = factory.openSession(); //利用session对数据进行CRUD操作,测试session是否建立连接 //System.out.println(session.isConnected()); /* * 说明:这里的session不是web中的session,web中的session代表的是客户端与web服务器之间的会话,这里的session指的是程序与数据库之前的会话,它是由hibernate进 行管理的 */ //四、修改 //1.查 Fruit data = session.get(Fruit.class, "s002"); if(data!=null) { session.beginTransaction(); //2.改 data.setNumbers(120); data.setPrice(50.0); //3.提交 session.update(data); session.getTransaction().commit(); } //三、删除 // //1.查 // Fruit data = session.get(Fruit.class, "s002"); // //2.删 // if(data!=null) { // session.beginTransaction(); // session.delete(data); // session.getTransaction().commit(); // } //二、查询 //查询单条 // Fruit data = session.load(Fruit.class, "k001"); // System.out.println(data.getName()+data.getSource()); //查询所有的 // List<Fruit> list = session.createQuery("from Fruit").getResultList(); // for(Fruit data:list) { // System.out.println(data.getName()+data.getSource()); // } //一、添加操作 // //1.造对象 // Fruit data = new Fruit(); // // // data.setIds("s002"); // data.setName("猕猴桃"); // // //2.用session.save()保存到数据库 // session.beginTransaction(); // session.save(data); // session.getTransaction().commit(); // // //关闭session // session.close(); }