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

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

?? jpa開發.txt

?? jpa開發
?? TXT
?? 第 1 頁 / 共 4 頁
字號:
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" /> 



一、JPA介紹
  JavaEE的是企業級應用規范,JPA(Java Persistence API)作為Java EE 5.0平臺標準的ORM規范,將得到所有Java EE服務器的支持。Sun這次吸取了之前EJB規范慘痛失敗的經歷,在充分吸收現有ORM框架的基礎上,得到了一個易于使用、伸縮性強的ORM規范。從目前的開發社區的反應上看,JPA受到了極大的支持和贊揚,JPA作為ORM領域標準化整合者的目標應該不難實現。Sun引入新的JPA ORM規范出于兩個原因:其一,簡化現有Java EE和Java SE應用的對象持久化的開發工作;其二,Sun希望整合對ORM技術,實現天下歸一。  

二、glassfish安裝配置與使用

1. glassfish介紹
   由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這樣的組合了。

      
   D:\Program\glassfish\lib\ant\bin下自帶了一個ant

2. 下載: 
    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
  
3. 安裝
    1)設置環境變量
	GLASSFISH_HOME=D:\Program\glassfish    
	path=%GLASSFISH_HOME%\bin
    2) java -jar *.jar 可解壓出一個目錄
    3) ant -f setup.xml 再安裝
    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" 
  
4. 啟動與停止
  $GLASSFISH_HOME/bin/asadmin start-domain domain1
                      asadmin stop-domain domain1 
5. 配置與myEclipse的連接
   一切按默認配置后,啟動,報幾個jar沒有找到,沒關系,在GlassFish1-paths-Append to ClassPath中導入javaee.jar/jmac-api.jar即可。

5. 訪問
  web應用目錄:http://localhost:8080/
  管理控制臺:http://localhost:4848/  用戶名:密碼=admin:adminadmin

6. 部署應用程序
  拷貝 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

7. 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")
	 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
	@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 {
		emf = Persistence.createEntityManagerFactory("aa"); 
		if (em == null) 
			em = emf.createEntityManager();
	}
	  //主鍵查詢
	  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) {
		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();
	}
   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>

四、web項目開發
   1. 在derby數據庫中創建表與數據
   CREATE TABLE users (
        pk1 int,
	userid VARCHAR(20),
	password varchar(20));
   INSERT INTO users values(1,'張三','123');
   INSERT INTO users values(2,'李四','123');
   -------------------------------------------
   2. 新建web應用程序
   導入jpa的jar包,javaee.jar

   3. 寫Entity類
   Entity類實際上是一個JavaBean,它表示了一個數據庫中的表.類中使用了以下3個annotation.
	@Entity: 指定這個類為Entity. 
	@Table : 指定mapping的表. 
	@Id : 指定表中的主鍵.
   寫類
	import java.io.Serializable;
	import javax.persistence.Entity;
	import javax.persistence.Id;
	import javax.persistence.Table;
	   
	@Entity
	@Table(name="users")
	 public class User implements Serializable {
	 private int pk1;
	 private String userid;
	 private String password;

	 @Id
	 public String getPk1() {
	     return pk1;
	 }
	 public String getUserid() {
	     return this.userid;
	 }
	 public void setPk1(int pk1) {
	     this.pk1 = pk1;
	 }
	 ......
	 }
   4. 數據庫操作類
    這個類提供了對數據庫操作的方法,實際上是通過EntityManager類中的方法進行操作的.而EntityManager類是由EntityManagerFactory生成的.
	import java.util.*;
	import javax.persistence.*;
	import database.Book;

	public class UserDao {
	  private ArrayList users;
	  private EntityManager em;
	  public UserDao(EntityManagerFactory emf) throws Exception {
	    em = emf.createEntityManager();
	  }
	  public void remove() {
	     try {
	       em.close();
	     } catch (Exception ex) {
	       System.out.println(ex.getMessage());
	     }
	  }
	  public User findByPk(int uid){
	     User u = em.find(User.class, uid);
	     return u;
	  }  
	}
   5 Servlet類
    在這個類中由container注入一個EntityManagerFactory并且把它傳遞給UserDao類.注意EntityManagerFactory 的注入需要在由容器管理的實體中進行(比如Servlet).
	public class UserServlet extends HttpServlet {
	private UserDao userDao;
	@PersistenceUnit
	private EntityManagerFactory emf;
	public void init() throws ServletException {
		try {
			userDao = new UserDao(emf);
		} catch (Exception ex) {
			System.out.println(ex.getMessage());
		}
	}
	public void destroy() {
		userDao = null;
	}
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		HttpSession session = request.getSession();
		response.setContentType("text/html");
		// response.setBufferSize(8192);
		PrintWriter out = response.getWriter();
		String userid = request.getParameter("userid");
		try {
			User u = userDao.findByPk(Integer.valueOf(userid));
			out.println(userid + ": " + u.getUserid());
		} catch (Exception bnf) {
			out.println("The book not found.");
			out.close();
		}
	}
	}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩免费视频一区| 欧美精品一级二级三级| 午夜精品福利久久久| 亚洲美女视频在线观看| 国产精品每日更新| 国产精品美女久久久久久久 | 国产精品国产三级国产aⅴ原创| 欧美一级日韩不卡播放免费| 欧美老肥妇做.爰bbww视频| 欧美在线观看视频一区二区| 在线观看欧美黄色| 在线看一区二区| 精品视频123区在线观看| 欧美丝袜丝nylons| 欧美精品在线视频| 日韩一区二区影院| 久久人人爽人人爽| 一区二区国产视频| 一区二区三区在线播放| 亚洲一区在线视频观看| 全部av―极品视觉盛宴亚洲| 麻豆精品视频在线观看免费| 国产一区久久久| 成人免费毛片a| 欧洲一区二区三区在线| 6080午夜不卡| 亚洲精品在线观看视频| 国产精品午夜在线| 亚洲综合丁香婷婷六月香| 视频一区在线播放| 国产成人综合精品三级| 色网综合在线观看| 日韩欧美一区中文| 国产精品对白交换视频 | 一区二区三区在线视频观看58| 亚洲一区二区欧美| 日韩av电影天堂| 成人免费视频视频在线观看免费| 一本色道综合亚洲| 欧美成人r级一区二区三区| 中文一区在线播放| 秋霞午夜鲁丝一区二区老狼| av电影天堂一区二区在线| 欧美欧美欧美欧美| 国产精品久久久久久久久搜平片 | 国产成人午夜电影网| 色成年激情久久综合| 日韩免费电影一区| 亚洲欧美另类小说| 国产精品99久| 欧美一区二区三区免费大片| 亚洲天堂av老司机| 狠狠色丁香久久婷婷综| 欧美色中文字幕| **性色生活片久久毛片| 九色|91porny| 欧美精品九九99久久| 日韩理论电影院| 丁香六月综合激情| 亚洲精品一区二区三区在线观看| 亚洲第一av色| 日本黄色一区二区| 亚洲欧洲一区二区三区| 国产高清精品久久久久| 日韩一区二区在线看片| 肉丝袜脚交视频一区二区| 色菇凉天天综合网| 亚洲视频综合在线| 99在线热播精品免费| 国产日韩av一区二区| 韩国一区二区视频| 日韩美女一区二区三区| 日韩电影在线观看一区| 日本韩国视频一区二区| 一色屋精品亚洲香蕉网站| 国产成人精品一区二区三区网站观看| 日韩欧美你懂的| 久久成人久久爱| 精品久久久久久无| 国产一区二区三区黄视频| 精品福利在线导航| 国内精品写真在线观看 | 国产精品996| 久久久亚洲精品石原莉奈| 久久se精品一区精品二区| 日韩三级电影网址| 久久99热国产| 久久精品欧美日韩| 精品一区二区免费| 久久久青草青青国产亚洲免观| 国产专区综合网| 国产免费成人在线视频| av在线免费不卡| 亚洲精品欧美激情| 欧美视频一区二区三区在线观看 | 蜜桃传媒麻豆第一区在线观看| 欧美一区二区三区精品| 久久av资源网| 中文字幕一区二区三区蜜月| 一本到不卡免费一区二区| 一区二区三区在线观看动漫| 69久久夜色精品国产69蝌蚪网| 男人的天堂久久精品| 久久久影院官网| 色综合久久九月婷婷色综合| 日韩精品欧美精品| 久久精品亚洲精品国产欧美 | 亚洲一区二区三区在线| 欧美一卡二卡三卡四卡| 国产精品资源在线看| 国产精品久线在线观看| 欧美挠脚心视频网站| 国产精品一卡二卡| 一区二区三区在线观看国产| 精品久久五月天| 日本二三区不卡| 精品一二三四区| 一区二区三区在线看| 2021中文字幕一区亚洲| 色婷婷久久久综合中文字幕| 另类中文字幕网| 中文字幕在线播放不卡一区| 欧美高清视频在线高清观看mv色露露十八| 麻豆免费精品视频| 亚洲欧美日韩在线不卡| 精品sm在线观看| 欧美福利视频一区| 色综合久久久久综合体桃花网| 美女任你摸久久| 亚洲国产人成综合网站| 亚洲国产精品成人综合色在线婷婷| 欧美日韩另类一区| 99国产精品久久久久久久久久久| 久久不见久久见免费视频7| 亚洲最色的网站| **欧美大码日韩| 亚洲国产精品二十页| 精品免费日韩av| 日韩一区二区三区在线视频| 色久优优欧美色久优优| aaa欧美大片| 国产成人午夜高潮毛片| 久久99国内精品| 青青草伊人久久| 亚洲国产一区视频| 亚洲综合在线电影| 国产精品青草久久| 久久久国际精品| 精品日产卡一卡二卡麻豆| 欧美另类变人与禽xxxxx| 在线视频你懂得一区| 色婷婷久久综合| 欧美中文字幕久久| 欧美亚洲免费在线一区| 色欲综合视频天天天| 97精品久久久久中文字幕| 成人免费看黄yyy456| 成人黄动漫网站免费app| 国产成人av电影免费在线观看| 国产一区美女在线| 高清国产一区二区三区| 国产mv日韩mv欧美| 成人在线视频首页| 99热精品一区二区| 色综合久久中文字幕综合网| 色老汉一区二区三区| 欧美色综合久久| 欧美一级夜夜爽| 精品国精品国产| 欧美国产激情二区三区| 中文字幕一区二区三区在线播放| 国产精品另类一区| 悠悠色在线精品| 亚洲va韩国va欧美va精品| 丝瓜av网站精品一区二区| 伦理电影国产精品| 国产高清视频一区| 99久久精品免费看国产免费软件| 一本到高清视频免费精品| 欧美日韩国产大片| www欧美成人18+| 中文字幕一区二区在线播放| 亚洲一区二区成人在线观看| 图片区小说区区亚洲影院| 激情综合亚洲精品| av电影在线不卡| 日本一区二区成人| 欧美在线不卡视频| 538在线一区二区精品国产| 日韩免费电影网站| 国产精品久久久久久久久免费丝袜| 综合分类小说区另类春色亚洲小说欧美| 亚洲精品美国一| 狠狠色狠狠色综合系列| 色综合久久66| 久久久亚洲精华液精华液精华液| 亚洲精品日日夜夜| 国产伦精一区二区三区| 在线观看一区二区视频| 精品国产制服丝袜高跟|