hibernate 最简单的入门测试
hibernate 入门:
完全忘记了hibernate了,重新找了个教程,写了个简单的demo实现插入:

文件:
实际只需要hibernate的jar包和下面四个文件
hibernate配置文件hibernate.cfg.xml
Model映射文件 user.hbm,xml
Model:User
Action:HibernateAction测试类
这里用maven管理,log4j日志,所以多了它们的配置管理文件。
maven导包hibernate:
<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.2.12.Final</version>
</dependency>
hibernate配置文件hibernate.cfg.xml
<!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>
<property name="hibernate.connection.url">
jdbc:mysql://119.29.17.188/jnshu?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&rewriteBatchedStatements=true
</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<!--hibernate 方言 封装各种各样的db,用来生成对应的sql语句-->
<!--通用的mysql数据库-->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<!--打印到控制台-->
<property name="hibernate.show_sql">true</property>
<!--格式化SQL语句-->
<property name="hibernate.format_sql">true</property>
<!--加载实体类映射配置文件-->
<mapping resource="user.hbm.xml"/>
<mapping resource="student.hbm.xml"/>
</session-factory>
</hibernate-configuration>
Model映射文件 user.hbm.xml:
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.xkthibernate.model.User" table="rest_user">
<id name="id" type="java.lang.Integer">
<column name="id"/>
<!--
主键生成策略:
increment:自动增长;
assigned:程序提供;
native:由程序自己判断是程序提供主键值还是由数据库生成主键
identity:使用数据的自动增长;如mysql的auto_increment,sqlserver的identity(标识列)
sequence:使用序列;如Oracle,比如Oracle数据库有有一个名为:seq_dept的序列,那么在此处配置为:
<generator class="sequence">
<param name="sequence">seq_dept</param>
</generator>
--><!--主键-->
<generator class="native"/>
</id>
<property name="name"/>
<property name="pwd"/>
<property name="qq"/>
<property name="email"/>
<property name="address"/>
<property name="tell"/>
<property name="create_at"/>
<property name="update_at"/>
</class>
</hibernate-mapping>
Model:
public class User implements Serializable{
private int id;
private String name;
private String pwd;
private long qq;
private String email;
private String address;
private long tell;
private long create_at;
private long update_at;……
}
Action测试类:
Test
public void testMain() throws Exception {
//TODO: Test goes here...
Configuration configuration = new Configuration().configure("hibernate.cfg.xml");
SessionFactory sessionFactory = configuration.buildSessionFactory();
Session session = null;
try {
session = sessionFactory.openSession();
session.getTransaction();
// 写的Random获取随机user类方便测试
User user = new RandomUser().getRandomUser();
session.save(user);
}catch (Exception e){
e.fillInStackTrace();
}finally {
if(session!=null){
session.clear();
session.close();
}
}
测试类运行控制台打印:

插入数据:


注:
log4j2报警告了:
之前log4j是1,后来添加依赖包:
<!--log4j日志包-->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<!--<version>${log4j.version}</version>-->
<version>1.2.17</version>
</dependency>
<!--log4j2的依赖包-->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>${log4j.version}</version>
</dependency>
添加了log4j2.xml就不报警告了

posted on 2018-05-11 11:49 GhostSugar 阅读(1288) 评论(0) 收藏 举报
浙公网安备 33010602011771号