基于Hibernate联接MYSQL实现员工信息查询
来源:互联网 发布:豆瓣评分9.0的网络剧 编辑:程序博客网 时间:2024/05/19 19:43
新建一个JAVA项目,在项目属性中选择”JAVA构建路径”,在库标签中点“添加外部JAR”
添加Hibernate必须的JAR(当然也要把MYSQL驱动JAR也加上),如下:
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">test</property>
<property name="connection.url">
jdbc:mysql://localhost:3306/test
</property>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="myeclipse.connection.profile">
mysqlprofile
</property>
<property name="connection.password">test</property>
<property name="connection.driver_class">
org.gjt.mm.mysql.Driver
</property>
<property name="max_fetch_depth">1</property>
<mapping resource="query/model.hbm.xml" />
</session-factory>
</hibernate-configuration>
2.建立与数据库表想对应的配置文件
<?xml version="1.0" encoding="ISO-8859-1"?>
<!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 - Hibernate Tools
-->
<hibernate-mapping package="query">
<class name="query.Employee" table="employee" catalog="test">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="identity" />
</id>
<property name="name" type="java.lang.String">
<column name="name" />
</property>
<property name="department" type="java.lang.String">
<column name="department" />
</property>
<property name="salary" type="java.lang.Double">
<column name="salary" />
</property>
</class>
</hibernate-mapping>
3.建立一个封装员工信息的类
package query;
public class Employee {
private int id;
private String name;
private String department;
private double salary;
public void setId(int id){this.id=id;}
public void setName(String name){this.name=name;}
public void setDepartment(String department ){this.department=department;}
public void setSalary(double salary){this.salary=salary;}
public int getId(){return id;}
public String getName(){return name;}
public String getDepartment(){return department;}
public double getSalary(){return salary;}
}
4.创建管理SESSION的类
package query;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class HibernateUtil {
private static Log log=LogFactory.getLog(HibernateUtil.class);
private static final SessionFactory sessionFactory;
static {
try {
sessionFactory=new Configuration().configure().buildSessionFactory();
} catch (Throwable ex) {
ex.printStackTrace();// TODO: handle exception
throw new ExceptionInInitializerError(ex);
}
}
public static final ThreadLocal session=new ThreadLocal();
public static Session currentSession()throws HibernateException{
Session s=(Session)session.get();
if(s==null||!s.isOpen()){
s=sessionFactory.openSession();
session.set(s);
}
return s;
}
public static void closeSession()throws HibernateException{
Session s=(Session)session.get();
session.set(null);
if(s!=null)s.close();
}
}
5.建立员工信息查询类:
package query;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Iterator;
import java.util.List;
import javax.swing.*;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
public class QueryFrame extends JFrame implements ActionListener {
/**
*
*/
private static final long serialVersionUID = 1L;
JTextField jf=new JTextField(20);
JButton find=new JButton("查询");
JPanel panel_find=new JPanel();
JPanel panel_content=new JPanel();
public List getEmployees(String empname)throws HibernateException{
Session session=HibernateUtil.currentSession();
Transaction tx=session.beginTransaction();
//String sql="from Emloyee where name like '%"+empname+"%'";
String sql="from Employee";
Query query=session.createQuery(sql);
List list=query.list();
tx.commit();
HibernateUtil.closeSession();
return list;
}
public QueryFrame(){
this.setTitle("查询系统");
Container c=this.getContentPane();
jf.addActionListener(this);
find.addActionListener(this);
panel_find.add(jf);
panel_find.add(find);
c.add(panel_find, "North");
c.add(panel_content,"Center");
this.setSize(400,400);
this.setLocation(200,100);
this.setVisible(true);
}
public void actionPerformed(ActionEvent e){
panel_content.removeAll();
String content=jf.getText();
JLabel label1=new JLabel("员工号"+"----"+"员工姓名"+"----"+"员工部门"+"----"+"员工薪水");
JPanel panel= new JPanel();
panel.add(label1);
int i=0;
for(Iterator it=this.getEmployees(content).iterator();it.hasNext(); ){
Employee emp=(Employee)it.next();
JLabel label=new JLabel(emp.getId()+"----"+emp.getName()+"----"+emp.getDepartment()+"----"+emp.getSalary());
panel.add(label);
panel_content.add(panel);
i++;
}
panel_content.setLayout(new GridLayout(i,1));
panel_content.validate();
}
public static void main(String[] args) {
new QueryFrame();// TODO Auto-generated method stub
}
}
添加Hibernate必须的JAR(当然也要把MYSQL驱动JAR也加上),如下:
antlr.jar
cglib.jar
asm.jar
asm-attrs.jars
commons-collections.jar
commons-logging.jar
hibernate3.jar
jta.jar
dom4j.jar
log4j.jar
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">test</property>
<property name="connection.url">
jdbc:mysql://localhost:3306/test
</property>
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="myeclipse.connection.profile">
mysqlprofile
</property>
<property name="connection.password">test</property>
<property name="connection.driver_class">
org.gjt.mm.mysql.Driver
</property>
<property name="max_fetch_depth">1</property>
<mapping resource="query/model.hbm.xml" />
</session-factory>
</hibernate-configuration>
2.建立与数据库表想对应的配置文件
<?xml version="1.0" encoding="ISO-8859-1"?>
<!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 - Hibernate Tools
-->
<hibernate-mapping package="query">
<class name="query.Employee" table="employee" catalog="test">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="identity" />
</id>
<property name="name" type="java.lang.String">
<column name="name" />
</property>
<property name="department" type="java.lang.String">
<column name="department" />
</property>
<property name="salary" type="java.lang.Double">
<column name="salary" />
</property>
</class>
</hibernate-mapping>
3.建立一个封装员工信息的类
package query;
public class Employee {
private int id;
private String name;
private String department;
private double salary;
public void setId(int id){this.id=id;}
public void setName(String name){this.name=name;}
public void setDepartment(String department ){this.department=department;}
public void setSalary(double salary){this.salary=salary;}
public int getId(){return id;}
public String getName(){return name;}
public String getDepartment(){return department;}
public double getSalary(){return salary;}
}
4.创建管理SESSION的类
package query;
import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class HibernateUtil {
private static Log log=LogFactory.getLog(HibernateUtil.class);
private static final SessionFactory sessionFactory;
static {
try {
sessionFactory=new Configuration().configure().buildSessionFactory();
} catch (Throwable ex) {
ex.printStackTrace();// TODO: handle exception
throw new ExceptionInInitializerError(ex);
}
}
public static final ThreadLocal session=new ThreadLocal();
public static Session currentSession()throws HibernateException{
Session s=(Session)session.get();
if(s==null||!s.isOpen()){
s=sessionFactory.openSession();
session.set(s);
}
return s;
}
public static void closeSession()throws HibernateException{
Session s=(Session)session.get();
session.set(null);
if(s!=null)s.close();
}
}
5.建立员工信息查询类:
package query;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Iterator;
import java.util.List;
import javax.swing.*;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
public class QueryFrame extends JFrame implements ActionListener {
/**
*
*/
private static final long serialVersionUID = 1L;
JTextField jf=new JTextField(20);
JButton find=new JButton("查询");
JPanel panel_find=new JPanel();
JPanel panel_content=new JPanel();
public List getEmployees(String empname)throws HibernateException{
Session session=HibernateUtil.currentSession();
Transaction tx=session.beginTransaction();
//String sql="from Emloyee where name like '%"+empname+"%'";
String sql="from Employee";
Query query=session.createQuery(sql);
List list=query.list();
tx.commit();
HibernateUtil.closeSession();
return list;
}
public QueryFrame(){
this.setTitle("查询系统");
Container c=this.getContentPane();
jf.addActionListener(this);
find.addActionListener(this);
panel_find.add(jf);
panel_find.add(find);
c.add(panel_find, "North");
c.add(panel_content,"Center");
this.setSize(400,400);
this.setLocation(200,100);
this.setVisible(true);
}
public void actionPerformed(ActionEvent e){
panel_content.removeAll();
String content=jf.getText();
JLabel label1=new JLabel("员工号"+"----"+"员工姓名"+"----"+"员工部门"+"----"+"员工薪水");
JPanel panel= new JPanel();
panel.add(label1);
int i=0;
for(Iterator it=this.getEmployees(content).iterator();it.hasNext(); ){
Employee emp=(Employee)it.next();
JLabel label=new JLabel(emp.getId()+"----"+emp.getName()+"----"+emp.getDepartment()+"----"+emp.getSalary());
panel.add(label);
panel_content.add(panel);
i++;
}
panel_content.setLayout(new GridLayout(i,1));
panel_content.validate();
}
public static void main(String[] args) {
new QueryFrame();// TODO Auto-generated method stub
}
}
- 基于Hibernate联接MYSQL实现员工信息查询
- java连接mysql数据库查询员工信息
- PHP+MySQL模糊查询员工信息
- mysql left联接查询实现多表查询
- 员工信息查询
- Mysql里的联接查询
- Hibernate 一对一关系中的联接查询
- python查询员工信息表
- mysql联接和子查询的使用
- 12-hibernate实战 多对一根据查询员工获取部门的信息
- 实现SQL中JOIN联接多个表查询
- sqlite怎样实现多表联接查询
- sqlite怎样实现多表联接查询
- 联接查询
- 联接查询
- MySQL 部门 员工数量查询
- Hibernate实现mysql数据库limit查询方法
- 查询是领导的员工信息
- 转贴 [翻译]Ajax 陷阱(Ajax Gotchas)
- 深入浅出理解索引结构
- tty和console
- javamail 写邮件系统
- 计算机相应硬件和驱动程序的关系
- 基于Hibernate联接MYSQL实现员工信息查询
- OSCache使用指南
- Typesetting Engine_Gecko
- Search Bar On Browser_1
- 数据库设计三大范式应用实例剖析
- 测试组对SSS的几点意见
- 随便说说字符集和编码
- Typesetting Engine_ Presto
- 程旭:CPU方寸上的中国信念