使用maven搭建Hibernate框架(web項目) 1 create table USERS 2 ( 3 ID NUMBER not null primary key, 4 NAME VARCHAR2(50), 5 PASSWORD VARCHAR2(50), 6 TELEPHONE VARCH ...
使用maven搭建Hibernate框架(web項目)
1 create table USERS 2 ( 3 ID NUMBER not null primary key, 4 NAME VARCHAR2(50), 5 PASSWORD VARCHAR2(50), 6 TELEPHONE VARCHAR2(15), 7 USERNAME VARCHAR2(50), 8 ISADMIN VARCHAR2(5) 9 ); 10 create table DISTRICT 11 ( 12 ID NUMBER not null primary key, 13 NAME VARCHAR2(50) not null 14 ); 15 create table HOUSE 16 ( 17 ID NUMBER, 18 USER_ID NUMBER, 19 TYPE_ID NUMBER, 20 TITLE NVARCHAR2(50), 21 DESCRIPTION NVARCHAR2(2000), 22 PRICE NUMBER, 23 PUBDATE DATE, 24 FLOORAGE NUMBER, 25 CONTACT VARCHAR2(100), 26 STREET_ID NUMBER 27 ); 28 29 create table STREET 30 ( 31 ID NUMBER not null primary key, 32 NAME VARCHAR2(50), 33 DISTRICT_ID NUMBER 34 ); 35 create table TYPE 36 ( 37 ID NUMBER not null primary key, 38 NAME VARCHAR2(12) not null 39 ); 40 --主外鍵關係 41 ALTER TABLE HOUSE ADD CONSTRAINT fk_HOUSE_STREET FOREIGN KEY(STREET_ID) REFERENCES STREET (ID); 42 ALTER TABLE HOUSE ADD CONSTRAINT fk_HOUSE_TYPE FOREIGN KEY(TYPE_ID) REFERENCES TYPE (ID); 43 ALTER TABLE HOUSE ADD CONSTRAINT fk_HOUSE_USERS FOREIGN KEY(USER_ID) REFERENCES USERS (ID) ; 44 ALTER TABLE STREET ADD CONSTRAINT fk_DISTRICT_STREET FOREIGN KEY(DISTRICT_ID) REFERENCES DISTRICT(ID); 45 --DISTRICT 46 insert into DISTRICT (ID, NAME) 47 values (1001, '東城'); 48 insert into DISTRICT (ID, NAME) 49 values (1002, '西城'); 50 insert into DISTRICT (ID, NAME) 51 values (1003, '石景山'); 52 insert into DISTRICT (ID, NAME) 53 values (1006, '朝陽'); 54 insert into DISTRICT (ID, NAME) 55 values (1000, '丰台'); 56 insert into DISTRICT (ID, NAME) 57 values (1004, '海澱'); 58 commit; 59 --STREET 60 insert into STREET (ID, NAME, DISTRICT_ID) 61 values (1000, '知春路', 1004); 62 insert into STREET (ID, NAME, DISTRICT_ID) 63 values (1001, '中關村大街', 1004); 64 insert into STREET (ID, NAME, DISTRICT_ID) 65 values (1002, '學院路', 1004); 66 insert into STREET (ID, NAME, DISTRICT_ID) 67 values (1003, '朝陽路', 1006); 68 commit; 69 --USERS 70 INSERT INTO USERS(ID,NAME,PASSWORD,TELEPHONE,USERNAME,ISADMIN) VALUES(1001,'zhangsan','1234','13267089839','張三','是'); 71 INSERT INTO USERS(ID,NAME,PASSWORD,TELEPHONE,USERNAME,ISADMIN) VALUES(1002,'lisi','1234','13267034439','李四','否'); 72 INSERT INTO USERS(ID,NAME,PASSWORD,TELEPHONE,USERNAME,ISADMIN) VALUES(1003,'wangxin','1234','13848879541','王鑫','是'); 73 INSERT INTO USERS(ID,NAME,PASSWORD,TELEPHONE,USERNAME,ISADMIN) VALUES(1004,'zhangjian','1234','13846972541','張建','否'); 74 INSERT INTO USERS(ID,NAME,PASSWORD,TELEPHONE,USERNAME,ISADMIN) VALUES(1005,'lijian','1234','13247965251','李健','是'); 75 INSERT INTO USERS(ID,NAME,PASSWORD,TELEPHONE,USERNAME,ISADMIN) VALUES(1006,'jiangyiran','1234','13445697214','蔣以然','否'); 76 INSERT INTO USERS(ID,NAME,PASSWORD,TELEPHONE,USERNAME,ISADMIN) VALUES(1007,'wangxiaochao','1234','13598248731','王曉超','否'); 77 INSERT INTO USERS(ID,NAME,PASSWORD,TELEPHONE,USERNAME,ISADMIN) VALUES(1008,'zhangdongxue','1234','13869732519','張冬雪','否'); 78 INSERT INTO USERS(ID,NAME,PASSWORD,TELEPHONE,USERNAME,ISADMIN) VALUES(1009,'sunpeng','1234','13299358331','孫鵬'); 79 INSERT INTO USERS(ID,NAME,PASSWORD,TELEPHONE,USERNAME,ISADMIN) VALUES(1010,'jianglianchang','1234','13846937982','蔣連昌','否'); 80 commit; 81 --TYPE 82 insert into TYPE (ID, NAME) 83 values (1000, '一室一廳'); 84 insert into TYPE (ID, NAME) 85 values (1001, '一室兩廳'); 86 insert into TYPE (ID, NAME) 87 values (1002, '兩室一廳'); 88 insert into TYPE (ID, NAME) 89 values (1003, '兩室兩廳'); 90 insert into TYPE (ID, NAME) 91 values (1004, '三室一廳'); 92 insert into TYPE (ID, NAME) 93 values (1005, '三室兩廳'); 94 insert into TYPE (ID, NAME) 95 values (1006, '四室一廳'); 96 insert into TYPE (ID, NAME) 97 values (1007, '四室兩廳'); 98 insert into TYPE (ID, NAME) 99 values (1008, '四十三廳'); 100 commit; 101 --HOUSE 102 INSERT INTO HOUSE(ID,USER_ID,TYPE_ID,TITLE,DESCRIPTION,PRICE,PUBDATE,FLOORAGE,CONTACT,STREET_ID) 103 VALUES(1,1001,1002,'中關村','中關村一條街',2600,to_date('2014-02-14','yyyy-mm-dd'),100,'張三',1000); 104 INSERT INTO HOUSE(ID,USER_ID,TYPE_ID,TITLE,DESCRIPTION,PRICE,PUBDATE,FLOORAGE,CONTACT,STREET_ID) 105 VALUES(2,1002,1003,'蘇州街','蘇州街一條街',3600,to_date('2009-1-3','yyyy-mm-dd'),100,'李四',1001); 106 INSERT INTO HOUSE(ID,USER_ID,TYPE_ID,TITLE,DESCRIPTION,PRICE,PUBDATE,FLOORAGE,CONTACT,STREET_ID) 107 VALUES(3,1003,1004,'萬泉莊','萬泉莊一條街',4600,to_date('2009-1-4','yyyy-mm-dd'),130,'王鑫',1002); 108 INSERT INTO HOUSE(ID,USER_ID,TYPE_ID,TITLE,DESCRIPTION,PRICE,PUBDATE,FLOORAGE,CONTACT,STREET_ID) 109 VALUES(1,1003,1002,'萬泉莊附近','萬泉莊附近一條街',1500,to_date('2009-7-2','yyyy-mm-dd'),125,'張建',1003); 110 INSERT INTO HOUSE(ID,USER_ID,TYPE_ID,TITLE,DESCRIPTION,PRICE,PUBDATE,FLOORAGE,CONTACT,STREET_ID) 111 VALUES(1,1005,1002,'東單','東單很多美食',2700,to_date('2009-9-2','yyyy-mm-dd'),140,'蔣以然',1001); 112 INSERT INTO HOUSE(ID,USER_ID,TYPE_ID,TITLE,DESCRIPTION,PRICE,PUBDATE,FLOORAGE,CONTACT,STREET_ID) 113 VALUES(3,1001,1002,'中關村','中關村電腦城',2600,to_date('2009-4-1','yyyy-mm-dd'),137,'王曉超',1003); 114 INSERT INTO HOUSE(ID,USER_ID,TYPE_ID,TITLE,DESCRIPTION,PRICE,PUBDATE,FLOORAGE,CONTACT,STREET_ID) 115 VALUES(4,1004,1001,'東四','東四一條街',2000,to_date('2009-4-2','yyyy-mm-dd'),200,'王曉超',1002); 116 INSERT INTO HOUSE(ID,USER_ID,TYPE_ID,TITLE,DESCRIPTION,PRICE,PUBDATE,FLOORAGE,CONTACT,STREET_ID) 117 VALUES(5,1006,1003,'西四','西四一條街',3600,to_date('2009-1-2','yyyy-mm-dd'),210,'張冬雪',1003); 118 INSERT INTO HOUSE(ID,USER_ID,TYPE_ID,TITLE,DESCRIPTION,PRICE,PUBDATE,FLOORAGE,CONTACT,STREET_ID) 119 VALUES(5,1007,1002,'西單','西單購物城',3600,to_date('2009-4-2','yyyy-mm-dd'),240,'孫鵬',1001); 120 INSERT INTO HOUSE(ID,USER_ID,TYPE_ID,TITLE,DESCRIPTION,PRICE,PUBDATE,FLOORAGE,CONTACT,STREET_ID) 121 VALUES(6,1002,1002,'蘇州街','蘇州街美食',2600,to_date('2009-2-2','yyyy-mm-dd'),260,'蔣連昌',1000); 122 commit;create.sql
第一步:打開idea
第二步:創建maven項目
第三步:創建項目名稱
第四步:創建完成之後,選中src點擊右鍵選擇Directory創建java文件夾
第五步:選中java點擊右鍵,選中 Mark Diectory as 選擇Sources Root
第六步:選中main點擊右鍵Directory創建resources文件夾
第七步:選中resources點擊右鍵,選中 Mark Diectory as 選擇Sources Root
第八步:點擊 File — Project Structure —Facets,點擊 "+" 選中hibernate
第九步:IDEA連接Oracle數據
1 <?xml version="1.0" encoding="UTF-8"?> 2 3 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 5 <modelVersion>4.0.0</modelVersion> 6 7 <groupId>com.bdqn</groupId> 8 <artifactId>Hid03</artifactId> 9 <version>1.0-SNAPSHOT</version> 10 <packaging>war</packaging> 11 12 <name>Hid03 Maven Webapp</name> 13 <!-- FIXME change it to the project's website --> 14 <url>http://www.example.com</url> 15 16 <properties> 17 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 18 <maven.compiler.source>1.7</maven.compiler.source> 19 <maven.compiler.target>1.7</maven.compiler.target> 20 </properties> 21 22 <dependencies> 23 <dependency> 24 <groupId>junit</groupId> 25 <artifactId>junit</artifactId> 26 <version>4.11</version> 27 <scope>test</scope> 28 </dependency> 29 30 <dependency> 31 <groupId>org.hibernate</groupId> 32 <artifactId>hibernate-core</artifactId> 33 <version>4.0.0.Final</version> 34 </dependency> 35 36 <dependency> 37 <groupId>com.oracle</groupId> 38 <artifactId>ojdbc6</artifactId> 39 <version>10.2.0.1.0</version> 40 </dependency> 41 <dependency> 42 <groupId>javax.servlet</groupId> 43 <artifactId>jstl</artifactId> 44 <version>1.2</version> 45 </dependency> 46 47 <dependency> 48 <groupId>javax.servlet</groupId> 49 <artifactId>javax.servlet-api</artifactId> 50 <version>3.0.1</version> 51 <scope>provided</scope> 52 </dependency> 53 54 <dependency> 55 <groupId>com.fasterxml.jackson.core</groupId> 56 <artifactId>jackson-databind</artifactId> 57 <version>2.8.3</version> 58 </dependency> 59 <dependency> 60 <groupId>org.apache.taglibs</groupId> 61 <artifactId>taglibs-standard-impl</artifactId> 62 <version>1.2.5</version> 63 </dependency> 64 </dependencies> 65 66 67 </project>pom.xml
1 <?xml version='1.0' encoding='utf-8'?> 2 <!DOCTYPE hibernate-configuration PUBLIC 3 "-//Hibernate/Hibernate Configuration DTD//EN" 4 "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> 5 <hibernate-configuration> 6 <session-factory> 7 <property name="connection.driver_class">oracle.jdbc.OracleDriver</property> <!--Oracle 數據驅動--> 8 <property name="connection.url">jdbc:oracle:thin:@127.0.0.1:1521:orcl</property> <!--資料庫路徑--> 9 <property name="connection.username">OT</property> 10 <property name="connection.password">1234</property> 11 <property name="dialect">org.hibernate.dialect.Oracle10gDialect</property><!--資料庫方言--> 12 <property name="show_sql">true</property><!--生成的sql語句--> 13 <property name="format_sql">true</property><!--sql格式化--> 14 <mapping resource="mapping/User.hbm.xml"/> 15 </session-factory> 16 </hibernate-configuration>hibernate.cfg.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" > 3 <hibernate-mapping> 4 <class name="com.bdqn.entity.Users" table="Users"> 5 <id name="id" type="java.lang.Integer" column="id"> 6 <generator class="increment"/> 7 </id> 8 <property name="name" type="java.lang.String" column="NAME"/> 9 <property name="password" type="java.lang.String" column="PASSWORD"/> 10 <property name="telephone" type="java.lang.String" column="TELEPHONE"/> 11 <property name="username" type="java.lang.String" column="USERNAME"/> 12 <property name="isadmin" type="java.lang.String" column="ISADMIN"/> 13 14 </class> 15 </hibernate-mapping>User.hbm.xml
dao層
1 package com.bdqn.dao; 2 3 import com.bdqn.entity.Users; 4 import com.bdqn.page.Page; 5 import java.util.List; 6 7 public interface UserDao { 8 /** 9 * 1.根據用戶名和密碼查詢 10 * 11 * @param sname 12 * @param password 13 * @return 14 */ 15 Users findByNameAndPwd(String sname, String password); 16 17 /** 18 * 2.延時載入:查詢所有 19 * 20 * @return 21 */ 22 List<Users> findAll(); 23 24 /** 25 * 3.保存 26 * 27 * @param stu 28 * @return 29 */ 30 int save(Users stu); 31 32 /** 33 * 4.根據主鍵id查詢單條 34 * 35 * @param sid 36 * @return 37 */ 38 Users findById(Integer sid); 39 40 /** 41 * 5.修改 42 */ 43 int update(Users stu); 44 45 /** 46 * 6.刪除對象 47 * 48 * @param stu 49 * @return 50 */ 51 int delete(Users stu); 52 53 /** 54 * 7.分頁查詢 55 */ 56 List<Users> findPage(Page page); 57 58 /** 59 * 8.查詢總條數 60 */ 61 int getTotalCount(); 62 }UserDao