欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
spring整合JPA總結

1、定義實(shí)體類(lèi)

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.OneToMany;

@Entity // 表明該類(lèi) (RtoUser ) 為一個(gè)實(shí)體類(lèi),如果寫(xiě)成@Entity(RtoUserTable)它對應數據庫中的表表名是RtoUserTable;

            //寫(xiě)成@Entity則默認對應表RtoUser,和類(lèi)名稱(chēng)相同
public class RtoUser implements Serializable{

 /**
  *
  */
 private static final long serialVersionUID = 1L;

 @Id //指定userName為主鍵
 private String userName;  
 private String password;

 @Column(length = 30)
 public String getUserName() {
  return userName;
 }

 public void setUserName(String userName) {
  this.userName = userName;
 }

 @Column(length = 30)
 public String getPassword() {
  return password;
 }

 public void setPassword(String password) {
  this.password = password;
 }

}
2.定義Dao接口

import java.util.List;

/**

* 該接口定義操作數據庫的抽象方法,方法體由具體類(lèi)去實(shí)現

*/

public interface BaseDao {
    public abstract void save (Object object);
    public abstract void update (Object object);
    public abstract Object find(Object object);
    public abstract List findByCondition(String conditions);
    public abstract void deleteByCondition(String conditions);
    public abstract void delete(Object object);
}

3.定義具體類(lèi)

import java.util.List;

import java.util.List;

import org.springframework.orm.jpa.support.JpaDaoSupport;
import org.springframework.transaction.annotation.Transactional;

import com.huahuan.devicemanager.common.entity.RtoUser;
import com.huahuan.devicemanager.server.dao.BaseDao;

@Transactional
@SuppressWarnings("deprecation")
public class RtoUserDaoImpl extends JpaDaoSupport  implements BaseDao { //實(shí)體的具體Dao類(lèi)必須繼承JpaDaoSupport類(lèi)

 @Override
 public void save(Object object) {
  object = (RtoUser) object;

  this.getJpaTemplate().persist(object);

 }

 @Override
 public void update(Object object) {
  RtoUser rtoUser = (RtoUser) object;
  this.getJpaTemplate().merge(rtoUser);
 }

 @Override
 public Object find(Object object) {
   RtoUser rtoUser = (RtoUser) object;
   rtoUser = this.getJpaTemplate().find(rtoUser.getClass(),
    rtoUser.getUserName());
  return rtoUser;
 }

 @Override
 @SuppressWarnings("unchecked")
 public List<RtoUser> findByCondition(String conditions) {
  return null;
 }

 @Override
 public void deleteByCondition(String conditions) {

 }

 @Override
 public void delete(Object object) {
  object = (RtoUser) object;
  this.getJpaTemplate().remove(this.getJpaTemplate().merge(object));
 }

 }
4.persistence.xml配置文件

注:在java應用中,該文件一定要方法哦src/META-INF/下

<?xml version="1.0" encoding="UTF-8"?>

<persistence xmlns="http://java.sun.com/xml/ns/persistence

         

 <!-- 持久化單元 name:持久化單元的名稱(chēng),集成時(shí)會(huì )在spring配置文件中使用 transaction-type:事務(wù)類(lèi)型 RESOURCE_LOCAL或JTA,j2ee環(huán)境下默認是jta,j2se環(huán)境下默認是RESOURCE_LOCAL -->

 <persistence-unit name="jpa" transaction-type="RESOURCE_LOCAL">

  <!-- 持久化技術(shù)提供商 Hibernate -->
  <provider>org.hibernate.ejb.HibernatePersistence</provider>

  <!-- 實(shí)體類(lèi) -->
  <!-- 用戶(hù)實(shí)體:必須在此定義實(shí)體類(lèi),否則加載時(shí)會(huì )包實(shí)體未定義異常 -->
  <class>com.huahuan.devicemanager.common.entity.RtoUser</class>

  <!-- 具體產(chǎn)品的配置信息 -->
  <properties>
   <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" />
   <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />

   <property name="hibernate.connection.username" value="root" />

   <property name="hibernate.connection.password" value="admin" />

   <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/test" />

   <property name="hibernate.show_sql" value="true" />

   <!--hibernate.hbm2ddl.auto屬性,當值為create時(shí),每次啟動(dòng)應用就會(huì )刪除舊表結構,重新創(chuàng )建最新的表結構,數據會(huì )丟失;

        當值為update時(shí),每次啟動(dòng)應用,如果實(shí)體類(lèi)有變化的話(huà),就會(huì )在原來(lái)表結構的基礎上新建,原始數據不會(huì )丟失;

   -->

   <property name="hibernate.hbm2ddl.auto" value="update" />

  </properties>
 </persistence-unit>
</persistence>

5.applicationContext.xml配置

j2se應用放到src/下

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="

 <bean id="rtoUserDao"
  class="com.huahuan.devicemanager.server.dao.impl.RtoUserDaoImpl">
  <property name="jpaTemplate" ref="jpaTemplate" /><!-- 為實(shí)體Dao注入jpaTemplate實(shí)例,該配置必須有-->
 </bean>

 <!--實(shí)體管理器工廠(chǎng),spring整合jpa的入口,不能自定義數據源 jpa:是持久化單元的名稱(chēng) -->
 <bean id="lemfb"
  class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
  <property

name="persistenceUnitName" value="jpa"></property>

<!--持久化單元名稱(chēng),其中jpa是在persistence.xml中定義的;-->

<!--另外注意property屬性中value和ref的區別,個(gè)人理解:

value是給屬性賦一個(gè)默認值,如<property

name="persistenceUnitName" value="jpa" />的意思是,讓persistenceUnitName的值為jpa;而ref是指將ref指定的對象實(shí)例賦值給對應的屬性,ref指定的對象實(shí)例在配置文件中通過(guò)bean標簽定義-->
 </bean>

 <!-- 配置事務(wù)管理器 JpaTransactionManager -->
 <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
  <property name="entityManagerFactory" ref="lemfb"></property>
 </bean>

<!-- 定義JpaTemplate --> 

<bean id="jpaTemplate" class="org.springframework.orm.jpa.JpaTemplate">
  <property name="entityManagerFactory" ref="lemfb"/>
 </bean>
 <!-- 配置注解@Transactional的驅動(dòng),如果要想使用該注解,必須有tx:annotation-driven配置 -->
 <tx:annotation-driven transaction-manager="transactionManager"/>

 <!-- 編寫(xiě)通知 -->
 <tx:advice id="txAdvice" transaction-manager="transactionManager">
  <tx:attributes>
   <tx:method name="save*" propagation="REQUIRED" isolation="DEFAULT" />

   <tx:method name="update*" propagation="REQUIRED" isolation="DEFAULT" />

   <tx:method name="get*" propagation="REQUIRED" isolation="DEFAULT"
    read-only="true" />

   <tx:method name="find*" propagation="REQUIRED" isolation="DEFAULT"
    read-only="true" />

   <tx:method name="load*" propagation="REQUIRED" isolation="DEFAULT"
    read-only="true" />

   <tx:method name="*" propagation="REQUIRED" isolation="DEFAULT" />

  </tx:attributes>
 </tx:advice>

 <!-- 編寫(xiě)aop配置(通知切入點(diǎn) advisor) -->

<!-- spring進(jìn)行事務(wù)管理時(shí),有proxy-target-class屬性,該屬性作用為定義事務(wù)dao是接口還是類(lèi),默認為false,即事物dao為接口;

      如果dao為實(shí)現類(lèi)時(shí)就會(huì )報“Failed to convert property value of type '$Proxy15”或“'$ProxyXX' can not be casted to XXX.java ”,此時(shí)將 proxy-target-class設置為true就可以了 --> 

<aop:config proxy-target-class="true">
  <aop:advisor pointcut="execution(* *..*Service.*(..))"
   advice-ref="txAdvice" />
 </aop:config>
</beans>
6.測試類(lèi)

 

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.huahuan.devicemanager.common.entity.RtoUser;
import com.huahuan.devicemanager.server.dao.BaseDao;

public class SpringJpaTest {
 public static void main(String[] args){
  ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
  BaseDao baseDao = (BaseDao) ac.getBean("rtoUserDao");
  RtoUser rtoUser = new RtoUser();
  rtoUser.setUserName("at6");
  rtoUser.setPassword("1");
  while(true){
   if(null == baseDao.find(rtoUser)){
    baseDao.save(rtoUser);
    rtoUser = (RtoUser) baseDao.find(rtoUser);
   } else {
    rtoUser = (RtoUser) baseDao.find(rtoUser);
   }
   System.out.println("用戶(hù)名:"+rtoUser.getUserName()+"\n"+"密     碼:"+rtoUser.getPassword());
  }
 }
}

打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Spring Framework之最佳實(shí)踐二
spring Transaction Manager和hibernate session 吐血經(jīng)驗談
struts2 hibernate spring配置管理(二)——DAO層(一)
微服務(wù)SpringDATA筆記
將Spring和Hibernate 與WAS一起使用
Struts Spring Hibernate整合筆記_TerrySpace
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久