照着视频,搭建了hibernate环境,运行成功更新了数据库,简要说明下步骤以及注意事项。
1.创建java工程(web工程也可)
创建一个名叫test的java工程
2.下载jar包
jar包不要下多,更不要下少,所需要的jar包共14个,如图所示!
这里写图片描述
在此直接附上jar包下载地址http://download.csdn.net/download/youxier/10040112,并将jar包build到工程中
3.目录结构
我创建的目录如图所示,其中hibernate.cfg.xml文件的名称和位置固定,不能修改,其他包名、类名可以随意修改,对应的配置文件的名称也得相应修改。
4.创建实体类
创建User实体类,代码如下
public class User {
//要求 实体类有一个唯一属性
private int uid;
private String username;
private String paasword;
private String address;
public int getUid() {
return uid;
}
public void setUid(int uid) {
this.uid = uid;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPaasword() {
return paasword;
}
public void setPaasword(String paasword) {
this.paasword = paasword;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
5.创建映射文件User.hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<!-- 1配置类和表对应
class标签
name属性:实体类全路径
-->
<class name="com.tian.hibernate.User" table="t_user">
<!-- 配置实体类id和表id对应
hibernate要求实体类有一个属性唯一值
hibernate要求表有字段唯一值
-->
<!-- id标签
name属性:实体类里面id属性名称
column属性:生成字段的名称
-->
<id name="uid" column="uid">
<!-- 设置数据库表id增长策略
native:生成表id值是主键自动增长
-->
<generator class="native"></generator>
</id>
<property name="username" column="username"></property>
<property name="paasword" column="paasword"></property>
<property name="address" column="address"></property>
</class>
</hibernate-mapping>
6.创建hibernate配置文件hibernate.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- 配置mysql信息-->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql:///tian</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<!-- 配置bibernate信息-->
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">true</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 把映射文件放到核心配置文件中 -->
<mapping resource="com/tian/hibernate/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>
7.创建测试类,运行结果
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.Test;
public class HibernateDemo {
@Test
public void testAdd(){
Configuration cfg = new Configuration();
cfg.configure();
SessionFactory sessionFactory = cfg.buildSessionFactory();
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
User user = new User();
user.setUsername("小王");
user.setPaasword("17");
user.setAddress("American");
session.save(user);
tx.commit();
session.close();
sessionFactory.close();
}
}
运行后,得到结果如下
注意事项
1.我在配置两个xml文件时,eclipse没有出现标签自动补全,这个不影响程序的正确运行,照着代码敲就好了,不用担心程序出错。
2.至于如何自动补全,照着网上的做,什么先把dtd文件下下来,再window->preferences什么的,一套流程都做了,可还是不行,希望有做好的,留言。
3.两个xml文件里有些变量是我定义的,可能在不同环境需要做相应改变,在此有问题可以提出。