JAVA 程序访问 HighGo DB 的环境准备 山东瀚高科技有限公司版权所有仅允许不作任何修改的转载和转发 Hibernate 的配置 MyEclipse 中创建新项目 : 选择菜单栏 file---new---project 选择 web project 进行下一步
输入 project name 选择完成
4. 单击 " 添加 JAR/ 文件夹 ", 会如下图出现 JDBC 下载 Hibernate jar 包, 并进行配置 1 网上下载 Hibernate jar 包如下 : antlr.jar asm.jar asm-attrs.jar cglib-2.1.3.jar commons-collections.jar commons-logging.jar dom4j-1.6.1.jar jta.jar log4j-1.2.11.jar Hibernate3.jar hgdb-1.1-jdbc4.jar( 请下载相对应的版本, 这里的 JDK 为 1.6) 2 配置 Hibernate jar 包
将以上 jar 包拷贝到新的项目中去 比如 :D:\testHibernate\WebRoot\WEB-INF\lib 目录下面查看一下 testhibernate 项目是否加载上 : 首先刷新 testhibernate 项目, 然后选择 testhibernate 项目, 点击右键选择 properties 再选择 java build path ---libraries 查看刚才拷贝的 jar 包是否加载过来 编写持久类 Student.java, 并创建 Hibernate 映射文件 student.hbm.xml 1 编写一个学生对象类 Student.java
package model; public class Student { private Integer num; private String name; private Integer age; private String addr; private String grade; // 以下是 get()/set() 方法 public String getaddr() { return addr; public void setaddr(string addr) { this.addr = addr; public Integer getage() { return age; public void setage(integer age) { this.age = age; public String getgrade() { return grade; public void setgrade(string grade) { this.grade = grade; public String getname() { return name; 2 编写 Hibernate 映射文件 student.hbm.xml <?xml version="1.0"?> <!DOCTYPE Hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 2.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> <Hibernate-mapping> <class name="model.student" table="student"> <id name="num" column="num" > <generator class="increment"/> </id> </class> </Hibernate-mapping> <property name="name" type="string"> <column name="name" length="10" /> <property name="age" type="int"> <column name="age" /> <property name="addr" type="string"> <column name="addr" length="20" /> <property name="grade" type="string"> <column name="grade" length="1" /> 编写取得 session 的类 HibernateUtil.java
package persistence; import org.hibernate.hibernateexception; import org.hibernate.session; import org.hibernate.sessionfactory; import org.hibernate.cfg.configuration; public class HibernateUtil { private static final SessionFactory sessionfactory; static{ try{ sessionfactory=new Configuration().configure().buildSessionFactory(); catch(hibernateexception ex){ throw new RuntimeException(ex.getMessage()); public static Session currntsession() throws HibernateException{ Session s=sessionfactory.opensession(); return s; public static void closesession(session s){ if(s!=null){ s.close(); 编写操作数据库的 Java 文件 DAOImp.java package persistence; import java.util.list; import model.student; import org.hibernate.hibernateexception; import org.hibernate.query; import org.hibernate.session; import org.hibernate.transaction; public class DAOImp { static Session session=null; // 创建新的学生信息 public static void createstu(student stu){ try{ session=hibernateutil.currntsession(); Transaction tx=session.begintransaction(); session.save(stu); tx.commit(); catch(hibernateexception ex){ ex.printstacktrace(); finally{ HibernateUtil.closeSession(session); // 删除学生信息 public static void delstu(integer num){ try{ session=hibernateutil.currntsession(); Transaction tx=session.begintransaction(); 配置 Hibernate 的描述文件 Hibernate.cfg.xml 及 log4j 初始化文件 1 配置 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"> <!-- Generated by MyEclipse Hibernate Tools. --> <Hibernate-configuration> <session-factory> <property name="connection.username">administrator <property name="connection.url"> jdbc:highgo://localhost:5866/mytest <property name="connection.driver_class"> com.highgo.jdbc.driver <mapping resource="model/student.hbm.xml" /> </session-factory> </Hibernate-configuration> 2 配置 log4j.properties #log4j.rootlogger=error,info,a1, R #log4j.appender.error=org.apache.log4j.consoleappender #log4j.appender.error.layout=org.apache.log4j.patternlayout #log4j.appender.error.layout.conversionpattern=%-d{yyyy-mm-dd HH:mm:ss [%c]-[%p] %m%n%l #log4j.appender.info=org.apache.log4j.consoleappender #log4j.appender.info.layout=org.apache.log4j.patternlayout #log4j.appender.info.layout.conversionpattern=%-d{yyyy-mm-dd HH:mm:ss [%c]- [%p] %m%n%l #log4j.appender.a1=org.apache.log4j.consoleappender #log4j.appender.a1.layout=org.apache.log4j.patternlayout #log4j.appender.a1.layout.conversionpattern=%-d{yyyy-mm-dd HH:mm:ss [%c]- [%p] %m%n%l #log4j.appender.r=org.apache.log4j.rollingfileappender #log4j.appender.r.file=c:/tomcat/logs/log4j.log #log4j.appender.r.maxfilesize=100kb #log4j.appender.r.maxbackupindex=100 #log4j.appender.r.layout=org.apache.log4j.patternlayout #log4j.appender.r.layout.conversionpattern=%-d{yyyy-mm-dd HH:mm:ss [%c]- [%p] %m%n%l log4j.rootlogger=info,console log4j.appender.console=org.apache.log4j.consoleappender log4j.appender.console.target=system.out log4j.appender.console.layout=org.apache.log4j.patternlayout log4j.appender.console.layout.conversionpattern= %4p [%t] (%F:%L) - %m%n 编写业务逻辑处理文件 BM.java
package BusinessManager; import java.util.list; import persistence.daoimp; import model.student; public class BM { public static void main(string[] args){ // 创建新的学生对象 Student stu=new Student(); stu.setname("test1"); stu.setage(10); stu.setgrade("5"); DAOImp.createStu(stu); // 修改学生信息 /*List list=daoimp.getallstu(); Student stu1=(student)list.get(0); stu1.setname("newname"); stu1.setage(11); DAOImp.mdStu(stu1);*/ // 删除学生信息 /*List list1=daoimp.getallstu(); Student stu2=(student)list1.get(0); DAOImp.delStu(stu2.getNum());*/ 测试运行 BM.java 并查看 HighGo DB 数据库中的结果 1 增加学生信息 运行 BM.java 文件 注意 :BM.java 代码 // 创建新的学生对象 Student stu=new Student(); stu.setname("test1"); stu.setage(10); stu.setgrade("5"); DAOImp.createStu(stu); 查看 HighGo DB 数据库信息如下 : 2 修改学生信息 运行 BM.java 文件 注意 :BM.java 代码
// 修改学生信息 List list=daoimp.getallstu(); Student stu1=(student)list.get(0); stu1.setname("newname"); stu1.setage(11); DAOImp.mdStu(stu1); 查看 HighGo DB 数据库信息如下 : 3 删除学生信息运行 BM.java 文件注意 :BM.java 代码 // 删除学生信息 List list1=daoimp.getallstu(); Student stu2=(student)list1.get(0); DAOImp.delStu(stu2.getNum()); 查看 HighGo DB 数据库信息如下 :