- 浏览: 1027718 次
- 性别:
- 来自: 天津
-
文章分类
- 全部博客 (445)
- Java (22)
- J2EE (18)
- Flex (102)
- Flex-blazeds (1)
- Flex-FABridge (2)
- Flex4 (3)
- CheckStyle (2)
- PowerDesigner (0)
- POI (2)
- Java2Word (2)
- 杂项 (15)
- 日记 (3)
- 数据库-oracle (41)
- 数据库-SQLServer (7)
- 中间件 (1)
- 英语 (8)
- C# (43)
- ASP.net (72)
- ASP.net MVC (28)
- 微软-Entity Framework (19)
- JavaScript (22)
- JQuery (31)
- EasyUI (3)
- VS2010 (4)
- CVS (1)
- Tomcat (3)
- Linux (1)
- 遗留问题 (1)
- iphone (1)
- MAC (0)
- 系统 (2)
- Web Service (4)
- Cache Manager (1)
- PMP (1)
- WCF (10)
- BootstrapJs (1)
- Web API (6)
- Go语言 (0)
- 网络协议 (2)
- Redis (10)
- RabbitMQ (10)
- Git (3)
- Kafka (5)
- ELK (5)
- Nginx (3)
- 测试 (2)
最新评论
-
ygm0720:
Table行拖拽自己实现 -
程乐平:
Flex4开发视频教程(27集)下载http://bbs.it ...
Flex4教程 -
liuweihug:
Jquery+asp.net 后台数据传到前台js进行解析的办 ...
AJAX $.toJSON的用法或把数组转换成json类型 -
weilikk:
谢谢谢谢!!
javascript IE下不能用 trim函数解决方法 -
gxz1989611:
vigiles 写道请问楼主:[Fault] exceptio ...
blazeds推送技术至Flex
2) 创建配置文件persistence.xml 在项目src文件夹下创建一个META-INF文件夹(有就不用创建了), META-INF文件夹下建一个persistence.xml文件, 内容为:
三、运行 1、 编写main函数:
2、 运行结果如下:
run:
连接数据库耗时: 1000毫秒
第1个值为: UserInfo[userid=1, userName='张金雄', sex='male', birthday=null, address=Address[addressid=1, city='深圳', street='坂田市场', zip='518001']]
第2个值为: UserInfo[userid=2, userName='李某某', sex='male', birthday=null, address=Address[addressid=2, city='深圳', street='坂田路口', zip='518002']]
第3个值为: UserInfo[userid=3, userName='王某某', sex='female', birthday=2006-08-1000:00:00.0, address
<?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"> <!-- transaction-type 可选值有: JTA、RESOURCE_LOCAL ; 在Java EE 环境下默认值为JTA, 在Java SE 环境下默认值为RESOURCE_LOCAL; 如果值为JTA的话, 则必须要指定<jta-data-source>的值 --> <persistence-unit name="piscesPU" transaction-type="RESOURCE_LOCAL"> <description>这是piscesPU持久化单元的一个简单描述</description> <!-- 指明javax.persistence.spi.PersistenceProvider 的实现类, 一般来说该节点可以省略 --> <provider>oracle.toplink.essentials.ejb.cmp3.EntityManagerFactoryProvider</provider> <!-- 在Java SE环境下必须定义所有的实体Entity类, 也可以用 <mapping-file> 或<jar-file> 节点代替 --> <class>org.pisces.persist.UserInfo</class> <class>org.pisces.persist.Address</class> <!-- //可以定义jndi资源代替properties节点中的数据库配置, //但是在调用Persistence.createEntityManagerFactory方法前必须保证此资源已经注入程序中. <jta-data-source>jdbc/persist</jta-data-source> --> <!-- properties节点是用来定义各种JPA实现包所定义的属性配置 --> <!-- 下面列举的是toplink实现包中可以配置的部分属性 --> <properties> <!-- 数据库连接配置, JDBC驱动 --> <property name="toplink.jdbc.driver" value="com.mysql.jdbc.Driver"/> <!-- 数据库连接配置,URL --> <property name="toplink.jdbc.url" value="jdbc:mysql://localhost:3306/piscesdb"/> <!-- 数据库连接配置, 用户名 --> <property name="toplink.jdbc.user" value="root"/> <!-- 数据库连接配置, 密码 --> <property name="toplink.jdbc.password" value=""/> <!-- 数据库连接池配置, 可写的连接池的最大连接数, 默认为 10 --> <property name="toplink.jdbc.write-connections.max" value="10"/> <!-- 数据库连接池配置, 可写的连接池的最大连接数, 默认为 5 --> <property name="toplink.jdbc.write-connections.min" value="5"/> <!-- 数据库连接池配置, 只读的连接池的最大连接数, 默认为 2 --> <property name="toplink.jdbc.read-connections.max" value="2"/> <!-- 数据库连接池配置, 只读的连接池的最大连接数, 默认为 2 --> <property name="toplink.jdbc.read-connections.min" value="2"/> <!-- 数据库连接池配置, 只读的连接池是否可以共享, 默认为 false --> <property name="toplink.jdbc.read-connections.shared" value="false"/> <!-- 是否绑定所有jdbc属性, 默认为 true --> <property name="toplink.jdbc.bind-parameters" value="true"/> <!-- 缓冲配置, 以下三个属性值为默认设置; 可以 default改为entity名(@Entity注释中的name属性值)或者类名来指定该entity的缓冲配置, 如: <property name="toplink.cache.size.org.pisces.persist.UserInfo" value="2"/> <property name="toplink.cache.type.org.pisces.persist.UserInfo" value="SoftWeak"/> <property name="toplink.cache.shared.org.pisces.persist.UserInfo" value="true"/> --> <property name="toplink.cache.size.org.pisces.persist.UserInfo" value="2"/> <!-- 缓冲配置, 缓冲大小, 默认为 1000 --> <property name="toplink.cache.size.default" value="1000"/> <!-- 缓冲配置, 缓冲类型, 可选值为{ Weak、SoftWeak、HardWeak、Full、NONE }, 不区分大小, 默认为 SoftWeak --> <property name="toplink.cache.type.default" value="SoftWeak"/> <!-- 缓冲配置, 是否共享缓冲, 默认为 false --> <property name="toplink.cache.shared.default" value="false"/> <!-- 日志配置, 日志级别, 默认值为java.util.logging.Level在系统中的值 --> <property name="toplink.logging.level" value="SEVERE"/> <!-- 日志配置, 日志是否记录当前时间, 默认为 true --> <property name="toplink.logging.timestamp" value="true"/> <!-- 日志配置, 日志是否记录当前线程名, 默认为 true --> <property name="toplink.logging.thread" value="true"/> <!-- 日志配置, 日志是否记录当前会话名, 默认为 true --> <property name="toplink.logging.session" value="true"/> <!-- 日志配置, 日志是否记录异常堆栈, 默认为 true --> <property name="toplink.logging.exceptions" value="true"/> <!-- 目标数据库类型, 截至目前为止可选值为{ Auto、Oracle、Attunity、Cloudscape、Database、DB2、DB2Mainframe 、 DBase、Derby、HSQL、Informix、JavaDB、MySQL4、PostgreSQL、SQLAnyWhere、 SQLServer、Sybase、TimesTen }, 不区分大小, 默认为 Auto, 即 TopLink自动匹配对应的数据库类型 --> <property name="toplink.target-database" value="Auto"/> <!-- 指定会话名称, 默认为系统自动产生唯一性名称--> <property name="toplink.session-name" value="pisces_session_name"/> <!-- 设置是否为weaving, 默认为 true --> <property name="toplink.weaving" value="true"/> <!-- 指定目标应用服务器类型, 截至目前为止可选值为{ None、OC4J_10_1_3、SunAS9 }(以后可能会扩展其他值的), 在 Java SE环境下值为 None, 不区分大小, 默认为 None --> <property name="toplink.target-server" value="None"/> <!-- 指定实现 oracle.toplink.essentials.tools.sessionconfiguration.DescriptorCustomizer 的类名, toplink.descriptor.customizer. 为前缀, 后面跟entity名(@Entity注释中的name属性值)或者entity类名, 该类中的customize方法在执行 了所有的属性(除了 toplink.session.customizer 之外)后运行, 如: <property name="toplink.descriptor.customizer.org.pisces.persist.UserInfo" value="org.pisces.persist.SimpleDescriptorCustomizer"/> <property name="toplink.descriptor.customizer.org.pisces.persist.Address" value="org.pisces.persist.SimpleDescriptorCustomizer"/> --> <!-- 指定实现 oracle.toplink.essentials.tools.sessionconfiguration.SessionCustomizer 的类名, 该类中的customize方法在执行了所有的属性后运行, 如: <property name="toplink.session.customizer" value="org.pisces.persist.SimpleSessionCustomizer"/> --> </properties> </persistence-unit> </persistence> 3) 创建Entity的管理类 管理类SimpleManager是用来对实体Entity进行操作管理的. /* * SimpleManager.java */ package org.pisces.persist; import java.util.List; import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.Persistence; /** * * @author kamhung */ publicclass SimpleManager { private SimpleManager(){ //do nothing } /** * 删除用户id=6的数据 */ publicstaticvoid delete() { final EntityManagerFactory emf =Persistence.createEntityManagerFactory("piscesPU"); final EntityManager em =emf.createEntityManager(); //找不到数据的话这里会抛异常 UserInfo info =em.find(UserInfo.class, 6); try { em.getTransaction().begin(); em.remove(info); em.getTransaction().commit(); } finally { em.close(); } } /** * 修改用户id=6的数据 */ publicstaticvoid update() { final EntityManagerFactory emf =Persistence.createEntityManagerFactory("piscesPU"); final EntityManager em =emf.createEntityManager(); //找不到数据的话这里会抛异常 UserInfo info =em.find(UserInfo.class, 6); info.setUserName("哈哈"); info.getAddress().setStreet("坂田2"); try { em.getTransaction().begin(); //自动将info更新到数据库 em.getTransaction().commit(); } finally { em.close(); } } /** * 查询所有用户数据 */ publicstaticvoid query() { final EntityManagerFactory emf =Persistence.createEntityManagerFactory("piscesPU"); long s =System.currentTimeMillis(); //数据库连接失败这里会抛出异常 final EntityManager em =emf.createEntityManager(); long e =System.currentTimeMillis(); System.out.println("连接数据库耗时: "+ (e-s) +"毫秒" ); //获取数据 @SuppressWarnings("unchecked") List<UserInfo> list =em.createQuery("SELECT a FROM UserInfo a").getResultList(); int i=0; for(UserInfo info : list) { System.out.println("第"+ (++i) +"个值为: "+ info); } em.close(); } /** * 创建用户id=6的一条数据, 地址id=6 */ publicstaticvoid create() { final EntityManagerFactory emf =Persistence.createEntityManagerFactory("piscesPU"); final EntityManager em =emf.createEntityManager(); UserInfo info =new UserInfo(6); info.setSex("male"); info.setUserName("张某某"); info.setBirthday(new java.sql.Timestamp(System.currentTimeMillis())); Address naddr =new Address(6); naddr.setCity("深圳"); naddr.setStreet("坂田"); naddr.setZip("518000"); info.setAddress(naddr); try { em.getTransaction().begin(); em.persist(info); em.getTransaction().commit(); } finally { em.close(); } } }
三、运行 1、 编写main函数:
/* * Main.java */ package org.pisces; import org.pisces.persist.SimpleManager; /** * * @author kamhung */ publicclass Main { /** * 主函数 */ publicstaticvoid main(String[] args) throws Throwable { SimpleManager.query(); SimpleManager.create(); System.out.println("新增一条数据后进行查询"); SimpleManager.query(); SimpleManager.update(); System.out.println("修改一条数据后进行查询"); SimpleManager.query(); SimpleManager.delete(); System.out.println("删除一条数据后进行查询"); SimpleManager.query(); } }
2、 运行结果如下:
run:
连接数据库耗时: 1000毫秒
第1个值为: UserInfo[userid=1, userName='张金雄', sex='male', birthday=null, address=Address[addressid=1, city='深圳', street='坂田市场', zip='518001']]
第2个值为: UserInfo[userid=2, userName='李某某', sex='male', birthday=null, address=Address[addressid=2, city='深圳', street='坂田路口', zip='518002']]
第3个值为: UserInfo[userid=3, userName='王某某', sex='female', birthday=2006-08-1000:00:00.0, address
发表评论
-
JSP/Servlet:Scripting Variable
2011-12-31 15:09 1448Scripting,Variable是用于自 ... -
JSP自定义标签 实例
2011-12-31 15:07 1703定义:自定义标签是一种非常优秀的组件技术。通过使用自定义标签库 ... -
写自定义标签时标记attribute里rtexprvalue的用法
2011-12-31 11:00 1148其实以前也有写过自定义标签, 但是没有注意到过<rtex ... -
Tomcat 连接池配置 - META-INF
2011-12-30 15:07 1796Tomcat 6.0连接池配置 1.Tomca ... -
jsp指示元素
2011-12-30 15:06 1459指示元素 指示元素的作用是:指示容器在将JSP翻译成serv ... -
jsp脚本元素
2011-12-30 15:06 3361元素与模板数据 JSP页面内容可以分为两种类型,一种是能够被 ... -
jsp行为元素
2011-12-28 14:03 1763行为元素 行为元素的作用:与指示元素不同,行为元素是与特定的 ... -
jsp 隐藏对象
2011-12-28 13:42 1674隐藏对象即不用声明该 ... -
jsp button onclick事件
2011-12-28 13:26 1610<input onclick="doc ... -
比较全面的taglib标签库介绍
2011-12-28 13:25 4575一、定义标签文件(web.xml) <taglib&g ... -
JDK7的推出,oracle独揽Java,是好是坏
2011-09-29 16:51 1470今天在CSDN看到JDK7也推出了lambda语法, 还有JD ... -
MyEclipse6.0下构建SSH冲突问题解决方案
2008-10-29 12:55 1772终于不再苦恼了,这几天在做SSH的加载,一直报一些莫名其妙的错 ... -
hibernate----Inverse 和 cascade区别(2)
2008-10-29 12:54 11261、到底在哪用cascade=&q ... -
hibernate----Inverse 和 cascade区别(1)
2008-10-29 12:54 1707Inverse 和 cascade的区别 实际上,他们是互不 ... -
教你如何写log4j
2008-10-29 12:52 1578在实际编程时,要使Log4j真正在系统中运行事先还要对配置文件 ... -
Spring写log4j
2008-10-29 12:51 1345Spring中使用LOG4J 1.在web.xml中添加 ... -
在Java SE环境下使用JPA1.0(1)
2008-10-29 12:27 2116一、搭建环境 1) 搭建数据库环境 1、安装数据库( ...
评论