Tag: mysql

在java中使用相同的数据源将两个应用程序连接到同一个数据库会有什么影响?

在同一个jboss服务器上运行有2个不同的应用程序。 我想通过相同的数据源将这两个应用程序与同一个mysql数据库连接起来。 运行这两个应用程序会产生什么样的影响 – 我想这些问题可能会发生。 – 表锁定问题,性能降低,连接问题,ACID属性丢失问题。 这种方法有什么缺点吗?

将MySQL连接到Spring应用程序

我想使用MySQL数据库,而不是像hsqldb那样使用运行时数据库。 我克隆了这个存储库 ,它使用hsqldb作为其数据库。 因为我想学习如何使用基于rest的spring应用程序的关系数据库。 所以我对pom.xml进行了以下更改:更改了pom.xml: 4.0.0 org.springsource.restbucks restbucks war 1.0.0.BUILD-SNAPSHOT Spring RESTBucks org.springframework.boot spring-boot-starter-parent 1.1.5.RELEASE Evans-RC1 8.0.9 org.springframework.boot spring-boot-starter-data-rest org.springframework.boot spring-boot-starter-data-jpa org.hibernate hibernate-entitymanager org.springframework.boot spring-boot-starter-test org.jadira.usertype usertype.extended 3.2.0.GA com.fasterxml.jackson.datatype jackson-datatype-jsr310 org.hibernate hibernate-entitymanager mysql mysql-connector-java org.springframework spring-tx-events 1.0.0.BUILD-SNAPSHOT org.projectlombok lombok 1.14.4 provided com.jayway.jsonpath json-path org.apache.maven.plugins maven-compiler-plugin 1.8 1.8 org.springframework.boot spring-boot-maven-plugin spring-libs-snapshot http://repo.spring.io/libs-snapshot true spring-libs-snapshot http://repo.spring.io/libs-snapshot true […]

无法使用Eclipse访问Amazon RDS

我刚刚使用它的向导在Amazon RDS中安装了MySQL。 我选择了我的EC2实例使用的相同安全组。 我试图通过Eclipse AWS工具包访问它。 我所做的是右键单击RDS实例并单击“Conenct”。 然后它询问密码并尝试连接,但最终出现以下错误。 Unable to connect to RDS database java.lang.reflect.InvocationTargetException 没有一个解决方案,我已经看到有关此事的数量。

Hibernate – 将java.util.Calendar映射到MySQL BIGINT

我的实体中有一个Calendar字段 @Column(nullable = false) private Calendar transmissionDate; 这需要毫秒精度。 就像,Hibernate生成一个模式,将该字段映射到 +——————-+————–+——+—–+———+ | Field | Type | Null | Key | Default | +——————-+————–+——+—–+———+ | transmission_date | datetime | NO | | NULL | +——————-+————–+——+—–+———+ 在MySQL中。 MySQL中的datetime类型在第二个之后丢弃所有内容 ,因此我失去了精度。 我一直在使用的解决方案是 @Column(nullable = false) private Long transmissionDate; 并在需要时从中生成Calendar实例。 这是一个巨大的麻烦,我想知道Hibernate是否具有可以克服它的function。 这个问题展示了如何使用自定义类型,但是,实现它,Hibernate仍然映射到datetime列类型。 如何在我的实体中仍然使用Calendar类型时保持毫秒精度?

使用TIMESTAMPDIFF的JPA Hibernate公式中的SQL Literal

对于使用@Formula定义伪列的JPA实体: @Formula(“TIMESTAMPDIFF(SECOND, dateColA, dateColB)”) private Long duration; 这里预计SECOND将被视为常量字面值(使用MySQL),但是,在生成的JPQL中,它被视为列名,就像dateColA和dateColB一样,如: where … TIMESTAMPDIFF(entity_.SECOND, entity_.dateColA, entity_.dateColB) … 我想知道如何为SECOND文字正确生成JPQL? 谢谢

如何为这个SQL查询编写Hibernate Criteria?

我有一个像这样的查询 询问 SELECT attendance_entry.roll_no,attendance_entry.absent_date,attendance_entry.absent_status,attendance_entry.leave_status,attendance_entry.od_status FROM attendance,attendance_entry WHERE attendance.class_id='”+classId+”‘ && attendance.section_id='”+sectionId+”‘ && attendance_entry.absent_date= STR_TO_DATE(‘”+date+”‘,’%a %b %d %H:%i:%s IST %Y’) GROUP BY attendance_entry.roll_no”; 我需要为Parse Json写标准 我尝试了以下Criteria Criteria cr = getSession().createCriteria(AttendanceEntry.class) .setProjection(Projections.projectionList() .add(Projections.property(“rollno”),”rollno”) .add(Projections.property(“absent”),”absent”) .add(Projections.property(“leave”),”leave”) .add(Projections.property(“od”),”od”) .add(Projections.groupProperty(“rollno”),”rollno”)) .add(Restrictions.eq(“attendance.classYear.id”, classId)) .add(Restrictions.eq(“attendance.section.id”, sectionId)) .add(Restrictions.eq(“absentDate”, date)) .setResultTransformer(Transformers.aliasToBean(AttendanceEntry.class)); return cr.list(); 我有以下错误 错误 could not resolve property: attendance.classYear.id of: com.technofolks.model.AttendanceEntry; nested exception is […]

嵌套事务用例中的外部事务没有看到数据库中持久存在的更新(JPA,MySQL,Spring Framework和Hibernate)

我有一个案例,其中一个事务开始并沿途(在代码中)一个方法被调用,启动一个新的事务。 内部事务完成后,数据将保留在数据库中,但数据在外部事务中不可见。 这是代码片段.. @Transactional(readOnly = true) public void doSomething() { // Some stuff happens here doMoreStuff(); // Some more stuff happens here. } @Transactional(propagation = Propagation.REQUIRES_NEW) public void doMoreStuff() { … } “doMoreStuff”方法更新了数据库中的一些数据,之后“doSomething”方法需要查看更新的数据,但事实并非如此。 例如,“doMoreStuff”将布尔值从false设置为true并将其保持不变。 “doSomething”方法仍然只是将值视为false。 有什么建议么?

无法通过servlet连接到mysql

我花了两天时间试图找出为什么我的servlet没有连接到MySQL数据库。 我安装了MySQL并正常工作和Eclipse。 每当我尝试建立连接时,我都会获得com.mysql.jdbc.Driver的ClassNotFoundException ,它实际上是正确导入的。 我正在使用的连接器是作为外部jar正确添加的mysql-connector-java5.1.14 ,所以一切似乎都很好。 这是我的代码: protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String dbUrl=”jdbc:mysql://localhost:3306/test”; String username=”root”; String password=””; try { Class.forName(“com.mysql.jdbc.Driver”).newInstance(); conn=DriverManager.getConnection(dbUrl); System.out.println(“Connected!”); } catch (SQLException e) { e.printStackTrace(); System.out.println(“not connected”); } catch(ClassNotFoundException x){ x.printStackTrace(); } catch(Exception e){ e.printStackTrace(); } } 这是堆栈跟踪的一部分: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1491) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:375) […]

DBUtils无法填充Java Bean的字段

我有一个像这样的mysql表: CREATE TABLE `sezione_menu` ( `id_sezione_menu` int(11) unsigned NOT NULL AUTO_INCREMENT, `nome` varchar(256) NOT NULL DEFAULT ”, `ordine` int(11) DEFAULT NULL, PRIMARY KEY (`id_sezione_menu`) )ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; 我使用apache dbutils来查询我的数据库,使用以下方法: public static List getSezioniMenu() { String sql = “SELECT * FROM sezione_menu”; try { QueryRunner qr = new QueryRunner(createDataSource()); ResultSetHandler rsh = new BeanListHandler(SezioneMenu.class); List […]

在MySQL中严格自动递增值

我必须使用严格的顺序ID为表(行)中的每个元素创建一个MySQL InnoDB表。 ID中不能有任何间隙 – 每个元素必须具有不同的ID,并且必须按顺序分配。 并发用户在此表上创建数据。 我遇到了MySQL“自动增量”行为,如果事务失败,则不使用PK号,留下间隙。 我已经阅读了在线复杂的解决方案,这些解决方案并没有说服我和其他一些没有真正解决我的问题( 在MySQL / InnoDB中模拟自动增量, 在同步的mysql服务器上设置手动增量值 ) 我想最大限度地提高并发性。 我不能让用户在桌面上写字并等待很长时间。 我可能需要对表进行分片…但仍然保持ID计数。 表中元素的顺序并不重要,但ID必须是顺序的(即,如果在另一个元素之前创建元素不需要具有较低的ID,则不允许在ID之间存在间隙)。 我能想到的唯一解决方案是使用额外的COUNTER表来保持计数。 然后用空的“ID”(不是PK)在表中创建元素,然后锁定COUNTER表,获取数字,将其写在元素上,增加数字,解锁表。 我认为这样可以正常工作,但有一个明显的瓶颈:在锁定期间,没有人能够写任何ID。 此外,如果持有表的节点不可用,则是单点故障。 我可以创建一个“主人”吗? 复制但我不确定这种方式我是否冒冒险使用过时的ID计数器(我从未使用过复制)。 谢谢。