SSH整合

来源:互联网 发布:潍坊行知学校贴吧 编辑:程序博客网 时间:2024/06/06 06:59
<id name="id">
          <!--<generator class="uuid.hex" />-->
          <!-- WARN: HHH000409: Using org.hibernate.id.UUIDHexGenerator which does not generate IETF RFC 4122 compliant UUID values; consider using org.hibernate.id.UUIDGenerator instead
           -->
           <generator class="uuid2" />

        </id>

在hibernate中使用uuid自动生成主键,使用uuid.hex会有一个警告信息出现,使用uuid2即可.好像是说什么不符合标准.


2014年8月28日21:51:14

今天捣鼓了很久才把spring和hibernate给整合了.

首先是beans.xml这个玩意,使用的是hibernate最新的4.3.6,在网上找的是hibernate3的配置方式,出错了,把hibernate3改为hibernate4就可以了.之后还添加了一些依赖包.最后出现一个奇怪的问题,百度了几下,才知道spring3和hibernate4.1.7以上版本不兼容.下了spring4..0.0,还不行,又下了个hibernate4.1.6,这下终于是成功插入了.

后面又使用了C3P0连接池,导入了两个包,分别是c3p0-0.9.2.1.jar和mchange-commons-java-0.2.3.4.jar

代码如下:

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"><context:annotation-config /><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"destroy-method="close"><property name="driverClass" value="com.mysql.jdbc.Driver" /><property name="jdbcUrl"value="jdbc:mysql://192.168.0.101/mrz?useUnicode=true&characterEncoding=UTF-8" /><property name="user" value="root" /><property name="password" value="qq1111" /><!--连接池中保留的最小连接数。 --><property name="minPoolSize" value="10" /><!--连接池中保留的最大连接数。Default: 15 --><property name="maxPoolSize" value="100" /><!--最大空闲时间,1800秒内未使用则连接被丢弃。若为0则永不丢弃。Default: 0 --><property name="maxIdleTime" value="1800" /><!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 --><property name="acquireIncrement" value="3" /><property name="maxStatements" value="1000" /><property name="initialPoolSize" value="10" /><!--每60秒检查所有连接池中的空闲连接。Default: 0 --><property name="idleConnectionTestPeriod" value="60" /><!--定义在从数据库获取新连接失败后重复尝试的次数。Default: 30 --><property name="acquireRetryAttempts" value="30" /><property name="breakAfterAcquireFailure" value="true" /><property name="testConnectionOnCheckout" value="false" /></bean><!-- <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean"> 改成:<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> --><bean id="sessionFactory"class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"><property name="dataSource" ref="dataSource" /><property name="mappingResources"><list><value>cn/mrz/demo/model/User.hbm.xml</value></list></property><property name="hibernateProperties"><value>hibernate.dialect=org.hibernate.dialect.MySQL5Dialecthibernate.hbm2ddl.auto=updatehibernate.show_sql=truehibernate.format_sql=truehibernate.cache.use_second_level_cache=truehibernate.cache.use_query_cache=falsehibernate.cache.provider_class=org.hibernate.cache.EhCacheProvider</value></property></bean><bean id="txManager"class="org.springframework.orm.hibernate4.HibernateTransactionManager"><property name="sessionFactory" ref="sessionFactory" /></bean><tx:annotation-driven transaction-manager="txManager" /><bean id="UserService" class="cn.mrz.demo.service.impl.UserServiceBean" /></beans>


以上是spring的配置文件beans.xml的配置

下面是User.hbm.xml模型的配置文件:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-mapping PUBLIC        '-//Hibernate/Hibernate Mapping DTD 3.0//EN'        'http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd'><hibernate-mapping>    <class name="cn.mrz.demo.model.User" table="user">        <id name="id">          <!--<generator class="uuid.hex" />-->          <!-- WARN: HHH000409: Using org.hibernate.id.UUIDHexGenerator which does not generate IETF RFC 4122 compliant UUID values; consider using org.hibernate.id.UUIDGenerator instead           -->           <generator class="uuid2" />        </id>        <property name="username"></property><property name="password"></property><property name="email"></property><property name="joindate"></property>    </class></hibernate-mapping>
下面是模型,没啥好看的.

package cn.mrz.demo.model;import java.util.Date;public class User {private String Id;private String Username;private String Password;private String Email;private Date Joindate;public String getId() {return Id;}public void setId(String id) {Id = id;}public String getUsername() {return Username;}public void setUsername(String username) {Username = username;}public String getPassword() {return Password;}public void setPassword(String password) {Password = password;}public String getEmail() {return Email;}public void setEmail(String email) {Email = email;}public Date getJoindate() {return Joindate;}public void setJoindate(Date joindate) {Joindate = joindate;}}
接口

package cn.mrz.demo.service;import java.util.List;import cn.mrz.demo.model.User;public interface UserService {public void save(User user);public void delete(String id);public void update(User user);public List<User> getUsers();}
实现类

package cn.mrz.demo.service.impl;import java.util.List;import javax.annotation.Resource;import org.hibernate.Session;import org.hibernate.SessionFactory;import org.springframework.transaction.annotation.Transactional;import cn.mrz.demo.model.User;import cn.mrz.demo.service.UserService;public class UserServiceBean implements UserService {    @Resource     private SessionFactory sessionFactory;    @Transactional    public void save(User user) {// TODO Auto-generated method stubSession session = sessionFactory.getCurrentSession();session.persist(user);}@Overridepublic void delete(String id) {// TODO Auto-generated method stub}@Overridepublic void update(User user) {// TODO Auto-generated method stub}@Overridepublic List<User> getUsers() {// TODO Auto-generated method stubreturn null;}}
测试类:

package cn.mrz.demo.view;import java.util.Date;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import cn.mrz.demo.model.User;import cn.mrz.demo.service.UserService;public class TestClass {public static void main(String[] args) {ApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml");UserService ps = (UserService) applicationContext.getBean("UserService");User user = new User();user.setEmail("1111");user.setUsername("1111");user.setPassword("1111");user.setJoindate(new Date());ps.save(user);}}

控制台显示:

2014-8-28 21:49:29 org.springframework.context.support.ClassPathXmlApplicationContext prepareRefresh信息: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@89fbe3: startup date [Thu Aug 28 21:49:29 CST 2014]; root of context hierarchy2014-8-28 21:49:29 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions信息: Loading XML bean definitions from class path resource [beans.xml]2014-8-28 21:49:30 org.hibernate.annotations.common.Version <clinit>INFO: HCANN000001: Hibernate Commons Annotations {4.0.1.Final}2014-8-28 21:49:30 org.hibernate.Version logVersionINFO: HHH000412: Hibernate Core {4.1.6.Final}2014-8-28 21:49:30 org.hibernate.cfg.Environment <clinit>INFO: HHH000206: hibernate.properties not found2014-8-28 21:49:30 org.hibernate.cfg.Environment buildBytecodeProviderINFO: HHH000021: Bytecode provider name : javassist2014-8-28 21:49:31 org.hibernate.dialect.Dialect <init>INFO: HHH000400: Using dialect: org.hibernate.dialect.MySQL5Dialect2014-8-28 21:49:31 org.hibernate.engine.jdbc.internal.LobCreatorBuilder useContextualLobCreationINFO: HHH000423: Disabling contextual LOB creation as JDBC driver reported JDBC version [3] less than 42014-8-28 21:49:31 org.hibernate.engine.transaction.internal.TransactionFactoryInitiator initiateServiceINFO: HHH000399: Using default transaction strategy (direct JDBC transactions)2014-8-28 21:49:31 org.hibernate.hql.internal.ast.ASTQueryTranslatorFactory <init>INFO: HHH000397: Using ASTQueryTranslatorFactory2014-8-28 21:49:31 org.hibernate.tool.hbm2ddl.SchemaUpdate executeINFO: HHH000228: Running hbm2ddl schema update2014-8-28 21:49:31 org.hibernate.tool.hbm2ddl.SchemaUpdate executeINFO: HHH000102: Fetching database metadata2014-8-28 21:49:31 org.hibernate.tool.hbm2ddl.SchemaUpdate executeINFO: HHH000396: Updating schema2014-8-28 21:49:31 org.hibernate.tool.hbm2ddl.TableMetadata <init>INFO: HHH000261: Table found: mrz.user2014-8-28 21:49:31 org.hibernate.tool.hbm2ddl.TableMetadata <init>INFO: HHH000037: Columns: [id, username, joindate, email, password]2014-8-28 21:49:31 org.hibernate.tool.hbm2ddl.TableMetadata <init>INFO: HHH000108: Foreign keys: []2014-8-28 21:49:31 org.hibernate.tool.hbm2ddl.TableMetadata <init>INFO: HHH000126: Indexes: [primary]2014-8-28 21:49:31 org.hibernate.tool.hbm2ddl.SchemaUpdate executeINFO: HHH000232: Schema update complete2014-8-28 21:49:31 org.springframework.orm.hibernate4.HibernateTransactionManager afterPropertiesSet信息: Using DataSource [org.apache.commons.dbcp.BasicDataSource@717d91] of Hibernate SessionFactory for HibernateTransactionManagerHibernate:     insert     into        user        (username, password, email, joindate, id)     values        (?, ?, ?, ?, ?)


0 0
原创粉丝点击