发表于: 2017-10-07 22:55:01

2 706


今天完成的事情:

完成小课堂讲的tcp/ip

学习hibernate,了解最基础的hibernate的使用

public class NewsManager {
public static void main(String[] args) {
//实例化Configuration,这行代码默认加载hibernate.cfg.xml
       Configuration conf = new Configuration().configure();
       //Configuration创建SessionFactory
       SessionFactory sf = conf.buildSessionFactory();
       //实例化Session
       Session sess = sf.openSession();
       //开始事物
       Transaction tx = sess.beginTransaction();
       //创建消息实例
       News n = new News();
       //设置消息标题和消息内容
       n.setTitle("scau");
       n.setContent("beyondBoy");
       //保存消息
       sess.save(n);
       //News n2 = (News) sess,get(News.class,1);
       //输出fullContent属性值
       //System.out.println(n2.getFullContent());
       //提交事物
       tx.commit();
       //关闭session
       sess.close();

   }
}
<?xml version="1.0" encoding="gb2312"?>
<!-- 指定Hiberante3映射文件的DTD信息 -->
<!DOCTYPE hibernate-mapping PUBLIC
       "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
       "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<!-- hibernate-mapping是映射文件的根元素 -->
<hibernate-mapping package="yh.domain">
   <!-- 每个class元素对应一个持久化对象 -->
   <class name="News" table="news_table">
       <!-- id元素定义持久化类的标识属性 -->
       <id name="id">
           <generator class="native"/>
       </id>
       <!-- property元素定义常规属性 -->
       <property name="title" not-null="true"/>
       <property name="content"/>
       <!-- 通过formula指定该属性值没有对应的实际数据列
           该属性值将由系统根据表达式来生成-->
       <property name="fullContent"
                 formula="(select concat(nt.title,nt.content)
            from news_table nt where nt.id= id)"/>
   </class>
</hibernate-mapping>


<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
   "-//Hibernate/Hibernate Configuration DTD//EN"
   "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
 <session-factory>
   <!-- 指定连接数据库所用的驱动 -->
   <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
   <!-- 指定连接数据库的urlhibernate连接的数据库名 -->
   <property name="connection.url">jdbc:mysql://localhost/hb</property>
   <!-- 指定连接数据库的用户名 -->
   <property name="connection.username">root</property>
   <!-- 指定连接数据库的密码 -->
   <property name="connection.password">saber</property>
   <!-- 指定连接池里最大连接数 -->
   <property name="hibernate.c3p0.max_size">20</property>
   <!-- 指定连接池里最小连接数 -->
   <property name="hibernate.c3p0.min_size">1</property>
   <!-- 指定连接池里连接的超时时长 -->
   <property name="hibernate.c3p0.timeout">5000</property>
   <!-- 指定连接池里最大缓存多少个Statement对象 -->
   <property name="hibernate.c3p0.max_statements">100</property>
   <property name="hibernate.c3p0.idle_test_period">3000</property>
   <property name="hibernate.c3p0.acquire_increment">2</property>
   <property name="hibernate.c3p0.validate">true</property>
   <!-- 指定数据库方言 -->
   <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
   <!-- 根据需要自动创建数据库 -->
   <property name="hibernate.hbm2ddl.auto">update</property>
   <!-- 显示Hibernate持久化操作所生成的SQL -->
   <property name="sfhow_sql">true</property>
   <!-- SQL脚本进行格式化后再输出 -->
   <property name="hibernate.format_sql">true</property>
   <mapping resource="domain/News.hbm.xml"/>
 </session-factory>

</hibernate-configuration>

作为hibernate其实与mybatis类似 都是数据持久层

明天计划的事情:

继续学习hibernate

留时间学习springboot

投简历

遇到的问题:

在网上找了一个spring springmvc hibernate的例子...结果疯狂的报错

07-Oct-2017 23:01:53.038 严重 [RMI TCP Connection(3)-127.0.0.1] org.springframework.web.context.ContextLoader.initWebApplicationContext Context initialization failed

 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.context.annotation.internalAsyncAnnotationProcessor' defined in class path resource [org/springframework/scheduling/annotation/ProxyAsyncConfiguration.class]: Instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanDefinitionStoreException: Factory method [public org.springframework.scheduling.annotation.AsyncAnnotationBeanPostProcessor org.springframework.scheduling.annotation.ProxyAsyncConfiguration.asyncAdvisor()] threw exception; nested exception is java.lang.IllegalArgumentException: @EnableAsync annotation metadata was not injected

at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:601)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1113)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1008)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:505)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)

at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:302)

at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:229)

at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:298)

at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:198)

at org.springframework.context.support.PostProcessorRegistrationDelegate.registerBeanPostProcessors(PostProcessorRegistrationDelegate.java:220)

at org.springframework.context.support.AbstractApplicationContext.registerBeanPostProcessors(AbstractApplicationContext.java:615)

at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:465)

at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:403)

at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)

at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:106)

at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4734)

at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5196)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)

at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:752)

at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:728)

at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)

at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1702)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300)

at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)

at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)

at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:456)

at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:405)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300)

at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)

at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)

at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1468)

at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76)

at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1309)

at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1401)

at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:829)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:346)

at sun.rmi.transport.Transport$1.run(Transport.java:200)

at sun.rmi.transport.Transport$1.run(Transport.java:197)

at java.security.AccessController.doPrivileged(Native Method)

at sun.rmi.transport.Transport.serviceCall(Transport.java:196)

at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)

at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)

at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683)

at java.security.AccessController.doPrivileged(Native Method)

at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)

at java.lang.Thread.run(Thread.java:745)

收获:

学习了hibernate和tcp/ip


返回列表 返回列表
评论

    分享到