- package Explorer
- Message.java
- Reply.java
- User.java
- HibernateCasei.java
- TestHibernate.java
- TestMessage.java
- MySessionFactory.java
- hibernate.cfg.xml
如需转载本网站内容,请标明转载来源,且保持作品完整性
package Explorer
bbs_hibernate src com.bbs.bean Message.java Reply.java User.java com.bbs.test HibernateCase.java TestHibernate.java TestMessage.java com.bbs.util MySessionFatory.java hibernate.cfg.xml JRE System Library Referenced Libraries JUnit 4 lib
Message.java
package com.bbs.bean;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
/**
* 留言持久化类
* @author ZealerDrm
*
*/
@Table(name="t_message")
@Entity
public class Message {
private int msgid;
//userid 外键关联; 在orm里,是映射的一个对象
//@ManyToOne
private User user;
private String msgtopic;
private String msgcontents;
private String msgtime;
private String msgip;
@Id
@GeneratedValue(strategy=GenerationType.AUTO) //策略,自动适应底层数据库
public int getMsgid() {
return msgid;
}
@JoinColumn(name="userid",nullable=false)
@ManyToOne
public User getUser() {
return user;
}
public void setUser(User user){
this.user = user;
}
@Column(name="msgtopic")
public String getMsgtopic() {
return msgtopic;
}
@Column(name="msgcontents")
public String getMsgcontents() {
return msgcontents;
}
@Column(name="msgtime")
public String getMsgtime() {
return msgtime;
}
@Column(name="msgip")
public String getMsgip() {
return msgip;
}
public void setMsgid(int msgid) {
this.msgid = msgid;
}
public void setMsgtopic(String msgtopic) {
this.msgtopic = msgtopic;
}
public void setMsgcontents(String msgcontents) {
this.msgcontents = msgcontents;
}
public void setMsgtime(String msgtime) {
this.msgtime = msgtime;
}
public void setMsgip(String msgip) {
this.msgip = msgip;
}
}
Reply.java
package com.bbs.bean;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
/**
* 回复信息表,对应t_reply表
* @author Administrator
*
*/
@Entity //
@Table(name="t_reply")
public class Reply implements Serializable{
private int replyid; //回复id
// 多对一 回复对应帖子主体
//改造----private int msgid; // 回复的留言的id
private Message message;
// 多对一 回复对应一个用户
//private int userid; // 回复用户id
private User user;
private String replycontents; // 回复内容
private String replytime; // 回复时间
private String replyip; // 回复ip
@Id //主键
@GeneratedValue(strategy = GenerationType.AUTO)//策略,自动适应底层数据库
public int getReplyid() {
return replyid;
}
@ManyToOne
@JoinColumn(name="msgid", nullable=false)
public Message getMessage() {
return message;
}
@ManyToOne
@JoinColumn(name="userid", nullable=false)
public User getUser() {
return user;
}
@Column(name="replycontents",nullable=false,length=30)
public String getReplycontents() {
return replycontents;
}
@Column(name="replyip",nullable=false,length=30)
public String getReplyip() {
return replyip;
}
@Column(name="replytime",nullable=false,length=30)
public String getReplytime() {
return replytime;
}
public void setMessage(Message replyMessage) {
this.message = replyMessage;
}
public void setUser(User replyUser) {
this.user = replyUser;
}
public void setReplyid(int replyid) {
this.replyid = replyid;
}
public void setReplycontents(String replycontents) {
this.replycontents = replycontents;
}
public void setReplyip(String replyip) {
this.replyip = replyip;
}
public void setReplytime(String replytime) {
this.replytime = replytime;
}
}
User.java
package com.bbs.bean;
import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
/**
* 用户实体类,持久化类
* @author ZealerDrm
*
*/
@Table(name="t_user")
public class User{
//对应数据库中的表t_user。
private int userid;
private String username;
private String password;
private String sex;
private String hobbys;
private String birthday;
private String city;
private String email;
private String qq;
private String createtime;
private String userAddress;
private int userAge;
//@Column(name="userid")
@Id
@GeneratedValue(strategy=GenerationType.AUTO) //策略,自动适应底层数据库
public int getUserid() {
return userid;
}
@Column(name="username")
public String getUsername() {
return username;
}
@Column(name="password")
public String getPassword() {
return password;
}
@Column(name="sex")
public String getSex() {
return sex;
}
@Column(name="hobbys")
public String getHobbys() {
return hobbys;
}
@Column(name="birthday")
public String getBirthday() {
return birthday;
}
@Column(name="city")
public String getCity() {
return city;
}
@Column(name="email")
public String getEmail() {
return email;
}
@Column(name="qq")
public String getQq() {
return qq;
}
@Column(name="createtime")
public String getCreatetime() {
return createtime;
}
public String getUserAddress() {
return userAddress;
}
public int getUserAge() {
return userAge;
}
public void setUserid(int userid) {
this.userid = userid;
}
public void setUsername(String username) {
this.username = username;
}
public void setPassword(String password) {
this.password = password;
}
public void setSex(String sex) {
this.sex = sex;
}
public void setHobbys(String hobbys) {
this.hobbys = hobbys;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
public void setCity(String city) {
this.city = city;
}
public void setEmail(String email) {
this.email = email;
}
public void setQq(String qq) {
this.qq = qq;
}
public void setCreatetime(String createtime) {
this.createtime = createtime;
}
public void setUserAddress(String userAddress) {
this.userAddress = userAddress;
}
public void setUserAge(int userAge) {
this.userAge = userAge;
}
}
HibernateCasei.java
package com.bbs.test;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import com.bbs.bean.Message;
import com.bbs.util.MySessionFactory;
import junit.framework.TestCase;
/**
* 单元测试
* @author ZealerDrm
*
*/
public class HibernateCase extends TestCase{
SessionFactory sessionFactory = MySessionFactory.getSessionFactory();
public void testSum(){
int s = 1 + 2;
assertEquals(3, s); // 预期结果是3,实际结果是3
}
public void testGetMessage(){
Session session = sessionFactory.openSession();
//执行查询
Message message = (Message)session.get(Message.class,70);
//关闭
session.close();
System.out.println(message.getMsgtopic());
assertEquals("1",message.getMsgtopic());
}
public static void main(String[] args) {
Session session = MySessionFactory.getSessionFactory().openSession();
//执行查询
Message message = (Message)session.get(Message.class,70);
//关闭
session.close();
System.out.println(message.getMsgtopic());
}
}
TestHibernate.java
package com.bbs.test;
import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistry;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
/**
* 测试Hibernate
* @author ZealerDrm
*
*/
public class TestHibernate {
public static void main(String[] args){
//读取 Hibernate 配置文件及信息
Configuration config = new Configuration().configure();
//通过初始化、加载、获取一个server服务(hibernate4.0)
StandardServiceRegistry registryService =
new StandardServiceRegistryBuilder()
.applySettings(config.getProperties())
.build();
//生成sessionfactory
SessionFactory sessionFactory =
config.buildSessionFactory(registryService);
//用读取的配置信息生成 SessionFactory 对象
System.out.println(sessionFactory);
//从 SessionFactory 对象获取一个 Session 对象
//用 Session 对象生成事务
//通过 Session 对象的方法进行操作
//提交或回滚事务
//释放 session and session factory 资源
}
}
TestMessage.java
package com.bbs.test;
public class TestMessage {
public static void getMessage(){
}
public static void saveMessage(){
}
public static void getUser(){
}
public static void saveUser(){
}
public static void getReply(){
}
public static void saveReply(){
}
public static void main (String[] args){
getMessage();
saveMessage();
getUser();
saveUser();
getReply();
saveReply();
}
}
MySessionFactory.java
package com.bbs.util;
import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistry;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
/**
* session 工厂类,单例模式
* @author ZealerDrm
*
*/
public class MySessionFactory {
private static SessionFactory sessionFactory;
static{
Configuration config = new Configuration().configure();
StandardServiceRegistry registry
= new StandardServiceRegistryBuilder()
.applySettings(config.getProperties()).build();
//给sessionFactory赋值
if(sessionFactory==null){
sessionFactory = config.buildSessionFactory(registry);
}
}
private MySessionFactory(){}
public static SessionFactory getSessionFactory(){
return sessionFactory;
}
}
hibernate.cfg.xml
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- 数据库连接 -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/db_bbs</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<!-- 方言dialect -->
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="current_session_context_class">thread</property>
<!-- 连接池Jdbc connection pool C3P0-->
<property name="connection.pool_size">1</property>
<!-- 是否显示sql语句Echo all executed SQL to stdout -->
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<property name="hbm2ddl.auto">update</property>
<!-- 映射文件配置,配置文件名必须包含其相对于根的全路径 -->
<mapping class="com.bbs.bean.User" />
</session-factory>
</hibernate-configuration>