在eclipse中ORM环境构建

1.首先要引入我们要用到的jar包

hibernate3.jar核心 + required 必须引入的(6个) + jpa 目录 + 数据库驱动包

如下图所示:


引入jar包的时候遇到了一些问题,一开始安装在了src下新建的lib文件夹下,但是后来发现不能够使用,需要建立一个新的

User Library,将自己所需的jar包add上,之后在项目上右键Build path---add library,将之前自建的library导入。

2.为了与数据库表建立映射关系,编写一个对象User.java

package sunrui;
public class User {
	private int id;
    private String username;
    private String password;
    private String cellphone;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getCellphone() {
		return cellphone;
	}
	public void setCellphone(String cellphone) {
		this.cellphone = cellphone;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
}

3.编写对象映射->User.hbm.xml。

这一部分是在网上找的编写代码,在project>etc里没有看见,里面只找到了.cfg.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<hibernate-mapping package="sunrui">

    <!--类名为User,表名也为User-->
    <class name="User"  table="m">

        <!--主键映射,属性名为id,列名也为id-->
        <id name="id" column="id">
            <!--根据底层数据库主键自动增长-->
            <generator class="native"/>

        </id>
        
        <!--非主键映射,属性和列名一一对应-->
        <property name="username" column="username"/>
        <property name="cellphone" column="cellphone"/>
        <property name="password" column="password"/>
    </class>
</hibernate-mapping>

需要注意的是class name和table。一个是自己编写的类名,一个是自己想要建立到数据库中表的名字,表的名字可以随便写,但要和后面的代码对应好,如果写错类名会找不到文件

这一部分并没有什么困难的地方,问题出现一般就是没有对应好类名,另外就是id是主键列,generator根据底层数据库指定生成方法,如果主键不自增就会报错。

4.配置Hibernate核心配置文件(hibernate.cfg.xml)

这个需要创建在src目录下,注意不要写到自己自建的包中,hbm.xml文件才是写在自己的包中的

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD//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://localhost:3306/abc</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">sunrui1314</property>
        <!-- 数据库方法配置, hibernate在运行的时候,会根据不同的方言生成符合当前数据库语法的sql -->
        <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>


        <!-- 其他相关配置 -->
        <!-- 显示hibernate在运行时候执行的sql语句 -->
        <property name="hibernate.show_sql">true</property>
        <!-- 格式化sql -->
        <property name="hibernate.format_sql">true</property>
        <!-- 建表  -->
        <property name="hibernate.hbm2ddl.auto">create</property>

        <!--加载所有映射-->
        <mapping resource="sunrui/User.hbm.xml"/>

    </session-factory>
</hibernate-configuration>

在我们下载的hiberate文件目录下他原本是这个样子滴


这一部分需要注意的是

<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>//这里是数据库驱动
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/abc</property>//这里是数据库连接,你的连接名和建的数据库名,我们这里是abc
        <property name="hibernate.connection.username">root</property>//这里是数据库用户名
        <property name="hibernate.connection.password">sunrui1314</property>//这里密码千万不要写错

还有加载全部映射的时候,mapping resource后面要接的是你自己建的包名+cfg.xml文件名,如果写错了会找不到文件相应目录无法成功执行

5.大功告成开始测试,建立测试类sr.java

package sunrui;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
public class Sr {
	public static void main(String[] args) {

        //创建对象
        User m = new User();
        m.setPassword("666");
        m.setCellphone("18846420216");
        m.setUsername("ifyou");

        //获取加载配置管理类
        Configuration configuration = new Configuration();

        //不给参数就默认加载hibernate.cfg.xml文件,
        configuration.configure();

        //创建Session工厂对象
        SessionFactory factory = configuration.buildSessionFactory();

        //得到Session对象
        Session session = factory.openSession();

        //使用Hibernate操作数据库,都要开启事务,得到事务对象
        Transaction transaction = session.getTransaction();

        //开启事务
        transaction.begin();

        //把对象添加到数据库中
        session.save(m);

        //提交事务
        transaction.commit();

        //关闭Session
        session.close();
    }
}
这里的主要问题也就是类名不要写错!类名就是与数据库建立映射关系的User,还有就是相应的import不要忘记加,一般来说代码打上之后会有提示,选择相对的import包就完成了,最后是不要忘记关闭session,session做任何的操作,如果没有显示的调用commit()方法,都不会清理缓存、执行相应的SQL、提交事务。

6.结果显示




可以看到m表已经被建立在数据库中了

猜你喜欢

转载自blog.csdn.net/choi_xiaogui/article/details/80230503