- 浏览: 150197 次
- 性别:
- 来自: 保定
文章分类
最新评论
-
hellostory:
高级查询的查询参数放哪里?
SSH超实用分页实现(原创开源)! -
topbox163:
不错。。。。。。。。。
拥有属于自己的SVN(Google SVN)(更新版) -
shiyangxt:
忧_零 写道不知道这个问题LZ是否解决了啊,今天同样碰到这个问 ...
救助贴???关于Mysql插入二进制文件 -
忧_零:
不知道这个问题LZ是否解决了啊,今天同样碰到这个问题了,错误相 ...
救助贴???关于Mysql插入二进制文件 -
sornor:
不错!总算对servlet和jsp之间的关系有了了解了!感谢感 ...
JSP与Servlet的关系和实例分析(转帖)
虽然两天还不会连接数据库,昨就把那么帅的东西搞出来了。
感觉很爽,Java真的很好,很强大。我学习Java才一个月左右,我还有许多需要学习的。
这次发的这个框架是Hibernate连接mysql。(所有代码均实际运行)
搭建环境:MyEclipse
下面是操作步骤:
1.在mysql中建立一个名为person的表。
表中数据:id varchar(32) no null primary key;
name varchar(30) no null;
password varchar(30) no null;
sex varchar(2);
email varchar(30);
2.打开MyEclipse,从菜单中选择窗口,选择首选项,选择数据库浏览器。
3.配置数据库驱动(mysql-connector-java-5.1.6-bin.jar)。
4.新建一个webproject,命名为HMWebproject,加入Add Hibernate Capabilities...,选择Hibernate3,Next---Finish
5. 选菜单的窗口,选择显示视图,选择其它,选MyEclipse中的DB Browser。点确定。从新窗口中选择New,连接数据库MySQL。
6.把数据库驱动放入此路径(例)D:\java\work\HMWebproject\WebRoot\WEB-INF\lib中,刷新列表,可以显示出新加入的包。
7.src下新建一个类(POJO类):包名为org.lxh.hibernate.demo,命名为Person,写入代码,最终显示如下:
package org.lxh.hibernate.demo;
//POJO类
public class Person {
private String id;
private String name;
private String password;
private String sex;
private String email;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
8.建立映射文件:点表person右键,选择Create Hibernate Mapping,创建在包org.lxh.hibernate.demo下,主键生成方式:assigned,完成。
9.修改映射文件:代码最终为--->
<?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">
<!--
Mapping file autogenerated by MyEclipse Persistence Tools
-->
<hibernate-mapping>
<class name="org.lxh.hibernate.demo.Person" table="person" catalog="scutcs">
<id name="id" type="java.lang.String">
<column name="id" length="32" />
<generator class="assigned" />
</id>
<property name="name" type="java.lang.String">
<column name="name" length="20" not-null="true" />
</property>
<property name="password" type="java.lang.String">
<column name="password" length="20" not-null="true" />
</property>
<property name="sex" type="java.lang.String">
<column name="sex" length="2" />
</property>
<property name="email" type="java.lang.String">
<column name="email" length="30" />
</property>
</class>
</hibernate-mapping>
9.在src下新建一个类:命名为PersonOperate,最终代码为----->
package org.lxh.hibernate.demo;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
/*
* 具体操作Hibernate的类
* 增删改,按ID查询,模糊查询,查询全部
*/
public class PersonOperate {
//Hibernate中所有操作都通过Session完成
//此Session不同于JSP的Session
private Session session=null;
//构造方法中实现实例化Session对象
public PersonOperate()
{
Configuration config=new Configuration().configure();
//从配置中取得SessionFactory
SessionFactory factory=config.buildSessionFactory();
//SessionFactroy中取出一个Session
this.session=factory.openSession();
}
//所有的操作都是通过Session进行的
//向数据库中增加数据
public void insert(Person p)
{
//开始事务
Transaction tran =this.session.beginTransaction();
//执行语句
this.session.save(p);
//提交事务
tran.commit();
//关闭Session
this.session.close();
}
//修改
public void update(Person p)
{
//开始事务
Transaction tran =this.session.beginTransaction();
//执行语句
this.session.update(p);
//提交事务
tran.commit();
this.session.close();
}
//按ID查询:推荐使用HQL
public Person queryById(String id)
{
Person p=null;
//使用Hibernate查询语言
String hql="FROM Person as p WHERE p.id=?";
//通过Query接口查询
Query q=this.session.createQuery(hql);
q.setString(0, id);
List l=q.list();
java.util.Iterator iter= l.iterator();
if(iter.hasNext())
{
p=(Person)iter.next();
}
return p;
}
//删除数据
//Hibernate2,Hibernate3通用的删除
//使用此方法删除数据之前,必须先查找到数据对象
public void delete(Person p)
{
Transaction tran=this.session.beginTransaction();
//执行语句
this.session.delete(p);
//提交事务
tran.commit();
this.session.close();
}
//在Hibernate 3之中根据HQL中的语句进行了修改,增加了删除指令
public void delete(String id)
{
String hql="DELETE Person WHERE id=?";
Query q=this.session.createQuery(hql);
//把参数设置
q.setString(0, id);
//执行更新语句
q.executeUpdate();
//进行事务处理
this.session.beginTransaction().commit();
this.session.close();
}
//查询全部数据,写HQL
public List queryAll()
{
List l=null;
String hql="FROM Person as p";
Query q =this.session.createQuery(hql);
l=q.list();
return l;
}
//模糊查询
public List queryByLike(String cond)
{
List l=null;
String hql="FROM Person as p WHERE p.name like?";
Query q =this.session.createQuery(hql);
q.setString(0, "%"+cond+"%");
l=q.list();
return l;
}
}
10.在src下新建插入类:命名为:TestPU
新建更新类:命名为:TestPO
新建删除类:命名为:TestPD
新建HQL删除类:命名为:TestPD2
新建按ID查询类:命名为:TestPI
新建查询全部类:命名为:TestPK
新建模糊查询类:命名为:TestPM
最终各类代码为----->
TestPU.java
package org.lxh.hibernate.demo;
public class TestPU {
/**
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成方法存根
//生成POJO类实例化对象
Person p=new Person();
p.setId("SNNN");
p.setName("shiyangxt");
p.setPassword("shiyang");
p.setSex("女");
p.setEmail("shiyangxt@126.com");
PersonOperate po=new PersonOperate();
po.insert(p);
}
}
TestPO.java
package org.lxh.hibernate.demo;
public class TestPO {
/**
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成方法存根
//生成POJO类实例化对象
Person p=new Person();
p.setId("NNNN");
p.setName("shiyangxt");
p.setPassword("shiyang");
p.setSex("女");
p.setEmail("shiyangxt@126.com");
PersonOperate po=new PersonOperate();
po.update(p);
}
}
TestPD.java
package org.lxh.hibernate.demo;
public class TestPD {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
PersonOperate po=new PersonOperate();
Person p=po.queryById("NNNN");
po.delete(p);
}
}
TestPD2.java
package org.lxh.hibernate.demo;
public class TestPD2 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成方法存根
//生成POJO类实例化对象
PersonOperate po=new PersonOperate();
po.delete("SNNN");
}
}
TestPI.java
package org.lxh.hibernate.demo;
public class TestPI {
/**
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成方法存根
//生成POJO类实例化对象
PersonOperate po=new PersonOperate();
Person p=po.queryById("NNNN");
System.out.println(p.getName());
}
}
TestPK.java
package org.lxh.hibernate.demo;
import java.util.Iterator;
import java.util.List;
public class TestPK {
/**
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成方法存根
//生成POJO类实例化对象
PersonOperate po=new PersonOperate();
List l=po.queryAll();
Iterator iter= (Iterator) l.iterator();
while(iter.hasNext())
{
Person p = (Person)iter.next();
System.out.println(p.getName());
}
}
}
TestPM.java
package org.lxh.hibernate.demo;
import java.util.Iterator;
import java.util.List;
public class TestPM {
/**
* @param args
*/
public static void main(String[] args) {
// TODO 自动生成方法存根
//生成POJO类实例化对象
PersonOperate po=new PersonOperate();
List l=po.queryByLike("s");
Iterator iter= (Iterator) l.iterator();
while(iter.hasNext())
{
Person p = (Person)iter.next();
System.out.println(p.getName());
}
}
}
11.搭建完成!!!
施杨出品!!!
发表评论
-
Java入门编程实例
2008-06-03 16:38 762php的学习先告一段落了,现在拿出近几天看的视频教 ... -
java基础进阶(文件列表,线程,线程组)编程实例(4篇)
2008-06-09 19:59 1052此处刊登代码均测试通过,完全准确! import j ... -
闭关贴!(含Java实践经验)
2008-06-16 11:32 711由于下周就考试 ... -
JSP与Servlet的关系和实例分析(转帖)
2008-06-18 16:39 3237JSP是Servlet的扩展,在没有J ... -
JSP环境配置全解!
2008-06-30 12:26 788实现JSP文件环境配置除了MyEclipse外,最 ... -
JSF搭建完成!(源码)
2008-07-07 12:07 1085今天搭建了我的第一个J ... -
Struts搭建完成!(源码)
2008-07-08 17:07 1334今天又搭好了我的第一个Struts框架,虽然觉有些复杂。但是我 ... -
Java连接数据库(mysql,sqlsever,Oracle,access)的调用函数!
2008-07-09 20:34 1706Java连各种数据库容易混淆,所以总结一下: oracle: ... -
实现Java连接mysql(源码)!
2008-07-10 22:14 3719Java连接mysql数据库,代码经过运行准确无误。 下面为实 ... -
MyEclipse内的Tmocat启动异常解决方案
2008-07-13 18:51 988在我们平常使用MyEclipse运行项目的时候,往往只需要启动 ... -
Struts+DAO框架搭建完成!(源码)
2008-07-13 21:32 842今天做了这个Struts+DAO框架,可以说是又向SSH迈了一 ... -
一个折磨我一下午的编程问题
2008-07-14 20:36 622今天下午搭Struts+DAO+Hibernate遇到一处错误 ... -
搭SSH时遇到的问题,已解决!
2008-07-16 18:46 711今天下午搭SSH,由于MyEclipse版本的不同,所以在搭的 ... -
JS验证框架的使用方法
2008-07-26 17:01 1068今天着重介绍的是JS验证框架在Java Web项目中的应用, ... -
搭建Servlet在线视频
2008-07-27 22:09 994这个视频flash上传及在 ... -
快速实现国际化---插件ResourceBunbleEditor的使用
2008-07-29 16:33 1013最近发现一个非常好用的插件,这个插件可以使Java的Web项目 ... -
Java数据库连接池类源码
2008-07-30 21:41 1736环境:MyEclipse 数据库:mysql 首先新建 ... -
Common Dbutils组件的使用(源码)
2008-08-01 20:50 1316Common Dbutils是操作数据库的组件,对传统操作数据 ... -
hibernate错误集锦(转)
2008-08-06 21:03 729**************************hiber ... -
Java测试Mysql数据库的最大连接数
2008-08-07 21:55 1449Java测试Mysql数据库的最大连接数类: import ...
相关推荐
跟博客上视频配套的源码,hibernate 4.19
NULL 博文链接:https://huang3218755.iteye.com/blog/531060
struts2+spring4+hibernate4工程搭建源码 找对包最重要
Myeclipse springMVC+hibernate框架搭建源码
Spring+SpringMVC+Hibernate+Maven框架搭建及配置文件源码
Maven搭建SpringMVC+Hibernate项目源码,包括Hibernate二级缓存Ehcache的搭建等等,博文地址:http://blog.csdn.net/fengshizty/article/details/43635305
Hibernate5.2.4环境搭建,包含最新jar包,eclipse 4.6,JDK8. 代码详细注释,配置文件详细讲解
hibernate5.2+SpringMVC4.3框架搭建源码。
Hibernate入门-搭建框架实现基本的增删改查(源码)Hibernate入门-搭建框架实现基本的增删改查(源码)
SSH2框架搭建实例(spring3.2+strust2.3.4+hibernate4.2)全部采用最新版本.演示了用户登录和用户管理
基于struts2、spring、hibernate框架搭建的人力资源管理系统源码+项目说明(包含模块:人事管理、招聘管理、机构管理、考勤管理、培训管理、个人办公、系统管理).zip 基于struts2、spring、hibernate框架搭建的人力...
JSF+Hibernate开发WEB应用比用SSH开发WEB,更简单,更易上手。本源码通过用户登录的实例,展示了采用JSF和HIBERNATE技术,搭建WEB应用系统的方法。数据库采用SQL2008,实例包含了创建user的SQL脚本。
成功移植到ssm(strut2、spring、mybatis)实现了“hibernate和mybatis的之CRUD封装比较”(http://blog.csdn.net/linchengzhi/article/details/7332529)的设计思想;增加了项目的介绍;可以作为项目开发的基础框架...
Jboss7上+maven搭建struts2+spring3+hibernate3完整能运行工程源码,在tomcat7上运行也成功测试了,注意:我工程文件是用myeclipse2013开发的,你需要导入自己ide的时候,会有兼容性问题:最好阁下是自己新建一个maven...
NULL 博文链接:https://tianshi0253.iteye.com/blog/314656
初学者可以看看
SpringMVC+Spring+hibernate 源码 自己搭建开发框架
ExtJs+struts2+ hibernate+ spring搭建的图书管理系统
eclipse工具,用Maven搭建的Spring+Spring MVC+Hibernate框架源码
成功移植到ssm(strut2、spring、mybatis)实现了“hibernate和mybatis的之CRUD封装比较”(http://blog.csdn.net/linchengzhi/article/details/7332529)的设计思想。 本资源所需的jar包请到“ssh框架搭建实例源码2...