hibernate框架的学习(一)
hibernate的入门
1.什么是框架
框架就是一个半成品,已经完成了部分的功能,我们使用的时候只须调用它里面的方法或者api
2.java ee最早期的三层架构
web层(jsp servlet)业务逻辑层(ejb、javabean) 持久层(jdbc) ,servlet+jsp+javabean+jdbc可以完成市面上所有的应用 。但是在企业中不会使用这套架构(过于底层)
企业中一般使用ssh框架 或者是ssm框架
3.hibernate的入门
(1)什么是hibernate
hibernate是一个持久层的的orm(object relationam mapping对象关系映射)框架。
(2)怎么使用
有三个文件夹 documentation(开发文档) lib(required必须依赖包 optional可选的jar包),project 给我们提供的测试的项目
customer类,里面提供了get和set方法。alt+shift+s 最后敲一个r。全选,生成
public class customer { private long cust_id; private string cust_name; private string cust_source; private string cust_industry; private string cust_level; private string cust_phone; private string cust_mobile; public long getcust_id() { return cust_id; } public void setcust_id(long cust_id) { this.cust_id = cust_id; } public string getcust_name() { return cust_name; } public void setcust_name(string cust_name) { this.cust_name = cust_name; } public string getcust_source() { return cust_source; } public void setcust_source(string cust_source) { this.cust_source = cust_source; } public string getcust_industry() { return cust_industry; } public void setcust_industry(string cust_industry) { this.cust_industry = cust_industry; } public string getcust_level() { return cust_level; } public void setcust_level(string cust_level) { this.cust_level = cust_level; } public string getcust_phone() { return cust_phone; } public void setcust_phone(string cust_phone) { this.cust_phone = cust_phone; } public string getcust_mobile() { return cust_mobile; } public void setcust_mobile(string cust_mobile) { this.cust_mobile = cust_mobile; } }
customer.hbm.xml(创建mapping映射关系在这个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> <!-- 建立类与表的映射关系 --> <!--当时这里后面少了个引号,直接导致后面的id变成蓝色 --> <class name="com.itheima.domain.customer" table="cst_customer"> <id name="cust_id" column="cust_id"> <!-- <generator class="native"/> --> <generator class="native"/> </id> <!-- 与普通字段建立对应关系 --> <property name="cust_name" column="cust_name"/> <property name="cust_source" column="cust_source"/> <property name="cust_industry" column="cust_industry"/> <property name="cust_level" column="cust_level"/> <property name="cust_phone" column="cust_phone"/> <property name="cust_mobile" column="cust_mobile"/> </class> </hibernate-mapping>
hibernate.cfg.xml(这是他的核心的配置)
<?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.connection.driver_class">com.mysql.jdbc.driver</property> <property name="hibernate.connection.url">jdbc:mysql:///hibernate_day01</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">000000</property> <!-- 他的方言 --> <property name="hibernate.dialect">org.hibernate.dialect.mysqldialect</property> <property name="hibernate.show_sql">true</property> <property name="hibernate.format_sql">true</property> <!--少了一个mappingresource --> <mapping resource="com/itheima/domain/customer.hbm.xml"/> </session-factory> </hibernate-configuration>
hibernatedemo01(测试类,用的junit4)
public class hibernatedemo1 { @test public void demo01(){ configuration configuration=new configuration().configure(); //创建sessionfactory对象 sessionfactory sessionfactory = configuration.buildsessionfactory(); //开启事务 session session = sessionfactory.opensession(); //手动开启事务 transaction transaction = session.begintransaction(); //写sql语句 customer customer=new customer(); customer.setcust_name("张三"); session.save(customer); //提交事务 transaction.commit(); //关闭资源 session.close(); } }
还需要创建一个数据库,里面由张表
成功图:
控制台输出的sql语句:
中间遇到的问题
一开始xml配置文件不能提示信息:
解决方案:在window中搜素xml catalog ,完成以下三个参数的配置。注意中间的key type选uri
新开一个工作空间workspace需要设置什么:
(1)配置tomcat:需要注意这两个地方
(2)修改编码格式,设置成utf-8.
在window中找到workspace左下角的text file encoding 设置成utf-8.
下一篇: Redis面试必会的题目