hibernate中的事务问题

package cn.itcast.hibernatetest;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.Test;

import cn.itcast.entity.User;

public class HibernateDemo {
@Test
public void testAdd() {
//第一步 加载hibernate核心配置文件
//到src下面照到一个名词是hibernate.cfg.xml
//在hibernate里面封装了一个对象
Configuration cfg=new Configuration();
cfg.configure();
//第二步,创建一个SessionFactory对象
//读取hibernate核心配置文件,创建sessionFactory
//在过程中,根据映射关系,在配置数据库里面把表创建
SessionFactory sessionFactory = cfg.buildSessionFactory();
//第三步 使用SessionFactory创建session对象
//类似于连接
Session session = sessionFactory.openSession();
//第四步 开启事务
Transaction tx = session.beginTransaction();

 //第五步  写具体逻辑crud操作

User user = new User();
user.setUsername("小王");
user.setPassword("250");
user.setAdress("日本");
//调用session的方法实现添加
session.save(user);

      //第六步 提交事务

tx.commit();
//第七步 关闭资源
session.close();
sessionFactory.close();
}
}
代码tx.commit();报错,输入tx.的时候也没有提示commit()方法,为什么,错误提示好像是Transaction中没有commit方法?
错误提示如下:
The type javax.persistence.EntityTransaction cannot be resolved. It is indirectly referenced from required .class files
有没有大神解答下,谢谢了

2个回答

导入的jar包错了
应该导入org.hibernate.Transaction

itcast。。。这些都是小问题,事务都是spring搞定的,不用你写的,马上学到了,急啥

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
hibernate和mybatis事务问题
我想在web应用中使用hibernate和mybatis配合做数据持久化,但是遇到数据源和 事务的问题。首先hibernate是使用的proxool连接池,在自己写的hibernate工具 类中加载hibernate的sessionFactory以及session的打开和事务管理等。那么问题 来了,我在mybatis中该如何配置来使用连接池,以及和hibernate使用同一个事务。 请大神支招。
在Hibernate声明式事务中,提交事务抛出异常
感谢在前 在使用Spring+Hibernate声明式事务中,需要插入大量数据,为了提高插入效率, 需要每隔固定条数提交一次错误,但是在提交事务之后,声明式事务自动提交时就 会抛出异常: Could not commit Hibernate transaction; nested exception is org.hibernate.Tra nsactionException: Transaction not successfully started 如何才能在声明事务中提交事务,而不产生异常? 代码如下: ![代码参见图片](https://img-ask.csdn.net/upload/201509/29/1443520489_213699.jpg) 异常信息如下: ![异常信息] (https://img-ask.csdn.net/upload/201509/29/1443520664_162795.jpg)
关于hibernate 事务提交的问题
近期做项目,遇到了一个问题,用hibernate做数据持久化,可是有的业务逻辑要求是这样的,三张表是独立的。 如何将三张表的增删改放到一个事务里面? 比如:我先保存一个新的人员信息。然后再查询出保存完之后的人员信息同时要update另外一张表里面。 问题就是:session.save(obj) 之后再查询的话。这个对象还是游离状态。会查询不到。 所以就不能后面的update操作
Hibernate和纯jdbc连接共同使用产生的事务问题
最近在项目里遇到了一个问题,新系统持久化使用的是hibernate3,但是为了实现一些功能必须调用一个另外的老系统(和新系统是同一个数据库,部署在同一个wls的domain下)的jar包内提供的方法,但是这个老的系统持久化使用的是jdbc的方式连接的数据库,但是数据源的获取方式和新系统一样,都是通过jndi从wls上查找。可是这样就产生了事务问题,hibernate3的事务提交都是用spring控制的,而老系统的jar方法必须要手动commit才能提交事务,可是这样,一旦hibernate的事务异常,产生了回滚,jar包提供的方法持久化的数据就无法回滚。 各位持久化方面的大师,有没有什么好的建议,怎么解决这个问题,或者有其他的方法让hibernate和jdbc的方式和平共处。 [b]问题补充:[/b] 感谢各位的关注,不过我找到了一个刚好的方法,Spring里有个DataSourceUtil的类,通过getConnection方法可以把当前连接和当前线程绑定,这样两种持久化的方式使用的是同一个connection,也就达到了事务一致。
Spring 集成 Hibernate事务问题
Spring 集成 Hibernate事务问题 今天碰上了个问题, 在Spring 集成 Hibernate事务时我记得事务传播属性为PROPAGATION_REQUIRED时产生内部异常时事务会回滚,但今天我在做实验时在被事务管理的方法中进行了数据库操作后强行抛出Exception异常, 但异常并没有使事务回滚,起初我以为是配置的问题,但在事务传播属性里加入-Exception,事务传播属性定义改为以下的样子: <property name="transactionAttributes"> <props> <prop key="delete*">PROPAGATION_REQUIRED,-Exception</prop> </props> </property> 再运行程序事务可以回滚,我想问事物传播属性的缺省定义PROPAGATION_REQUIRED会不会产生事务回滚? 如果能产生回滚哪些异常会使事务回滚? 请朋友们指点一下.
hibernate 事务的问题
![图片说明](https://img-ask.csdn.net/upload/201805/22/1526971361_257634.png) ![图片说明](https://img-ask.csdn.net/upload/201805/22/1526971395_500187.png) hiberante 的事务配置见上图 执行service 里的方法时报错 process 里有两个service 操作 ![图片说明](https://img-ask.csdn.net/upload/201805/22/1526971455_420302.png) ![图片说明](https://img-ask.csdn.net/upload/201805/22/1526971473_181592.png)
Hibernate手动事务管理问题
[code="java"] public void deleteMoreFlowCards(String[] vouNos) { String tempVouNos = VouNoGenerator.getString(vouNos, ","); String sql = "delete from t_flow_card where vouNo in("+tempVouNos+")"; String flowCardDetailSql = "delete from t_flow_card_detail where vou_no in("+tempVouNos+")"; [color=red]此处使用getCurrentSession,就抱Transaction not successfully started openSession和getCurrentSession的区别是,getCurrentSession提交后,session会自动关闭 而openSession不会,需手动提交,可和这没关系啊。[/color] Session session = getHibernateTemplate().getSessionFactory().openSession(); //Session session = getHibernateTemplate().getSessionFactory().getCurrentSession(); //SQLQuery sqlQuery = session.createSQLQuery(sql); Connection conn = null; PreparedStatement psmt=null; Transaction tx = null; try { //conn.setAutoCommit(false); tx = session.beginTransaction(); conn = session.connection(); psmt = conn.prepareStatement(flowCardDetailSql); psmt.executeUpdate(); psmt = conn.prepareStatement(sql); psmt.executeUpdate(); System.out.println("commit"+conn.getAutoCommit()); //conn.commit(); tx.commit(); } catch (SQLException e) { e.printStackTrace(); if(tx != null){ tx.rollback(); } /*if(conn != null){ try { conn.rollback(); } catch (SQLException e1) { e1.printStackTrace(); } }*/ }finally{ try { //conn.setAutoCommit(true); psmt.close(); conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //sqlQuery.executeUpdate(); } [/code] 描述见红色字体 补充:Hibernate 使用jdbc进行批量删除时,事务管理是使用Connection来管理还是使用Hibernate封装好的Transaction来管理呢?请给建议。谢谢。 字不变红,再补: [color=red]此处使用getCurrentSession,就抱Transaction not successfully started openSession和getCurrentSession的区别是,getCurrentSession提交后,session会自动关闭 而openSession不会,需手动提交,可和这没关系啊。[/color] Session session = getHibernateTemplate().getSessionFactory().openSession(); [b]问题补充:[/b] [color=red] getCurrentSession就指得到当前可用的session,如果压根就没开启事务, [/color] 我事务管理采用的spring的事务管理,不要我手动开啊, [color=red] getCurrentSession就指得到当前可用的session [/color],如果没有会开新的吧
在spring中配置hibernate的核心事务管理器,一旦HibernateTransactionManager中的sessionFactory是以hibernate核心配置文件创建则Tomcat报404
hibernate.cfg.xml中配置 ![图片说明](https://img-ask.csdn.net/upload/201911/17/1573929713_991757.png) ---------------------------------- sessionFactory以DataSource注入的方式则不会404 ![图片说明](https://img-ask.csdn.net/upload/201911/17/1573929839_521888.png) ------------------------------------------ 但是当sessionFactory以hibernate.cfg.xml创建,用来注入HibernateTransactionManager,则无论怎么样Tomcat都报404 ![图片说明](https://img-ask.csdn.net/upload/201911/17/1573929948_513761.png) ![图片说明](https://img-ask.csdn.net/upload/201911/17/1573929985_255783.png)
hibernate save、delete添加事务
我是用的myeclipse,在添加hibernate框架的时候,自动生成了xxxxxDao方法,在这里边有save跟delete方法,但这些方法都默认的使用了事务。当我调用他们的时候可能需要多个save放到一个事务里执行,这样就会报错,应该怎么办呢
hibernate提交事务报错,在线等!!!
事务使用的时spring-tx的注解 ``` [ERROR 15:53:03,643] Job DEFAULT.generateCheckPlanCalJob threw an unhandled Exception: org.springframework.scheduling.quartz.JobMethodInvocationFailedException: Invocation of method 'generateCheckPlan' on target class [class com.sun.proxy.$Proxy60] failed; nested exception is org.springframework.transaction.TransactionSystemException: Could not commit JPA transaction; nested exception is javax.persistence.RollbackException: Error while committing the transaction at org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob.executeInternal(MethodInvokingJobDetailFactoryBean.java:320) at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:113) at org.quartz.core.JobRunShell.run(JobRunShell.java:213) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:557) Caused by: org.springframework.transaction.TransactionSystemException: Could not commit JPA transaction; nested exception is javax.persistence.RollbackException: Error while committing the transaction at org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactionManager.java:522) at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:755) at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:724) at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:475) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:270) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at com.sun.proxy.$Proxy60.generateCheckPlan(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.springframework.util.MethodInvoker.invoke(MethodInvoker.java:273) at org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob.executeInternal(MethodInvokingJobDetailFactoryBean.java:311) ... 3 more Caused by: javax.persistence.RollbackException: Error while committing the transaction at org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:93) at org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactionManager.java:513) ... 17 more Caused by: java.lang.IndexOutOfBoundsException: Index: 1, Size: 0 at java.util.ArrayList.rangeCheck(Unknown Source) at java.util.ArrayList.get(Unknown Source) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:265) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:185) at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321) at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:51) at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1216) at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:383) at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:133) at org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:76) ... 18 more [ERROR 15:53:03,649] Job (DEFAULT.generateCheckPlanCalJob threw an exception. org.quartz.SchedulerException: Job threw an unhandled exception. [See nested exception: org.springframework.scheduling.quartz.JobMethodInvocationFailedException: Invocation of method 'generateCheckPlan' on target class [class com.sun.proxy.$Proxy60] failed; nested exception is org.springframework.transaction.TransactionSystemException: Could not commit JPA transaction; nested exception is javax.persistence.RollbackException: Error while committing the transaction] at org.quartz.core.JobRunShell.run(JobRunShell.java:224) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:557) Caused by: org.springframework.scheduling.quartz.JobMethodInvocationFailedException: Invocation of method 'generateCheckPlan' on target class [class com.sun.proxy.$Proxy60] failed; nested exception is org.springframework.transaction.TransactionSystemException: Could not commit JPA transaction; nested exception is javax.persistence.RollbackException: Error while committing the transaction at org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob.executeInternal(MethodInvokingJobDetailFactoryBean.java:320) at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:113) at org.quartz.core.JobRunShell.run(JobRunShell.java:213) ... 1 more Caused by: org.springframework.transaction.TransactionSystemException: Could not commit JPA transaction; nested exception is javax.persistence.RollbackException: Error while committing the transaction at org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactionManager.java:522) at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:755) at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:724) at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:475) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:270) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) at com.sun.proxy.$Proxy60.generateCheckPlan(Unknown Source) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.springframework.util.MethodInvoker.invoke(MethodInvoker.java:273) at org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean$MethodInvokingJob.executeInternal(MethodInvokingJobDetailFactoryBean.java:311) ... 3 more Caused by: javax.persistence.RollbackException: Error while committing the transaction at org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:93) at org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactionManager.java:513) ... 17 more Caused by: java.lang.IndexOutOfBoundsException: Index: 1, Size: 0 at java.util.ArrayList.rangeCheck(Unknown Source) at java.util.ArrayList.get(Unknown Source) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:265) at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:185) at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321) at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:51) at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1216) at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:383) at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:133) at org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:76) ... 18 more ```
Hibernate 嵌套事务,大神请进!
Hibernate、Spring整合,使用HibernateTransactionManager事务管理器,在使用nested嵌套事务的时候,子事务出错时回滚到savepoint,但是Hibernate并没有把出错的操作移除,导致主事务提交的时候session flush又报错,最终主事务和子事务都回滚了。 环境:Spring3.0.2,Hibernate3.6.0,Mysql5.6; 异常是null id in Album entry (don't flush the Session after an exception occurs)【这个是我自己让它报错的,数据库非空校验不过】, 并不是Transaction rolled back because it has been marked as rollback-only。 代码逻辑大致如下: ``` ServiceA { @Transactional(propagation = Propagation.NESTED) @Override public void error() throws Exception { A a = new A(); aDao.save(a); } } ServiceB { @Transactional(propagation = Propagation.REQUIRED) @Override public void success() throws Exception { B b = new B(); b.setName("456"); bDao.save(b); try { aService.error(); } catch (Exception e) { // 这里调用的是ServiceA的error,这是不是Dao,目的用于测试嵌套事务。 } } } ```
spring4.14和hibernate不配置事务也成功currsession.save()到数据库
spring4.14和hibernate4不声明事务currentsession.save仍可以提交。why? spring4和hibernate4我用hibernatetemplate.save报错,说什么事务为只读,我以为是切面配置错了,然后怎么调也不行就换成了currentsession,就行了,然后我把关于事务声明切面的配置文件都注释掉了,getcurrentsession..save还是可以提交,这是为什么啊,不明白了。 从网上找到好多答案,说hibernate4自己可以事务管理,但我不明白自己可以管理的意思是什么,可以不使用spring做任何关于事务的事情了? 还说spring3不支持hibernatetemplate,然后又说4.14又支持了,那我现在用的是4.14,为什么不可以save() spring4.14和hibernate正确的事务管理到底是该怎么配置,是用current就行了,不需要进行事务配置了,还是依旧使用hibernatetemplate然后对配置进行更改?从网上看各种配置都有,有没有谁可以帮忙解答一下我所困惑的这些问题,谢谢。奈何我看不懂官网的文档啊。
hibernate 事务
[code="java"] public ActivityRemark addRemark(String userId, String activityId, int remark, String remarkContent){ ActivityRemark ar = new ActivityRemark(); ar.setUserId(userId); ar.setActivityId(activityId); ar.setRemark(remark); ar.setRemarkContent(remarkContent); [color=red]super.save(ar);[/color] [color=red]updateJoinActivity(ar);[/color] return ar; } public void updateJoinActivity(ActivityRemark ar){ String hql = "update com.huobao.web.entity.JoinActivity u set u.activityRemarkId=? where u.userId=? and u.activityId=?"; super.query(hql, ar.getId(),ar.getUserId(),ar.getActivityId()).executeUpdate(); } [/code] 红色的部分:save是在A表中新增一条数据,updateJoinActivity是更新B中某一条数据的activityRemarkId字段,activityRemarkId字段是外键,其和A表进行关联,现在addRemark这个方法是做了事务的. 现在发生这样的错误: [code="java"]cannot add or update a child row a foreign key constraint fails[/code] 分析原因,应该是updateJoinActivity更新的时候并没有找到A表中插入的数据主键,但是save的确是成功的,难道这个save插入的数据没有commit导致update时找不到主键造成的? 接下来我尝试把save和updateJoinActivity放在不同的事务中,发现成功执行!!! 问题是我想,如果其中一个方法失败的话,都用事务回滚掉!请问有什么办法呢?
spring 配置 hibernate事务
本人的目的是想解决一个Dao更新(this.getHibernateTemplate().update(product);)的时候抛出的一个事务异常:Turn your Session into FlushMode.COMMIT/AUTO or remove 'readOnly' marker from transaction definition. 1、applicationContext.xml(配置文件): --------------------------------------------------------- <?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:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd"> <context:annotation-config/> <!-- 配置 IOC容器 自动扫描的包 --> <context:component-scan base-package="com.bj969.dao"/> <!-- 导入资源文件 --> <context:property-placeholder location="classpath:db.properties"/> <!-- 配置C3P0数据源 --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="user" value="${jdbc.user}"/> <property name="password" value="${jdbc.password}"/> <property name="jdbcUrl" value="${jdbc.jdbcUrl}"/> <property name="driverClass" value="${jdbc.driverClass}"/> <property name="initialPoolSize" value="${jdbc.initPoolSize}"/> <property name="maxPoolSize" value="${jdbc.maxPoolSize}"/> </bean> <!-- 配置 具名参数 <bean id="namedParameterJdbcTemplate" class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate"> <constructor-arg ref="dataSource"></constructor-arg> </bean> --> <!-- 配置 SessionFactory 的实例 --> <bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> <!-- 配置数据源 --> <property name="dataSource" ref="dataSource"/> <!-- 配置 Hibernate 配置文件的位置及名称 --> <property name="configLocation" value="classpath:hibernate.cfg.xml"/> <!-- 配置 Hibernate 映射文件的位置及名称 --> <property name="mappingLocations" value="classpath:com/bj969/hibernate/entities/*.hbm.xml"/> </bean> <!-- 配置事务容器 --> <bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager"> <property name="sessionFactory" ref="sessionFactory"/> </bean> <!-- 支持 @Transactional 标记 --> <tx:annotation-driven transaction-manager="transactionManager"/> </beans> 2、Dao文件部分代码: ---------------------------- @Transactional @Service public class ProductDao extends HibernateDaoSupport { @Resource(name="sessionFactory") public void setMySessionFactory(SessionFactory sessionFactory){ super.setSessionFactory(sessionFactory); } public void save(Product product) { this.getHibernateTemplate().save(product); } public void delete(Product product) { this.delete(product); } @Transactional(readOnly=false) public void update(Product product) { this.getHibernateTemplate().update(product); } 问题:<tx:annotation-driven transaction-manager="transactionManager"/> 一加上程序还未运行就提示错误。 ![图片说明](https://img-ask.csdn.net/upload/201603/22/1458639119_566651.png) 高手帮忙看看我的事务配置文件有没有问题,我采用的是全注解方式,但 <tx:annotation-driven 一加到配置文件里还未运行就有错误。
hibernate事务开启不成功的错误
package cn.jbit.test; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.hibernate.cfg.Configuration; import org.hibernate.service.ServiceRegistry; import org.hibernate.service.ServiceRegistryBuilder; import cn.jbit.entity.User; import cn.jbit.util.HibernateUtil; public class test { private static final SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); public static void main(String[] args) { Session session=null; Transaction tx=null; try { Configuration cfg=new Configuration().configure(); ServiceRegistry serviceRegistry=new ServiceRegistryBuilder().applySettings(cfg.getProperties()).buildServiceRegistry(); SessionFactory sessionFactory=cfg.buildSessionFactory(serviceRegistry); session=sessionFactory.openSession(); tx=session.beginTransaction(); User user=new User(); user.setName("liufang"); user.setBorn(sdf.parse("1990-08-06")); session.save(user); tx.commit(); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace(); }catch (Exception e) { // TODO: handle exception if(session!=null){ session.getTransaction().rollback(); } }finally{ HibernateUtil.closeSession(session); } } } 报错信息: log4j:WARN No appenders could be found for logger (org.jboss.logging). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. Exception in thread "main" org.hibernate.TransactionException: Transaction not successfully started at org.hibernate.engine.transaction.spi.AbstractTransactionImpl.rollback(AbstractTransactionImpl.java:200) at cn.jbit.test.test.main(test.java:43) 相应jar包如图所示: ![图片说明](https://img-ask.csdn.net/upload/201503/30/1427703883_43525.png) hibernate.xml <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> <hibernate-configuration> <session-factory> <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.url ">jdbc:mysql://localhost:3306/test</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.connection.password">root</property> <property name="show_sql">true</property> <!--<property name="hibernate.hbm2ddl.auto">update</property> --><mapping resource="cn/jbit/entity/User.hbm.xml"/> </session-factory> </hibernate-configuration> User.hbm.xml配置文件 <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <!-- Demonstrates use of the enhanced sequence-based identifier generator, with no performance optimizations (the DB is hit everytime when generating a value). --> <hibernate-mapping package="cn.jbit.entity"> <class name="User" table="t_user"> <id name="id" column="id"> <generator class="native"><!-- <param name="table_name">ID_SEQ_TBL_BSC_SEQ</param> --></generator> </id> <property name="name" type="string"/> <property name="born" type="timestamp"/> </class> </hibernate-mapping>
spring+hibernate 注解事务配置的问题
在配置文件中添加了 <tx:annotation-driven transaction-manager="transactionManager" /> 以后。就出现了这个错误![图片说明](https://img-ask.csdn.net/upload/201708/11/1502417281_123893.png) 具体: Multiple annotations found at this line: - Class dependency error 'core/support/ExtJSBaseParameter' occurred on aspect definition 'Aspect definition [\basemanager\src\main\resources\applicationContext.xml:87] advise type [after] advise [org.springframework.transaction.interceptor.TransactionInterceptor.invoke]' while processing bean 'roleAuthorityController (8) [com.zhiwlc2.controller.RoleAuthorityController]'. Check if builder classpath is complete - Class dependency error 'core/service/Service' occurred on aspect definition 'Aspect definition [\basemanager\src\main\resources\applicationContext.xml:87] advise type [after] advise [org.springframework.transaction.interceptor.TransactionInterceptor.invoke]' while processing bean 'sysUserServiceImpl (8) [com.zhiwlc2.service.impl.SysUserServiceImpl]'. Check if builder classpath is complete - Class dependency error 'core/support/ExtJSBaseParameter' occurred on aspect definition 'Aspect definition [\basemanager\src\main\resources\applicationContext.xml:87] advise type [after] advise [org.springframework.transaction.interceptor.TransactionInterceptor.invoke]' while processing bean 'departmentController (8) [com.zhiwlc2.controller.DepartmentController]'. Check if builder classpath is complete……………… 运行时暂时没发现报错。
Spring 2 + Hibernate 3 事务整合问题
公司一直在用Spring + hibernate作为开发框架,事务采用spring声明式,我指定了在BPO(业务层)类中以 ×TX 方法 以事务执行,有以下类 [code="java"] public class BmsLogFacade{ private BmsLogBPO myBmsLogBPO; public void writeLogSave(){ TBmsLogDTO dto=getLogDTO(); myBmsLogBPO.saveTX(dto); System.out.println(dto.getId()); } public void writeLogCreate(){ TBmsLogDTO dto=getLogDTO(); myBmsLogBPO.create(dto); System.out.println(dto.getId()); } public TBmsLogDTO getLogDTO(){ ... } } public class BmsLogBPO{ private BmsLogDAO myBmsLogDAO; public void saveTX(TBmsLogDTO dto) throws AppException { myBmsLogDAO.save(dto); } public void create(TBmsLogDTO dto){ this.saveTX(dto); } } [/code] 当我使用 BmsLogFacade 的 writeLogSave 方法是可以将 DTO 插入到数据库中,而当我使用writeLogCreate 方法,hibernate 都己经打印出来插入语句和DTO的ID信息,而到数据库中查询,却找不到刚插入的那条记录,我怀疑Spring在 调用BmsLogBPO 时创建了一个 AOP 代理,而该代理在 线程方法调用堆栈 中当 第一次调用该类的方法时,即打开了一个事务了,如果该方法没有配置事务时,Spring 默认给它一个只读事务,以致后来执行到代理类的 ×TX需要读写事务时,PROPAGATION_REQUIRED 的属性配置发现己有事务,而不再创建读写事务,致使最终数据不能更新到数据库,因Spring 的AOP 不是太了解,上面只是本人猜测。这问题己困扰我几天了。以下是Spring 配置: [code="xml"] <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath:jdbc.properties</value> </list> </property> </bean> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName"> <value>${jdbc.driverClassName}</value> </property> <property name="url"> <value>${jdbc.url}</value> </property> <property name="username"> <value>${jdbc.username}</value> </property> <property name="password"> <value>${jdbc.password}</value> </property> <property name="maxActive"> <value>100</value> </property> <property name="maxIdle"> <value>3</value> </property> <property name="maxWait"> <value>-1</value> </property> <property name="defaultAutoCommit"> <value>false</value> </property> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="lobHandler"> <ref bean="oracleLobHandler" /> </property> <property name="dataSource"> <ref local="dataSource" /> </property> <property name="mappingDirectoryLocations"> <list> <value>classpath:/hbm</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.Oracle9iDialect </prop> <prop key="hibernate.show_sql">true</prop> <prop key="hibernate.format_sql">true</prop> <prop key="hibernate.jdbc.batch_size">0</prop> </props> </property> </bean> <bean id="baseTransactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true"> <property name="transactionManager"> <ref bean="transactionManager" /> </property> <property name="transactionAttributes"> <props> <prop key="*RTX">PROPAGATION_REQUIRED,readOnly</prop> <prop key="*TX">PROPAGATION_REQUIRED</prop> </props> </property> </bean> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory"> <ref local="sessionFactory" /> </property> </bean> <bean id="nativeJdbcExtractor" class="org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractor" lazy-init="true" /> <bean id="oracleLobHandler" class="org.springframework.jdbc.support.lob.OracleLobHandler" lazy-init="true"> <property name="nativeJdbcExtractor"> <ref local="nativeJdbcExtractor" /> </property> </bean> <!--业务组件=============================================--> <bean id="myBmsLogDAO" class="com.homeping.bms.adm.model.dao.BmsLogDAO" lazy-init="default" autowire="default" dependency-check="default"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean> <bean id="myBmsLogBPO" parent="baseTransactionProxy" lazy-init="default" autowire="default" dependency-check="default"> <property name="target"> <bean class="com.homeping.bms.adm.model.bpo.BmsLogBPO" lazy-init="default" autowire="default" dependency-check="default"> <property name="myBmsLogDAO"> <ref local="myBmsLogDAO" /> </property> </bean> </property> </bean> <bean id="myBmsLogFacade" class="com.homeping.bms.adm.model.facade.BmsLogFacade" lazy-init="default" autowire="default" dependency-check="default"> <property name="myBmsLogBPO"> <ref local="myBmsLogBPO" /> </property> </bean> </beans> [/code] [b]问题补充:[/b] 如果 方法调用栈 第一次调类 BmsLogBPO 的方法匹配 ×TX,即在Spring 中事务对应传播性 PROPAGATION_REQUIRED,数据是能更新到数据中,如果是第一次是调用方法名不为 *TX 而方法体内包含执行 *TX的语句,却始终不能更新到数据库,Hibernate 的更新语句都己经打印出来,并且系统未有任何异常,就是不能同步到数所库中,我都怀疑是不是Spring 声明式事务管理的bug,因为这种置配方式是官方介绍的 [b]问题补充:[/b] 首先感谢 huangnetian 的回复,上面的事务处理是采用声明式,而非编程式,且在业务层,显示的得到session进行事务控制比较麻烦,并且与声明式背道而驰了
spring配置方式管理hibernate事务的情况下,每过一段时间产生的错误
项目的背景是struts2+spring+hibernate3 weblogic服务器集群环境 数据库oracle spring管理hibernate 采用配置的方式,配置在了service层。 数据库连接方面使用了hibernate自带的连接池(用其他第三方连接池也试了,问题依旧) 现象:每过一段时间便会报错:(部分) jdbc rollback failed ... TransactionException: JDBC commit failed ... java.sql.SQLRecoverableException: No more data to read from socket ... 错误发生的地方大致在dao层,之中有一个方法,我使用的spring注入的 sessionFactory.getCurrentSession(),然后调用其connection()方法,再使用prepareCall(...)调用存储过程,返回结果。 大致的情况如上。从现象上看像是连接池没有释放的样子,但是我已经在方法最后调用的session.close() rs.close() cstmt.close(); 还是会报错。我猜想是否是因为spring管理事务自动关闭session等和我使用hibernaete的session调用存储过程的方式有什么不协调的地方导致的。请高手帮我提供下思路和解决方案。我没有什么c币和奖分,这个该死的问题已经困扰了我三个星期了,我非常愿意为提供正确产生原因并最终成功解决问题的朋友直接100软妹币的感谢!
相见恨晚的超实用网站
相见恨晚的超实用网站 持续更新中。。。
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 free -m 其中:m表示兆,也可以用g,注意都要小写 Men:表示物理内存统计 total:表示物理内存总数(total=used+free) use...
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
python 简易微信实现(注册登录+数据库存储+聊天+GUI+文件传输)
socket+tkinter详解+简易微信实现 历经多天的努力,查阅了许多大佬的博客后终于实现了一个简易的微信O(∩_∩)O~~ 简易数据库的实现 使用pands+CSV实现数据库框架搭建 import socket import threading from pandas import * import pymysql import csv # 创建DataFrame对象 # 存储用户数据的表(...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发...
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 演示地点演示 html代码如下` music 这个年纪 七月的风 音乐 ` 然后就是css`*{ margin: 0; padding: 0; text-decoration: none; list-...
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。
数据库优化 - SQL优化
以实际SQL入手,带你一步一步走上SQL优化之路!
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 cpp 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7 p...
通俗易懂地给女朋友讲:线程池的内部原理
餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小型人工智障。 知识可以运用在不同地方,不一定非是天气预报。
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹...
面试官:你连RESTful都不知道我怎么敢要你?
干货,2019 RESTful最贱实践
刷了几千道算法题,这些我私藏的刷题网站都在这里了!
遥想当年,机缘巧合入了 ACM 的坑,周边巨擘林立,从此过上了"天天被虐似死狗"的生活… 然而我是谁,我可是死狗中的战斗鸡,智力不够那刷题来凑,开始了夜以继日哼哧哼哧刷题的日子,从此"读题与提交齐飞, AC 与 WA 一色 ",我惊喜的发现被题虐既刺激又有快感,那一刻我泪流满面。这么好的事儿作为一个正直的人绝不能自己独享,经过激烈的颅内斗争,我决定把我私藏的十几个 T 的,阿不,十几个刷题网...
JavaScript 为什么能活到现在?
作者 | 司徒正美 责编 |郭芮 出品 | CSDN(ID:CSDNnews) JavaScript能发展到现在的程度已经经历不少的坎坷,早产带来的某些缺陷是永久性的,因此浏览器才有禁用JavaScript的选项。甚至在jQuery时代有人问出这样的问题,jQuery与JavaScript哪个快?在Babel.js出来之前,发明一门全新的语言代码代替JavaScript...
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
Nginx 原理和架构
Nginx 是一个免费的,开源的,高性能的 HTTP 服务器和反向代理,以及 IMAP / POP3 代理服务器。Nginx 以其高性能,稳定性,丰富的功能,简单的配置和低资源消耗而闻名。 Nginx 的整体架构 Nginx 里有一个 master 进程和多个 worker 进程。master 进程并不处理网络请求,主要负责调度工作进程:加载配置、启动工作进程及非停升级。worker 进程负责处...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
Python 编程开发 实用经验和技巧
Python是一门很灵活的语言,也有很多实用的方法,有时候实现一个功能可以用多种方法实现,我这里总结了一些常用的方法和技巧,包括小数保留指定位小数、判断变量的数据类型、类方法@classmethod、制表符中文对齐、遍历字典、datetime.timedelta的使用等,会持续更新......
吐血推荐珍藏的Visual Studio Code插件
作为一名Java工程师,由于工作需要,最近一个月一直在写NodeJS,这种经历可以说是一部辛酸史了。好在有神器Visual Studio Code陪伴,让我的这段经历没有更加困难。眼看这段经历要告一段落了,今天就来给大家分享一下我常用的一些VSC的插件。 VSC的插件安装方法很简单,只需要点击左侧最下方的插件栏选项,然后就可以搜索你想要的插件了。 下面我们进入正题 Material Theme ...
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
开源并不是你认为的那些事
点击上方蓝字 关注我们开源之道导读所以 ————想要理清开源是什么?先要厘清开源不是什么,名正言顺是句中国的古代成语,概念本身的理解非常之重要。大部分生物多样性的起源,...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
Python 植物大战僵尸代码实现(2):植物卡片选择和种植
这篇文章要介绍的是: - 上方植物卡片栏的实现。 - 点击植物卡片,鼠标切换为植物图片。 - 鼠标移动时,判断当前在哪个方格中,并显示半透明的植物作为提示。
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员...
相关热词 c# 引用mysql c#动态加载非托管dll c# 两个表数据同步 c# 返回浮点json c# imap 链接状态 c# 漂亮字 c# 上取整 除法 c#substring c#中延时关闭 c#线段拖拉
立即提问