maven+hibernate+hsqldb 集成
来源:互联网 发布:易语言可以解析json吗? 编辑:程序博客网 时间:2024/04/27 22:40
1. 通过maven创建一个quickstart 的maven工程,并新建一个src/main/resources的source folder用来存放资源文件。
mvn archetype:generate -DgroupId=maven.demo.start -DartifactId=HibernateDemo -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=falseMaven命令执行到Generating Project in Batch mode 卡住,原因是网络带宽不足问题!需要下载一个约4.1M的xml文件。网速好可以多等几分钟,还是不行则参考Solution:Maven命令执行到Generating Project in Batch mode 卡住。 我的是多等了下就好了。
2.修改pom文件,最简单的helloworld只需要增加hibernate和hsqldb(如果安装了mysql等数据库可以用本地数据库,不用下载hsqldb了。)
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>maven.demo.start</groupId> <artifactId>HibernateDemo</artifactId> <packaging>jar</packaging> <version>1.0-SNAPSHOT</version> <name>HibernateDemo</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-core</artifactId><version>4.3.11.Final</version></dependency><dependency><groupId>org.hsqldb</groupId><artifactId>hsqldb-j5</artifactId><version>2.2.4</version></dependency> </dependencies></project>
3. 新建一个类, 在src/main/java下新建一个maven.demo.start包,并建一个Message 类。
package maven.demo.start;public class Message {private Long id;private String text;private Message nextMessage;public Message() {super();// TODO Auto-generated constructor stub}public Message(String text) {super();this.text = text;}public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getText() {return text;}public void setText(String text) {this.text = text;}public Message getNextMessage() {return nextMessage;}public void setNextMessage(Message nextMessage) {this.nextMessage = nextMessage;}}
4.src/main/ 下创建resources文件夹,在resource下新建Message.hbm.xml,定义Bean到数据库字段的映射关系:
<?xml version="1.0"?><!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"><hibernate-mapping><class name="maven.demo.start.Message" table="MESSAGES"><id name="id" column="MESSAGE_ID"><generator class="increment" /></id><property name="text" column="MESSAGE_TEXT" /><many-to-one name="nextMessage" cascade="all" column="NEXT_MESSAGE_ID"foreign-key="FK_NEXT_MESSAGE" /></class></hibernate-mapping>
5.src/main/resources下,新建hibernate.cfg.xml定义数据库连接信息等:
<!DOCTYPE hibernate-configuration SYSTEM"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd"><hibernate-configuration><session-factory><property name="hibernate.connection.driver_class">org.hsqldb.jdbcDriver</property><property name="hibernate.connection.url">jdbc:hsqldb:hsql://localhost</property><property name="hibernate.connection.username">sa</property><property name="hibernate.dialect">org.hibernate.dialect.HSQLDialect</property><!-- Use the C3P0 connection pool provider --><property name="hibernate.c3p0.min_size">5</property><property name="hibernate.c3p0.max_size">20</property><property name="hibernate.c3p0.timeout">300</property><property name="hibernate.c3p0.max_statements">50</property><property name="hibernate.c3p0.idle_test_period">3000</property><!-- Show and print nice SQL on stdout --><property name="show_sql">true</property><property name="format_sql">true</property><property name="hibernate.hbm2ddl.auto">update</property><!-- List of XML mapping files --><mapping resource="Message.hbm.xml" /></session-factory></hibernate-configuration>
6.src/main/java新建maven.demo.start.HibernateUtil类:
package maven.demo.start;import org.hibernate.SessionFactory;import org.hibernate.cfg.Configuration;import org.hibernate.boot.registry.StandardServiceRegistryBuilder;import org.hibernate.service.ServiceRegistry;public class HibernateUtil {private static SessionFactory sessionFactory = null;private static ServiceRegistry serviceRegistry = null;private static Configuration cfg = null;static {cfg = new Configuration().configure(); serviceRegistry = new StandardServiceRegistryBuilder().applySettings(cfg.getProperties()).build();sessionFactory = cfg.buildSessionFactory(serviceRegistry);}public static SessionFactory getSessionFactory() {return sessionFactory;}public static void shutdown() {getSessionFactory().close();}}
7.src/main/java下新建maven.demo.start.HellowWorld类:
package maven.demo.start;import java.util.Iterator;import java.util.List;import org.hibernate.Session;import org.hibernate.Transaction;public class HelloWorld {public static void main(String[] args) {System.out.println(System.getProperty("user.dir"));//// First unit of workSession session = HibernateUtil.getSessionFactory().openSession();Transaction tx = session.beginTransaction();Message message = new Message("Hello World");Long msgId = (Long)session.save(message);tx.commit();session.close();Session newSession = HibernateUtil.getSessionFactory().openSession();Transaction newTx = newSession.beginTransaction();List messages = newSession.createQuery("from Message m order by m.text asc").list();System.out.println(messages.size() + " message(s) found:");for (Iterator it = messages.iterator(); it.hasNext(); ) {Message msg = (Message)it.next();System.out.println(msg.getText());}newTx.commit();newSession.close();HibernateUtil.shutdown();}}
8. 启动hsqldb.Server: cmd进入 hsqldb-j5-2.2.4.jar目录。(一般在C:\Users\Adminstrator\.m2\repository\org\hsqldb\hsqldb-j5\2.2.4\hsqldb-j5-2.2.4.jar 路径下,如果修改了maven的仓库地址,则改为对应的repository目录下)
java -cp hsqldb-j5-2.2.4.jar org.hsqldb.Server
9. 启动hsqldbManager:cmd进入 hsqldb-j5-2.2.4.jar目录。(一般在C:\Users\Adminstrator\.m2\repository\org\hsqldb\hsqldb-j5\2.2.4\hsqldb-j5-2.2.4.jar 路径下,如果修改了maven的仓库地址,则改为对应的repository目录下)
java -cp hsqldb-j5-2.2.4.jar org.hsqldb.util.DatabaseManagerSwing -url jdbc:hsqldb:hsql://localhost/ -driver org.hsqldb.jdbcDriver
10.maven package打包: 运行命令 mvn package
11.运行HelloWorld.java。 进入项目目录,使用java命令运行HelloWorld:
java -cp target/HibernateDemo-1.0-SNAPSHOT.jar maven.demo.startHelloWorld
原来mvn package 打包未将项目依赖的jar一起打包到HibernateDemo-1.0-SNAPSHOT.jar。所以用java命令运行HelloWorld类的main方法总是报错。
正确的运行方法是(使用Maven运行Java main的3种方式):
mvn exec:java -Dexec.mainClass="maven.demo.start.HelloWorld"
0 0
- maven+hibernate+hsqldb 集成
- spring-boot集成hsqldb
- Hibernate 与hsqldb结合
- maven springmvc hibernate shiro 集成
- maven springmvc hibernate shiro 集成
- IDEA maven集成springmvc hibernate
- Unit test hibernate with hsqldb
- 结合HSQLDB测试hibernate实例
- Hibernate和Spring测试HSQLDB
- IntelliJ IDEA 使用maven 集成SpringMVC+Hibernate
- IntelliJ IDEA 使用maven 集成SpringMVC+Hibernate
- hsqldb
- HSQLDB
- HSQLDB
- hsqldb
- hsqlDB
- hsqldb
- hsqldb
- 最小最大和
- iOS---Object-C之内存管理机制
- jzoj 1396. 【2012.03.3普及组】打牌 解题报告
- 在Dropbox上搭建私有的Git仓库的教程
- Day Five(贪心)
- maven+hibernate+hsqldb 集成
- Ubuntu 16.04 安装 Matlab2016a
- 二分查找
- hdu_2255_奔小康赚大钱(KM带权二分匹配板子)
- jzoj 1397. 【2012.03.3普及组】寻找星座 解题报告
- Scala总结(二)
- vs2010修改一个文件,所有文件全部重新编译的解决方法
- 最大连续子数组
- adb故障:adb devices error protocol falut(no status)