paulwong

#

小议JPA

以前和数据库打交道的标准INTERFACE是JDBC,放SQL语句,执行,就可以有结果。随着近年ORM的兴起,以对象的方式存取数据库大行其道。于是产生了JPA。

也是一套INTERFACE,以ORM的方式提供,由厂商实现,如ECLIPSE LINK,HIBERNATE,OPENEJB等。

ENTITYMANAGERFACTORY:根据配置文件制造ENTITYMANAGER
ENTITYMANAGER:以ORM的方式提供操作数据库的功能
TRANSACTION:事务保证
PERSISTENCE.XML:链接数据库信息,事务类型,重定义JPA的实现厂商等的配置信息

在容器环境下使用:

如果事务是RESOURCE_LOCAL的方式,则合用端需干所有的事情,如构造ENTITYMANAGER,打开事务,关闭事务等。类似于BMT。
以下是在服务器环境中合用RESOURCE_LOCAL型的JPA

事先要在容器中添加数据源。

 persistence.xml
<?xml version="1.0" encoding="UTF-8" ?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">

  <!-- Tutorial "unit" -->
  <persistence-unit name="Tutorial" transaction-type="RESOURCE_LOCAL">
    <non-jta-data-source>myNonJtaDataSource</non-jta-data-source>
    <class>org.superbiz.jpa.Account</class>
  </persistence-unit>

</persistence>


import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import javax.persistence.PersistenceUnit;

public class MyEjbOrServlet  {

    @PersistenceUnit(unitName="Tutorial")
    private EntityManagerFactory factory;

    // Proper exception handling left out for simplicity
    public void ejbMethodOrServletServiceMethod() throws Exception {
        EntityManager entityManager = factory.createEntityManager();

        EntityTransaction entityTransaction = entityManager.getTransaction();

        entityTransaction.begin();

        Account account = entityManager.find(Account.class, 12345);

        account.setBalance(5000);

        entityTransaction.commit();
    }

    
}


以下是JTA方式的JPA,容器+EJB+JPA+JTA,容器会在EJB的方法调用前打开一个事务,在方法退出后,提交事务,并且如果是多个数据源的,即有多个ENTITYMANAGER的
可以保证一致性,即全局事务。相当于之前的先调用USERTRANSACTION,BEGIN,COMMIT。

事先要在容器中添加数据源。

 persistence.xml
<?xml version="1.0" encoding="UTF-8" ?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">

  <!-- Tutorial "unit" -->
  <persistence-unit name="Tutorial" transaction-type="JTA">
    <jta-data-source>myJtaDataSource</jta-data-source>
    <non-jta-data-source>myNonJtaDataSource</non-jta-data-source>
    <class>org.superbiz.jpa.Account</class>
  </persistence-unit>

</persistence>


EJB
import javax.ejb.Stateless;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

@Stateless
public class MyEjb implements MyEjbInterface {

    @PersistenceContext(unitName = "Tutorial")
    private EntityManager entityManager;

    // Proper exception handling left out for simplicity
    @TransactionAttribute(TransactionAttributeType.REQUIRED)
    public void ejbMethod() throws Exception {

    Account account = entityManager.find(Account.class, 12345);

    account.setBalance(5000);

    }
}


如果是J2SE环境下使用JPA,则又是不一样的。


persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0">
    <persistence-unit name="SimplePU" transaction-type="RESOURCE_LOCAL">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <class>com.someone.jmail.valueobject.CallActivity</class>
        <class>com.someone.jmail.valueobject.Email</class>
        <properties>
            <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
            <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/test" />
            <property name="hibernate.connection.username" value="root" />
            <property name="hibernate.connection.password" value="12345" />
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />
            <property name="hibernate.show_sql" value="false"/>
            <property name="hibernate.format_sql" value="true"/>
            <property name="hibernate.use_sql_comments" value="false"/>
            <property name="hibernate.hbm2ddl.auto" value="none"/>
        </properties>
    </persistence-unit>
    
</persistence>


Dao:

public class UserDaoImpl implements UserDao { 
 public AccountInfo save(AccountInfo accountInfo) { 
 EntityManagerFactory emf = 
 Persistence.createEntityManagerFactory("SimplePU"); 
 EntityManager em = emf.createEntityManager(); 
 em.getTransaction().begin(); 
 em.persist(accountInfo); 
 em.getTransaction().commit(); 
 emf.close(); 
 return accountInfo; 
    } 
 } 


posted @ 2013-08-14 18:17 paulwong 阅读(605) | 评论 (0)编辑 收藏

HBASE界面工具

hbaseexplorer
下载此0.6的WAR包时,要将lib下的jasper-runtime-5.5.23.jar和jasper-compiler-5.5.23.jar删掉,否则会报错
http://sourceforge.net/projects/hbaseexplorer/?source=dlp

HBaseXplorer
https://github.com/bit-ware/HBaseXplorer/downloads

HBase Manager
http://sourceforge.net/projects/hbasemanagergui/

posted @ 2013-08-14 09:51 paulwong 阅读(1150) | 评论 (0)编辑 收藏

在 Ubuntu 安裝 java Jdk

在 Ubuntu 安裝 java Jdk 很容易

Install-Oracle-Java-7-in-Ubuntu-via-PPA-Repository

安裝 java 很容易 ! (支援 Ubuntu 12.04, 11.10, 11.04 and 10.04)

說在前頭 :
0. 安裝 oracle java jdk (目前是 7u5 版)
0-1. 包含 jdk jre 及 瀏覽器插件 (不能只安裝 jre 或 瀏覽器插件)
0-2. 自動 辨識 64 bits 或 32 bits
0-2. 安裝後 會自動從 ppa:webupd8team/java 套件庫 更新 已安裝套件
0-3. 以後有新版本 這個方法 自動會直接安裝新版本(例如如果有 7u6 版)

1. 安裝指令
   apt-get install software-properties-common
1-1. sudo add-apt-repository ppa:webupd8team/java
 
1-2. sudo apt-get update
 
1-3. sudo apt-get install oracle-java7-installer(6就用这个:oracle-java6-installer)


2. 看看是否安裝成功
java -version

目前最新版本
java version "1.7.0_05"
Java(TM) SE Runtime Environment (build 1.7.0_05-b05)
Java HotSpot(TM) 64-Bit Server VM (build 23.1-b03, mixed mode)

2-1. 如果上面的指令 得到的版本 不是剛剛安裝的版本
sudo update-java-alternatives -s java-7-oracle

再試一次
java -version

3. 移除 Oracle Java 7
sudo apt-get remove oracle-java7-installer

posted @ 2013-08-10 13:33 paulwong 阅读(892) | 评论 (0)编辑 收藏

CHUKWA资源

CHUKWA
日志分析大数据系统

!!!这个写得挺详细,值得一看
https://github.com/matrix-lisp/DataAnalysis-DataMining-With-Hadoop/blob/master/source/Hadoop-Chukwa.rst


Chukwa配置及运行实例
http://my.oschina.net/xiangchen/blog/100424


Chukwa 0.4.0 详细安装流程,有提到0.4版的一个BUG
http://blog.csdn.net/jostey/article/details/7068322


http://chfpdxx.blog.163.com/blog/static/29542296201241494118753/


chukwa 0.5.0 + hbase 0.94.8 + hadoop 1.1.4 + pig 0.11.1单机伪分布配置
http://f.dataguru.cn/thread-158864-1-1.html


将Chukwa 0.5部署在基于Cloudera CDH4的Hadoop集群上
http://savagegarden.iteye.com/blog/1496786


hadoop1.01+ hbase 0.92+chukwa0.5 安装配置 +问题
http://blog.csdn.net/yinlei212/article/details/7452955


chukwa安装
http://blog.csdn.net/zhumin726/article/details/8290784


Chukwa 0.5的安装
http://hi.baidu.com/zhangxinandala/item/db5d8adc22bab0d5241f4017

posted @ 2013-08-09 17:43 paulwong 阅读(390) | 评论 (0)编辑 收藏

LINUX 网络安全资源

IPTABLES配置,如何开放、关闭端口等
http://wiki.ubuntu.org.cn/IptablesHowTo
http://www.cnblogs.com/wangkangluo1/archive/2012/04/19/2457072.html


如果执行这个命令时,
tail -/var/log/auth.log -200

会发现经常有人试图SSH过来猜root的密码,那就要安装fail2ban了。
apt-get install fail2ban

http://forum.ubuntu.org.cn/viewtopic.php?f=124&t=305533

https://github.com/fail2ban/fail2ban

或者设置一下IPTABLES:
http://www.debian-administration.org/articles/187



posted @ 2013-08-03 11:08 paulwong 阅读(346) | 评论 (0)编辑 收藏

Kettle - HADOOP数据转换工具

ETL(Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程),对于企业或行业应用来说,我们经常会遇到各种数据的处理,转换,迁移,所以了解并掌握一种etl工具的使用,必不可少,这里我介绍一个我在工作中使用了3年左右的ETL工具Kettle,本着好东西不独享的想法,跟大家分享碰撞交流一下!在使用中我感觉这个工具真的很强大,支持图形化的GUI设计界面,然后可以以工作流的形式流转,在做一些简单或复杂的数据抽取、质量检测、数据清洗、数据转换、数据过滤等方面有着比较稳定的表现,其中最主要的我们通过熟练的应用它,减少了非常多的研发工作量,提高了我们的工作效率,不过对于我这个.net研发者来说唯一的遗憾就是这个工具是Java编写的。

http://www.cnblogs.com/limengqiang/archive/2013/01/16/KettleApply1.html

posted @ 2013-08-01 17:21 paulwong 阅读(806) | 评论 (0)编辑 收藏

XForms

在做表单设计时用到的开源框架。

http://wiki.orbeon.com/forms/doc/developer-guide/xforms-with-java-applications


http://wiki.orbeon.com/forms/doc/developer-guide/xforms-with-java-applications

posted @ 2013-07-30 01:06 paulwong 阅读(392) | 评论 (0)编辑 收藏

设计之路:如何进行软件需求分析?

http://www.blogjava.net/amigoxie/archive/2013/07/13/401528.html

posted @ 2013-07-23 15:31 paulwong 阅读(327) | 评论 (0)编辑 收藏

WIRESHARK资源

需求:要抓同一网络上某一设备,如平板的网络传输包以进行分析,访问哪些网址等。

软件:WIRESHARK,金山的WIFI共享

环境:由于WIRESHARK只能抓本电脑(安装此软件上的PC)的包,因此要在装一个无线网卡,再安装一个金山的WIFI共享软件,将此无线网卡作为热点共享出去。另一设备通过WIFI连上此热点。这样此设备上的所有都经过此无线网卡,就可以被WIRESHARK抓到。

1.将无线网卡连上路由,产生IP1
2.启动CONNECTIFY ME,共享来源选IP1
3.客户端通过WIFI连CONNECTIFY ME
4.则客户端向INTERNET发送请求时,请求是通过IP1发送的,收到的回应是通过CONNECTIFY ME返回的

使用:打开WIRESHARK,选择抓哪个网卡,再配置过滤条件,点击开始即可。现总结了下这个过滤条件:
ip.src == 192.168.1.113 && http.request.method=="GET" && http.user_agent contains "014440000001041"

都是以协议开头,属性名称,表达式符号,属性值,连接符号,其他表达式的这种格式。


wireshark过滤语法总结
http://blog.csdn.net/cumirror/article/details/7054496

posted @ 2013-07-23 15:25 paulwong 阅读(299) | 评论 (0)编辑 收藏

Ubuntu下彻底卸载mysql

1、删除 mysql

1 sudo apt-get autoremove --purge mysql-server-5.0
2 sudo apt-get remove mysql-server
3 sudo apt-get autoremove mysql-server
4 sudo apt-get remove mysql-common (非常重要)
上面的其实有一些是多余的,建议还是按照顺序执行一遍

清理残留数据

dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P


2、安装 mysql

1 sudo apt-get install mysql-server
2 sudo apt-get install mysql-client
3 sudo apt-get install php5-mysql(安装php5-mysql 是将php和mysql连接起来 ) 



一旦安装完成,MySQL 服务器应该自动启动。您可以在终端提示符后运行以下命令来检查 MySQL 服务器是否正在运行:

1 sudo netstat -tap | grep mysql

当您运行该命令时,您可以看到类似下面的行:

tcp 0 0 localhost.localdomain:mysql *:* LISTEN -
如果服务器不能正常运行,您可以通过下列命令启动它:


1 sudo /etc/init.d/mysql restart

3、进入mysql

$mysql -uroot -p 管理员密码
配置 MySQL 的管理员密码:

1 sudo mysqladmin -u root password newpassword


4、恢复数据库

mysql -p < html5canvas-20130930-0816.sql 


http://www.yesky.com/187/1754687.shtml

TOMCAT数据源
http://136589219.iteye.com/blog/1572214

posted @ 2013-07-21 21:24 paulwong 阅读(1545) | 评论 (0)编辑 收藏

仅列出标题
共115页: First 上一页 63 64 65 66 67 68 69 70 71 下一页 Last