IDEA maven SSH Oracle 整合實現簡易使用者登入
前言
a)使用maven搭建一個SSH專案(基本的專案框架)
b)實現一個簡易的登入程式,涉及到Oracle12c,Hibernate, Spring, Struts
c)如何使用IDEA2017搭建maven專案
所有的程式碼都可以在 github 下載
一. 前期準備
1)環境
a)安裝IDEA
b)安裝Oracle
二. 建立專案
1)IDEA新建maven專案,相關截圖如下:
2)完善目錄結構,主要完善如下:
2.1)在src/main/java目錄下新建四個包檔案,分別為com.kevin.action, com.kevin.dao, com.kevin.entity, com.kevin.service, com.kevin.util; 建議方式為右擊src/main/java目錄--->New---->Package---->(輸入)com.kevin.action;這四個包檔案主要是用來存放我們的java檔案,其中com.kevin.entity用來存放資料庫對映物件檔案,com.kevin.dao用來存放dao檔案(data access object),com.kevin.service用來存放service檔案(服務類檔案),com.kevin.action用來存放action檔案(供struts2呼叫);這了更好地理解這個目錄結構,這裡補充一下entity, dao ,service, action之間的關係
2.1.1)entity是hibernate對於資料庫表抽象出來的類,它和資料庫中的表是完全對應的;
2.1.2)dao類是針對資料庫進行直接操作(呼叫entity);
2.1.3)service是業務邏輯層(通過呼叫dao層類來進行修改資料庫資料);
2.1.4)action是表示層,控制頁面的跳轉(負責呼叫業務邏輯的服務元件);
具體可以參考 連結
2.2)在src/main目錄下建立一個webapp目錄, 在webapp目錄下建立一個WEB-INF目錄,在WEB-INF目錄再建立web.xml檔案,然後在webapp目錄下建立 css, image, js目錄,再建立index.jsp檔案;這個目錄就是我們的tomcat目錄了;
如下是我們的整體的目錄結構
三. 修改maven的pom.xml
直接修改pom.xml檔案,內容如下
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>cn.eli</groupId> <artifactId>sshTest</artifactId> <version>1.0-SNAPSHOT</version> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <spring.version>3.1.1.RELEASE</spring.version> <hibernate.version>3.6.5.Final</hibernate.version> <struts2.version>2.3.1</struts2.version> </properties> <dependencies> <!-- junit --> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <!-- spring --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-expression</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-orm</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>cglib</groupId> <artifactId>cglib-nodep</artifactId> <version>2.1_3</version> </dependency> <!-- hibernate --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> <version>${hibernate.version}</version> </dependency> <!-- struts2 --> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-core</artifactId> <version>${struts2.version}</version> </dependency> <!--config-browser-plugin外掛,使用了這個外掛之後,就可以很方便的瀏覽專案中的所有action及其與 jsp view的對映 --> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-junit-plugin</artifactId> <version>${struts2.version}</version> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-spring-plugin</artifactId> <version>${struts2.version}</version> </dependency> <!-- 新增對資料來源的支援 --> <dependency> <groupId>c3p0</groupId> <artifactId>c3p0</artifactId> <version>0.9.1.2</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.2</version> <configuration> <webResources> <resource> <directory>src\main\webapp</directory> </resource> </webResources> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> </plugins> <finalName>com</finalName> </build> </project>
四. Java程式碼層面
1)Entity層
1.1)先建立一個Database,位置在IDEA介面的右面點選Database---->點選介面的加號------->Data Source
-----> Mysql---->根據自己的情況進行配置,相關截圖如下:
這裡補充一點,就是在建立自己的 Oracle 的時候,一定要點選裡面的 Test Connection,確認自己的配置是正確的;
其中 Name 不用管(任意),Host 是資料庫的主機名,SID 、User、Password 可在你要使用的資料庫中檢視,檢視方法如下:
開啟 SQL Developer —— 右鍵檢視的資料庫 —— 屬性 —— 左邊選中要檢視的資料庫(system-orcl) —— 右面顯示的是資料庫資訊,其中 SID 就是 IDEA 連線時使用的 SID
1.2)操作 Persistence,自動生成 Entity;我們可以看到在 Idea 介面裡面看不到 Persistence 選項(將滑鼠懸浮在左下角的正方形那裡,截圖如下)
因為一開始使用 maven 來搭建專案,我們並沒有顯示引入 hibernate,所以沒有 Persistence 介面,所以我們作如
下操作來顯示加入 Hibernate; 點選 File -----> Project Structure ------> Modules -----> 點選+ -------->
選擇 Hibernate(如果此處沒有 Hibernate 選項,到 File —— Settings —— Plugins —— Hibernate Support
後面的框勾選 —— 重啟後就可以了) ------> Apply ------>OK; 看介面,我們可以看到 Persistence 出現了,
截圖如下:
1.3)配置 applicationContext.xml,applicationContext.xml 是 spring 的配置檔案,因為在這個專案中我們需要讓 spring 接管 Hibernate 的配置工作,所以我們直接建立 applicationContext.xml 檔案並配置資料庫資訊, 為了方便資料庫資訊的管理,我們同時建立 db.properties。所以我們的操作是在 src/main/resources 下面建立兩個檔案,一個是 applicationContext.xml,一個是 db.properties;
1.3.1) db.properties檔案內容如下(是 Oracle 資料庫的配置資訊)
database.database=oracle
database.driverClassName=oracle.jdbc.driver.OracleDriver
database.username=xxx
database.password=xxx
database.show_sql=true
database.url=jdbc:oracle:thin:@localhost:1521:orcl
1.3.2)applicationContext.xml內容如下
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">
<!-- 引入資料庫配置檔案 db.properties -->
<context:property-placeholder location="classpath:db.properties" />
<!--<bean id="placeholderConfig"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>classpath:db.properties</value>
</property>
</bean>-->
<!-- 使用annotation -->
<context:annotation-config/>
<!-- 使用annotation自動註冊bean,並檢查@Controller, @Service, @Repository註解已被注入 -->
<context:component-scan base-package="cn.eli.action"/>
<context:component-scan base-package="cn.eli.service"/>
<context:component-scan base-package="cn.eli.dao" />
<!-- data connection setting -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${database.driverClassName}"></property>
<property name="jdbcUrl" value="${database.url}"></property>
<property name="user" value="${database.username}"></property>
<property name="password" value="${database.password}"></property>
<!-- 設定資料庫連線池的最大連線數 -->
<property name="maxPoolSize">
<value>50</value>
</property>
<!-- 設定資料庫連線池的最小連線數 -->
<property name="minPoolSize">
<value>5</value>
</property>
<!-- 設定資料庫連線池的初始化連線數 -->
<property name="initialPoolSize">
<value>5</value>
</property>
<!-- 設定資料庫連線池的連線最大空閒時間 -->
<property name="maxIdleTime">
<value>20</value>
</property>
<!-- c3p0快取Statement的數量數 -->
<property name="maxStatements">
<value>50</value>
</property>
<!-- 當連線池裡面的連線用完的時候,C3P0一下獲取新的連線數 -->
<property name="acquireIncrement">
<value>20</value>
</property>
</bean>
<!-- hibernate 管理-->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
<!-- 引用上面設定的資料來源 -->
<property name="dataSource">
<ref bean="dataSource" />
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</prop>
<prop key="hibernate.autoReconnect">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
<!-- 解決session關閉問題 -->
<prop key="hibernate.enable_lazy_load_no_trans">true</prop>
<prop key="current_session_context_class">thread</prop>
<prop key="hibernate.cache.provider_class">org.hibernate.cache.HashtableCacheProvider</prop>
<prop key="hibernate.max_fetch_depth">3</prop>
<prop key="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:orcl</prop>
<prop key="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</prop>
</props>
</property>
<!-- 包掃描的方式載入註解類 -->
<property name="packagesToScan">
<list>
<value>cn.eli.entity</value>
</list>
</property>
</bean>
<!-- 用註解來實現事物管理 -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true"/>
</beans>
上面是這個專案完成的pom.xml檔案,在這一步主要要配置的是 dataSource 這個 bean 和 sessionFactory 這個bean 這裡有一個要注意的,我們剛建立 applicationContext.xml 的時候,會在編輯介面出現一個黃條,如下
這個時候我們要點選“Configure application context”然後編輯,apply
注1:如果在上面的操作中找不到黃條,並且無法看到下面的sessionFactory檔案,不要急接著往下看,注2
1.4) 生成 Entity 類;這個時候,如果上面正確的話,點選 Persistence,會出現如下的介面:
我們右擊sessionFactory--->Generate Persistence Mapping----> By Database Schema; 在Import Database Schema介面進行如下的選擇:
成功的話,可看我們src/main/java/com/kevin/entity下面應該有一個User類
注2:我在這裡使用 Persistence 生成實體類,始終建立不了,因為沒有sessionFactory檔案,
在建立時缺少 Add to Session Factory
我的辦法是建立一個 hibernate.cfg.xml,操作如下
就會生成相應的實體類,實體類生成後將 hibernate.cfg.xml 檔案刪除即可
2) DAO層程式碼
為了程式碼的可拓展性,我們把實現與定義分離;在src/main/java/com/kevin/dao下面再建立一個impl包,存放介面的實現類;在dao目錄下新建一個UserDao.java介面類(記住是介面,在選擇型別的時候要選擇介面), 在impl放這個介面的實現類,UserDaoImpl.java
UserDao.java檔案內容
- package com.kevin.dao;
- import com.kevin.entity.User;
- import java.util.List;
- /**
- * Created by kinthon on 17-6-23.
- */
- publicinterface UserDao {
- /**
- * 新增並儲存使用者
- * @param user
- */
- publicvoid add(User user);
- /**
- * 進行登入
- */
- publicboolean login(User user);
- /**
- * 獲取使用者列表
- */
- public List getUser();
- /**
- * 根據使用者Id獲取使用者資訊
- * @param id
- * @return
- */
- public User getUser(int id);
- /**
- * 更新使用者資訊
- * @param user
- */
- publicvoid update(User user);
- /**
- * 根據使用者id刪除使用者資訊
- * @param id
- */
- publicvoid delete(int id);
- }
UserDaoImpl.java 內容
- package com.kevin.dao.impl;
-
相關推薦
IDEA maven SSH Oracle 整合實現簡易使用者登入
前言 a)使用maven搭建一個SSH專案(基本的專案框架) b)實現一個簡易的登入程式,涉及到Oracle12c,Hibernate, Spring, Struts c)如何使用IDEA2017搭建maven專案所有的程式碼都可以在
【原】無腦操作:IDEA + maven + SpringBoot + JPA + Thymeleaf實現CRUD及分頁
xtend sla lns ase tid item pen element per 一、開發環境: 1、windows 7 企業版 2、IDEA 14 3、JDK 1.8 4、Maven 3.5.2 5、MariaDB 6、SQLYog 二、Maven設
Maven+SpringMVC+CXF整合實現webservice服務的釋出與呼叫
今天有時間把之前遺留的內容給寫一下,一直想把webservice服務的釋出整合說一下,但是總是忘記了,最近有做了一些關於這一塊的東西,就總結下,來記錄一下。 簡述: WebService開源框架的選擇, 目前主流的Web Service框架主要有3種: Axis 2, CX
【原】無腦操作:IDEA + maven + SpringBoot + JPA + EasyUI實現CRUD及分頁
1 package cn.temptation.web; 2 3 import cn.temptation.dao.PersonDao; 4 import cn.temptation.model.Person; 5 import cn.temptation.util.Type
Maven SSH初步整合
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-ins
(一)git生成ssh-key,實現免密碼登入github
一 、 切到當前使用者的根目錄,右鍵選擇git bash,設定Git的user name和email: git config --global user.name "這裡換上你的使用者名稱" git config --global user.email "這裡換上你的郵箱"
ORACLE 11g 實現審計使用者登入登出的詳細記錄
需求就是需要記錄使用者登陸登出的記錄,包括時間以及連線ip地址以及連線方式等等,這樣有助於跟蹤分析問題,特別是一些人為無意識的dml操作導致資料丟失、資料混亂的問題追蹤,還是非常有效的。大家知道oracle庫開啟了審計audit後,肯定有辦法查到問題,但是審計比較消耗資源,所
ssh-keygen和ssh-copy-id實現免密登入遠端主機
ssh免密登入在實際工作中有重要的作用,甚至有的應用部署也必須要免密登入遠端主機,例如hadoop環境搭建。 免密登入,需要先在本機生成公鑰,然後將公鑰拷貝到遠端主機,拷貝的過程,既可以手動(在遠端主機根目錄下建立.ssh目錄,然後將公鑰存入該目錄下
Windows使用SSH Secure Shell實現免密碼登入Linux的方法以及使用scp2命令免密碼下載檔案
1. 環境資訊 SSH Secure Shell Client所在的作業系統: Windows7 Linux伺服器以及SSH的版本: [[email protected] ~]$ cat /etc/redhat-release Red HatEnterpr
在Android中實現簡易的登入介面
Mainactivity佈局檔案 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res
Linux使用ssh公鑰實現免密碼登入Linux
[[email protected] ~]# ssh -l root 192.168.1.181The authenticity of host '192.168.1.181 (192.168.1.181)' can't be established.RSA key fingerprint is
SSM框架整合-實現CRUD,登入和分頁操作
二.專案結構:spring+springmvc+mybatis+maven+mysql+freemark+jetty 三.專案介紹:主要實現登入 crud以及分頁效果 1.登入介面 2.主頁 3.新增頁面 4.編輯頁面 四.搭建 1)準備配置
Spring MVC 學習總結(十一)——IDEA+Maven+多模組實現SSM框架整合
一、SSM概要 與SSH(Struts/Spring/Hibernate/)一樣,Spring+SpringMVC+MyBatis也有一個簡稱SSM,Spring實現業務物件管理,Spring MVC負責請求的轉發和檢視管理, MyBatis作為資料物件持久化引擎。這樣搭配的優點是:輕量、自由度高、Spri
Struts2+Spring+Hibernate實現員工管理增刪改查功能(一)之ssh框架整合
pri support scrip ext ack efault ring src 兩張 前言 轉載請標明出處:http://www.cnblogs.com/smfx1314/p/7795837.html 本項目是我寫的一個練習,目的是回顧ssh框架的整合以及
01 整合IDEA+Maven+SSM框架的高並發的商品秒殺項目之業務分析與DAO層
初始 lob 可能 很多 ont 配置 支持 個數 base 作者:nnngu 項目源代碼:https://github.com/nnngu/nguSeckill 這是一個整合IDEA+Maven+SSM框架的高並發的商品秒殺項目。我們將分為以下幾篇文章來進行詳細的講解:
02 整合IDEA+Maven+SSM框架的高並發的商品秒殺項目之Service層
狀態 enum枚舉類 post note 序號 設計 發的 連接數據庫 解釋 作者:nnngu 項目源代碼:https://github.com/nnngu/nguSeckill 首先在編寫Service層代碼前,我們應該首先要知道這一層到底是幹什麽的。 Service層
Maven-ssh整合pom.xml
SSH整合所需的jar包的pom.xml <!-- 屬性 --> <properties> <spring.version>4.2.4.RELEASE</spring.version> <hibernate.version&
使用jenkins實現自動化部署的案例記錄:tomcat+svn+maven+ssh+jenkins
使用jenkins實現自動化部署的案例記錄:tomcat+svn+maven+ssh+jenkins 1.全域性配置,配置專案對應的tomcat伺服器的ssh登入地址,埠,密碼,路徑(寫/即可) 2.2-系統maven配置 3.構建一個maven風格的專案,選擇jdk版本
使用Intellij IDEA在maven專案中整合mybatis-generator外掛,自動生成程式碼
1.在dependencies下新增: <dependency> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-core</artif
IDEA+maven+java+TestNG+git+jenkins 第八篇自動化的持續整合
1、安裝JDK,設定環境變數,這裡就不講了網上都有教程; 2、新建一個maven專案,編寫程式,這裡也不講了前面七篇講過了; 3、安裝jenkins,也很簡單,可以直接安裝在windwos系統上也可安裝到tomcat中還可以安裝到應用伺服器中; 4、在jenkins中安裝相應的外掛,主要