亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? jpa入門.txt

?? jpa的入門文章
?? TXT
字號:
JPA日志:The logging utility is based on the java.util.logging. This utility provides you with nine levels of logging control over the amount and detail of the log output. Note that, as logging is not part of the JPA specification, the information the log output provides is TopLink JPA-specific.
要培植在persistence.xml中
<property name="toplink.logging.level" value="FINE" /> 

一、課程目標
  ORM概念
  JPA入門

二、引入持久化
    well框架是怎么樣寫的呢?dao/db/po,數據是怎么樣保存到數據庫中去的呢?dao.save(po)方法,其中save方法是用sql保存進去的。
    這個就叫持久化,持久(Persistence),即把數據(如內存中的對象)保存到可永久保存的存儲設備中(如磁盤)。持久化的主要應用是將內存中的數據存儲在關系型的數據庫中。
    持久化還有哪些技術呢?
    1. jdbc,well框架中用過
    2. io流,將對象寫到文件中去,當然也可以存儲在磁盤文件中、XML數據文件中等等。
    
三、什么叫持久層呢
    與持久化相關的一個概念就是持久層,處理持久化的一個邏輯層面。它是由多個類與接口組成的,目的就是實現持久化。譬如我們的well框架的數據層就是持久層。
    
四、ORM。
  1. 持久層的煩惱
    關系型數據庫中的數據基本都是以一行行的數據進行存取的,而程序運行卻是一個個對象進行處理,jjdbc保存時,就得把VO對象變成insert語句插入,查詢時,又要將結果集ResultSet組裝成VO對象。所以為解決這一困難,就出現 ORM 這一個對象和數據之間映射技術。
  2. 概念
    ORM-Object/Relational Mapper
    即“對象-關系型數據映射組件”。對于O/R,即 Object(對象)和 Relational(關系型數據),表示必須同時使用面向對象和關系型數據進行開發。
  3. 原理
    面向對象概念	面向關系概念
	類		表
	對象		記錄
	屬性		字段
	屬性		主鍵
  4. 優點 
    不用寫sql對數據進行操作,直接對對象進行操作
    不用寫復雜的sql,用映射可以方便處理表與表之間的關系。
    靈活性,改表與字段不用改程序。
  5. orm的實現方式有兩種:
    映射文件、注釋。哪個更好呢?
    中小型項目100張表左右,或者開發團中無專人做映射,安全性高的用注釋
    否則用映射文件
  6. 常用框架
    映射文件:Hibernate
    注釋:JPA,EJB

五、JPA介紹
  1. 概念
    JPA(Java Persistence API),是JavaEE企業級應用規范,是開源的,基于ORM的用于實現數據的持久化。  作為Java EE 5.0平臺標準的ORM規范,將得到所有Java EE服務器的支持。
    Sun這次吸取了之前EJB規范慘痛失敗的經歷,在充分吸收現有ORM框架的基礎上,得到了一個易于使用、伸縮性強的ORM規范。從目前的開發社區的反應上看,JPA受到了極大的支持和贊揚,JPA作為ORM領域標準化整合者的目標應該不難實現。
    Sun引入新的JPA ORM規范出于兩個原因:
      其一,簡化現有Java EE和Java SE應用的對象持久化的開發工作;
      其二,Sun希望整合對ORM技術,實現天下歸一。  
  2. glassfish介紹
    需要j2ee服務器的支持,到目前為止,有哪些j2ee服務器呢?Tomcat/Resin/JBOSS/GlassFish/WAS/WLS
   由SUN公司的GlassFish社團開發,Glassfish JPA - 一個基于 Oracle’s TopLink ORM framework 的開源項目。GlassFish(水晶魚)是一個免費、開放源代碼的應用服務,它實現了Java EE 5。 Java EE 5 平臺包括了以下最新技術:EJB 3.0,JSF 1.2,Servlet 2.5,JSP 2.1,JAX-WS 2.0,JAXB 2.0, Java Persistence 1.0, Common Annonations 1.0, StAX 1.0 等。

   GlassFish雖然是一個標準的Java EE服務器,但是它同樣具有輕便的Web容器的優點,它和Tomcat一樣是優秀的Servlet容器,同時,它具備延遲加載的功能,也就是說, GlassFish在啟動時只會啟動一些必需的核心服務項,如Local JNDI服務,用于管理的JMX服務等,而對于暫時用不到的服務通通不予加載,直到需要的時候再說,而且這個特性不需要額外的配置。這樣 GlassFish的啟動時間是以前的一半,內存占用也只有以前的一半。
   GlassFish的另外一個秘密武器,就是Grizzly,Grizzly是一個基于Java NIO(New IO)技術,并完全以Java實現的一個HTTP的Listener,有了Grizzly,GlassFish在靜態文件傳輸方面的性能比Tomcat要 強得多,而且可以支持更多的并發訪問。我們可以拋棄JBoss+Tomcat和Apache+Tomcat這樣的組合了。

  3. 下載: 
    JDK 5.0. http://java.sun.com/j2se/1.5.0/download.jsp
    Java EE 5.0 App Server: https://glassfish.dev.java.net/public/downloadsindex.html; http://java.net/download/javaee5/v2_branch/promoted/WINNT/glassfish-installer-v2-b58g.jar
  
  4. 安裝
    1)設置環境變量
	GLASSFISH_HOME=D:\Program\glassfish    
	path=%GLASSFISH_HOME%\bin
    2) java -jar *.jar 可安裝,此時解壓出一個目錄
    3) ant -f f:\glassfish\setup.xml 再編譯
       D:\Program\glassfish\lib\ant\bin下自帶了一個ant
    4) 系統默認的 administration 屬性值有: 
	domain.name="domain1" 
	instance.name="server" 
	admin.user="admin" 
	admin.password="adminadmin" 
	admin.port="4848" 
	instance.port"="8080" 
	orb.port="3700" 
	imq.port="7676" 
	https.port="8181" 
  
  5. 啟動與停止
    $GLASSFISH_HOME/bin/asadmin start-domain domain1
                      asadmin stop-domain domain1 
  6. 配置與myEclipse的連接
   一切按默認配置后,啟動,報幾個jar沒有找到,沒關系,在GlassFish1-paths-Append to ClassPath中導入javaee.jar/jmac-api.jar即可。這兩個jar包位于glassfish\lib下。
  7. 訪問
  web應用目錄:http://localhost:8080/
  管理控制臺:http://localhost:4848/  用戶名:密碼=admin:adminadmin

  8. 部署應用程序
  拷貝 hello.war domains/domain1/autodeploy/
  訪問:http://localhost:8080/hello/index.jsp
  也可用命令:
    asadmin deploy jpa.war
    asadmin undeploy h.war
  部署出錯,要訪問日志文件:
    D:\Program\glassfish\domains\domain1\logs\server.log

六. Derby數據庫
  Glassfish App Server捆綁了一個數據庫叫Derby,是一個理想的,并且開源的,100% Java編寫的,容易管理的關系數據庫管理系統,它可以和一些商業產品的特性進行交付。這篇文章是關注Apache Derby項目

  配置環境變量:    
    DERBY_HOME=D:\Program\glassfish\javadb
    PATH=%DERBY_HOME%\bin

  啟動命令是: $GLASSFISH_HOME/bin/asadmin start-database   --不要加;
  停止命令是:$GLASSFISH_HOME/bin/asadmin stop-database

  創建一個叫accp數據庫,并建立連接
   ij> connect 'jdbc:derby://localhost:1527/accp;create=true';
  然后運行建表語句的sql文件
   ij> run 'abc.sql';
  直接建表,sql通用
    SHOW SCHEMAS;
    SHOW [ TABLES | VIEWS | PROCEDURES | SYNONYMS ] { IN schema }
    DESCRIBE name;

七、javaSe開發
   1. 新建java項目
      導入javaee.jar,jmac-api.jar,toplink-essentials.jar,toplink-essentials-agent.jar,derbyclient.jar
   2. 建庫建表
     asadmin start-database
     ij> connect 'jdbc:derby://localhost:1527/accp;create=true';
     create table users(pk1 int not null primary key , userid varchar(20), PASSWORD varchar(20));
     show tables;
     show tables in app;
     descrbite user;

   3. 寫個普通的javaBean
	@Entity
	@Table(name="users")
	//上面兩句可以寫成一句@Entity(name="users")
	 public class User implements Serializable {
	 private int pk1;
	 private String userid;
	 private String password;
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(name = "pk1")
	public int getPk1() {
		return pk1;
	}
	public void setPk1(int pk1) {
		this.pk1 = pk1;
	}
	@Column(name = "userid")
	public String getUserid() {
		return userid;
	}
	public void setUserid(String userid) {
		this.userid = userid;
	}
	}
   4. 寫個UserDao
        public class UserDao {
	//Apache Derby數據庫提供2類JDBC驅動程序:Embedded 
	//Driver(org.apache.derby.jdbc.EmbeddedDriver)和Client/Server 
	//Driver(org.apache.derby.jdbc.ClientDriver)
	private static final EntityManagerFactory emf; 
	private static EntityManager em;
	static {
	//為了提升軟件的執行效率,我們通常選擇在某一個范圍內緩存 EntityManagerFactory 對象。在 EntityManagerFactory 使用完后,我們需要調用它的 close 方法來釋放相應的資源。
		emf = Persistence.createEntityManagerFactory("aa"); 
		//使用完后,也需要關閉em.close();永遠不要對注入的EntityManager實例調用close()方法,清除工作是應用服務器的任務。如果你手工關閉entity manager,則會導致IllegalStateException異常。
		if (em == null) 
			em = emf.createEntityManager();
	}
	public void close() {
	  em.close();
	  emf.close();
	}
	  //主鍵查詢
	  public void find(int uid){
	     User u = em.find(User.class, uid);
	     System.out.println(u.getUserid()+"\t"+u.getPassword());	     
	  }
	  //保存
	  public void persist(User u) {
		em.getTransaction().begin();
		em.persist(u);
		em.getTransaction().commit();
	  } 
	  //刪除
	  public void remove(int uid) {
		User u = em.find(User.class, uid);
		em.getTransaction().begin();
		em.remove(u);
		em.getTransaction().commit();
	  } 
	  //更新
	  public void merge(int uid) {
		User u = em.find(User.class, uid);
		u.setPassword("888");
		em.getTransaction().begin();
		em.merge(u);
		em.getTransaction().commit();
	  } 
	  //查找所有的
	  @SuppressWarnings("unchecked")
		public void findAll() {
			String sql = "select u from User u";
			List<User> list = em.createQuery(sql).getResultList();
			for(User u : list) 
				System.out.println(u.getUserid()+"\t"+u.getPassword());
		}
	public static void main(String[] args) {
	  try{
		UserDao udao = new UserDao();
		//udao.find(1);
		User u = new User();
		u.setUserid("abc");
		u.setPassword("123");
		u.setPk1(3);
		//udao.persist(u);
		//udao.remove(3);
		//udao.merge(3);
		udao.findAll();
	   }finally{
		udao.close();
	   }
	}
   5. 在java項目中新建META-INF目錄,再新建persistence.xml
	<?xml version="1.0" encoding="UTF-8"?>
	<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
	  <persistence-unit name="aa">
	    <provider>oracle.toplink.essentials.PersistenceProvider</provider>
		<class>org.accp.User</class>
		<properties>
			<property name="toplink.jdbc.driver" value="org.apache.derby.jdbc.ClientDriver" />
			<property name="toplink.jdbc.url" value="jdbc:derby://localhost:1527/accp;create=true" />
			<property name="toplink.jdbc.user" value="app" />
			<property name="toplink.jdbc.password" value="app" />
		</properties>
	  </persistence-unit>
	</persistence>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人在线视频免费播放| 亚洲嫩草精品久久| 精品中文字幕一区二区| 欧美一区二区三区人| 老司机一区二区| 久久人人爽爽爽人久久久| 成人综合婷婷国产精品久久免费| 久久精品一区蜜桃臀影院| 不卡高清视频专区| 一区二区三区日韩在线观看| 欧美卡1卡2卡| 国模套图日韩精品一区二区| 中文字幕制服丝袜一区二区三区| 久久综合视频网| 成人涩涩免费视频| 亚洲最大的成人av| 日韩欧美国产精品一区| 国产精品99久| 亚洲国产欧美在线人成| 欧美电影精品一区二区 | 亚洲高清三级视频| 日韩欧美黄色影院| 北条麻妃国产九九精品视频| 亚洲午夜免费电影| 国产日韩欧美制服另类| 欧美午夜在线一二页| 九九热在线视频观看这里只有精品| 国产精品视频第一区| 在线观看av一区| 国产福利一区在线| 午夜成人免费视频| 中文字幕一区二区5566日韩| 欧美日本国产一区| 成人激情动漫在线观看| 七七婷婷婷婷精品国产| 中文字幕亚洲成人| 精品国产伦一区二区三区观看方式 | 国产大陆a不卡| 一区二区三区色| 国产亚洲精品精华液| 欧美美女一区二区在线观看| 丁香婷婷综合色啪| 麻豆精品视频在线观看视频| 亚洲男人天堂av网| 欧美激情一区二区三区| 日韩欧美中文字幕精品| 欧美日韩综合一区| 99久久婷婷国产综合精品电影| 久久国产精品色| 日韩va欧美va亚洲va久久| 亚洲色图.com| 日本一区二区三区电影| 日韩免费观看高清完整版在线观看| 91成人在线精品| 白白色 亚洲乱淫| 国产精品综合网| 久草热8精品视频在线观看| 亚洲国产日韩a在线播放| ●精品国产综合乱码久久久久 | 久久99精品视频| 日韩在线一二三区| 亚洲在线观看免费视频| 成人免费一区二区三区视频| 欧美激情自拍偷拍| 国产视频一区不卡| xfplay精品久久| 精品国产乱码久久久久久久久| 正在播放亚洲一区| 欧美日韩国产三级| 91麻豆精品国产91久久久资源速度| 一本大道av一区二区在线播放| 成人免费毛片片v| 成人午夜免费视频| 波多野结衣在线一区| 成人app在线| 色噜噜狠狠色综合欧洲selulu| 色综合久久综合中文综合网| 一本在线高清不卡dvd| 色综合久久综合网97色综合 | 欧美主播一区二区三区| 色欧美日韩亚洲| 在线观看不卡一区| 欧美日韩一区二区欧美激情 | 蜜乳av一区二区| 极品尤物av久久免费看| 激情亚洲综合在线| 国产精品538一区二区在线| 国产成人av一区二区三区在线| 在线观看91av| 欧美一区二区三区男人的天堂| 精品欧美一区二区在线观看| 精品国产一二三| 欧美国产日韩在线观看| 自拍偷拍亚洲欧美日韩| 亚洲最大成人网4388xx| 蜜桃视频第一区免费观看| 极品瑜伽女神91| 成人短视频下载| 91国产成人在线| 日韩欧美在线影院| 欧美国产禁国产网站cc| 亚洲精品视频在线| 午夜国产不卡在线观看视频| 久久精品国产免费| 99久久综合国产精品| 欧美喷水一区二区| 久久久久国产成人精品亚洲午夜| 一区在线中文字幕| 日韩精品一级中文字幕精品视频免费观看| 蜜臀91精品一区二区三区 | 91在线免费看| 欧美浪妇xxxx高跟鞋交| 国产欧美综合在线| 亚洲成人免费观看| 国产精品亚洲а∨天堂免在线| 色综合久久综合网欧美综合网| 欧美区一区二区三区| 日本一区二区不卡视频| 亚洲国产精品一区二区久久恐怖片| 久久精品国产精品青草| 99国产精品国产精品久久| 91精品麻豆日日躁夜夜躁| 国产精品看片你懂得| 美女看a上一区| 日本韩国一区二区三区视频| 亚洲精品在线观看网站| 亚洲精品中文在线观看| 国产一区二区三区日韩| 欧美日韩在线直播| 国产精品女主播av| 久久精品国产亚洲高清剧情介绍| 99v久久综合狠狠综合久久| 精品久久人人做人人爰| 亚洲一二三区在线观看| 成人免费视频一区二区| 精品日韩在线一区| 亚洲午夜成aⅴ人片| jizzjizzjizz欧美| 久久美女艺术照精彩视频福利播放| 亚洲v精品v日韩v欧美v专区| 成+人+亚洲+综合天堂| 精品国产123| 免费观看一级特黄欧美大片| 欧美亚洲综合一区| 亚洲视频一区二区免费在线观看| 国产精品自拍三区| 日韩精品一区二区三区老鸭窝| 亚洲成av人片一区二区三区| 色噜噜狠狠色综合中国| 国产精品网站在线观看| 国产精一品亚洲二区在线视频| 日韩美女一区二区三区| 视频一区二区中文字幕| 在线免费观看日本一区| 亚洲色图视频网站| 91网址在线看| 日韩美女久久久| 成年人国产精品| 日韩一区欧美小说| 99精品欧美一区二区三区小说 | 成人激情动漫在线观看| 国产精品网站在线播放| 国产精品系列在线播放| 2024国产精品| 国产成人综合精品三级| 国产亚洲欧美一级| 粉嫩av一区二区三区| 国产精品午夜免费| 不卡视频免费播放| 亚洲品质自拍视频网站| 色激情天天射综合网| 亚洲激情图片小说视频| 欧美日韩一区二区三区在线看| 亚洲第四色夜色| 欧美日韩久久久久久| 日韩高清一区在线| 精品日韩欧美在线| 国产成人精品在线看| 国产精品久久久久三级| 色综合欧美在线视频区| 亚洲成人综合视频| 日韩欧美国产一区在线观看| 久久国产精品99久久人人澡| 久久亚洲综合色一区二区三区| 国产v日产∨综合v精品视频| 欧美国产亚洲另类动漫| 久久久久久久久97黄色工厂| 夫妻av一区二区| 亚洲综合一区二区精品导航| 欧美精品成人一区二区三区四区| 久久福利资源站| 国产精品视频一二三| 色94色欧美sute亚洲线路一久| 日日夜夜免费精品视频| 欧美mv和日韩mv国产网站| 不卡av免费在线观看| 亚洲国产成人tv| 26uuu亚洲| 色综合天天综合网天天狠天天| 亚洲18女电影在线观看|