Hibernate配置:
- 数据库连接配置文件,路径随意
名称为hibernate.cfg.xml
// 读取默认配置文件
cfg = new Configuration().configure();
名称为自定义
// 读取自定义配置文件
cfg = new Configuration().configure("自定义.xml");
hibernate.cfg.xml文件示例
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <!-- 设置数据库驱动 --> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <!-- 设置数据库URL --> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/test</property> <!-- 数据库用户名 --> <property name="hibernate.connection.username">root</property> <!-- 数据库密码 --> <property name="hibernate.connection.password">whenjun</property> <!-- 指定对应数据库的方言,hibernate为了更好适配各种关系数据库,针对每种数据库都指定了一个方言dialect --> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <!-- 映射文件 --> <mapping resource="com/whenjun/entity/hbm/User.hbm.xml"/> </session-factory> </hibernate-configuration>
entity映射文件名称随意,一般为 entity.hbm.xml,路径随意
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <!-- 设置是否使用代理对象 default-lazy="false" --> <hibernate-mapping default-lazy="false"> <class name="com.whenjun.entity.User"> <id name="id"> <!-- hibernate自己生成uuid --> <!-- <generator class="uuid.hex"/> --> </id> <property name="username"/> <property name="password"/> </class> </hibernate-mapping>
entity类
@Entity
@Table(name="user")
public class User implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
@Id
@Column(name = "id", nullable = false)
private String id;
@Column(length=255)
private String username;
@Column(length=255)
private String password;
public User(){}
public User(String id,String username,String password){
this.id=id;
this.username=username;
this.password=password;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString(){
return "User [id=" + id + ", username=" + username + ", password=" + password + "]";
}
}
test
public class JTest {
private Configuration cfg = null;
private SessionFactory factory = null;
private Session session = null;
@Before
public void before() {
// 读取配置文件
cfg = new Configuration().configure();
factory = cfg.buildSessionFactory();
session = factory.openSession();
System.out.println("session开启成功");
}
@After
public void after() {
if (session != null) {
if (session.isOpen()) {
// 关闭session
session.close();
System.out.println("session关闭");
}
}
if(factory!=null){
factory.close();
System.out.println("sessionFactory关闭");
}
}
/****
* 新增
*
* @date 2017年5月4日
* @author wanwenjun
*/
@Test
public void save() {
try {
session.beginTransaction();
String id = UUID.randomUUID().toString();
System.out.println(id);
User user = new User();
user.setId(id);
user.setUsername("搜索");
user.setPassword("2321");
session.save(user);
// 提交事务
session.getTransaction().commit();
System.out.println("添加成功");
} catch (Exception e) {
e.printStackTrace();
// 回滚事务
session.getTransaction().rollback();
System.out.println("添加失败,回滚");
}
}
}