Tag: mysql

从java中的mysql存储过程中获取参数

我有问题从java中的mysql存储过程检索OUT参数。 CALL proc_after_topic_add(‘newtest’,@result); SELECT @result; 这个查询给了我想要的参数,但我将如何在java中检索它。我尝试使用CallableStatement但我得到了 java.sql.SQLException: Callable statments not supported. 错误。请伙计们帮助我。 我试过跟随 String sql = “CALL proc_after_topic_add(?,?);”; CallableStatement cstmt = conn.prepareCall(sql); cstmt.setString(1, topicname); cstmt.registerOutParameter(2, java.sql.Types.INTEGER); ResultSet rs = cstmt.executeQuery(); if (rs.next()) { if (rs.getInt(1) == 1) { res = 0; } else { res = -1; } } 我没有发布存储过程代码,因为它没有任何问题。 PS:I a using mysql 5.5.21 […]

我收到一个空的html / jsp表,没有提取数据

我在同一个论坛上找了四天寻找解决方案的post,但我一直在检查任何解决方案但是徒劳无功。 我真的是堆栈,因为我无法继续掌握JSP,这是我2014年网络编程计划的一个非常大的包裹。 我是JSP和数据库访问的新手……所以我请求你的帮助。 问题: 我有一个简单的MySQL数据库,并设计了一个JSP页面来显示数据库中提取的数据。 我通过命令行尝试并测试了它,是的,数据被完美地提取出来。 但是,返回的JSP页面显示一个带有四个列标题的空html表,类似于下面的一个: SELECT * from Employees; ID Age First Name Last Name 以下是数据库信息: database – ‘EMP’. table – ‘Employees’. Columns; id; age; first; last. data; 100; 28; Zaid; Khan. password – ‘password’ 以下是JSP代码: SELECT operation SELECT * from Employees; Emp ID Age First Name Last Name 但是我怀疑下面的代码(我从JSP程序代码中提取代码),因为当我尝试在自定义标记的双冒号(:)之前和之后关闭间隙时,我收到运行时错误消息。 <sql : setDataSource […]

在服务器上部署一段时间后无法与数据库连接

我在我的服务器上上传了我的war文件,它在部署后运行得很好但是在一段时间后它显示exception。 我正在使用struts2和hibernate 我的hibernate.cfg.xml是 org.hibernate.dialect.MySQLDialect com.mysql.jdbc.Driver jdbc:mysql://localhost:3306/dbName UserName Password round true true true 0 true 20 org.hibernate.context.ThreadLocalSessionContext thread 在控制台上执行查询后,它显示以下Exception 263512233 [http-bio-12414-exec-1768] WARN org.hibernate.util.JDBCExceptionReporter – SQL Error: 0, SQLState: 08003 263512233 [http-bio-12414-exec-1768] ERROR org.hibernate.util.JDBCExceptionReporter – No operations allowed after connection closed.Connection was implicitly closed by the driver. org.hibernate.exception.JDBCConnectionException: could not execute query at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:99) at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66) at […]

如何动态创建预准备语句 – 并重新使用查询

例如,我一直在尝试创建一个处理来自不同类的查询的类,这些类创建不同的对象。 Class Employees, Class Customers, Class Sales 我想通过从JTextField值派生的构造函数传递SQL查询(到查询类“数据库”)。 例如,来自两个不同的类: new Database (SELECT PRODUCT FROM SALES WHERE DATE = YESTERDAY); new Database (SELECT FULLNAMES FROM CUSTOMER WHERE ADDRESS = NEWYORK); 我面临的问题是动态创建以下项目(PreparedStatement Parameters): stmt.setString(2, NEWYORK); 所以“sql”在“?” 可以填充: String sql = “SELECT FULLNAMES FROM CUSTOMER WHERE ADDRESS = ?”; 在我的项目中,可能有一个语句将值传递给参数,如上所述,或者可能有更多参数,意味着更多语句,因此上述内容无法重用。 任何人都可以有关于如何生成“stmt.setString(2,NEWYORK);”的想法 动态地,以便我可以根据传递的参数数量动态生成它。 所以我可以举例说: stmt.setString(1, NEWYORK); stmt.setString(2, FULLNAMES); stmt.setString(3, […]

准备好的陈述问题

在以下代码中: PreparedStatement statement = conn .prepareStatement(SQLQueries.isMuted); statement.setString(1, player); statement.setString(2, player); //in SQLQueries.java public static final String isMuted = “SELECT EXISTS(SELECT * FROM ” + “(SELECT playerid FROM mute, players AS player ” + “WHERE player.username = ‘?’ AND playerid = player.id” + “UNION ALL ” + “SELECT playerid FROM tempmute, players AS player ” + […]

让MySQL或MS SQL Server通知Java程序表已更新

我有一个MySQL数据库(我将很快转到MS SQL Server 2008/2012),这是从我编写的Java程序访问的。 我们将这个第一个程序称为“显示程序”。 另一个Java程序,我们称之为“更新程序”,将定期向数据库添加数据。 目前,我在一个定时器上有显示程序,该定时器从数据库中检索数据并使用该数据每30秒更新一次显示。 有没有办法让数据库在任何时候添加数据时“通知”显示程序,所以我不必使用计时器? 这两个Java程序将在网络上的不同计算机上运行,​​因此我没有看到如何在显示程序上有一个更新器程序可以触发的侦听器,除非我找到通过网络进行某种操作的方法。 (这听起来很麻烦。)此外,显示程序与数据库保持开放连接,因此数据库可以“看到”该连接并以某种方式ping显示程序在另一端进行自我更新? 如果这是不可能的,或者结果非常困难,请告诉我,我会坚持使用我目前正在使用的30秒轮询方法。

无法创建数据库jdbc

我正在尝试使用java jdbc创建一个带有方法的数据库,所以我将数据库的名称类型string作为参数传递给数据库,但是我遇到的问题是你的SQL语法有错误; 检查与MySQL服务器版本对应的手册,以便在第1行的”Algebra”附近使用正确的语法 import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; public class DbTest { private Connection connection; public void createDb(String name) throws SQLException { connection = DriverManager.getConnection (“jdbc:mysql://localhost/?user=root&password=root”); String createDbSql = “CREATE DATABASE IF NOT EXISTS ?”; PreparedStatement createDbStat = connection.prepareStatement(createDbSql); createDbStat.setString(1,name); createDbStat.executeUpdate(); } DbTest() { try { createDb(“Algebra”); } catch (SQLException e) { […]

同样的老故事:Tomcat DBCP + MySQL,MySQLNonTransientConnectionException:连接关闭后不允许任何操作

我在这里讨论了关于这个主题的相关问题,并且还搜索了一段时间。 似乎我仍然不明白Tomcat的DBCP配置或机制中的某些内容。 我得到了Tomcat 6,在server.xml配置了DBCP资源: 我也找了mysql的wait_timeout ,默认是28800 。 总之,我尝试了几个选项,但似乎问题是mysql连接空闲28800秒,服务器关闭它们。 我认为池应该用validationQuery和testOnBorrow以某种方式处理这种情况,但似乎我错了。 如果我在空闲时段后在url使用autoReconnect我的第一次查询尝试导致“ …CommunicationsException: The last packet successfully received from the server was 157,493,261 milliseconds ago. ”但在此之后它正常工作。 如果我在url使用autoReconnectForPools或者只是不使用它 – 在空闲时段(8小时)之后我每次.MySQLNonTransientConnectionException: No operations allowed after connection closed得到“ .MySQLNonTransientConnectionException: No operations allowed after connection closed ”。 在这两种情况下,当应用程序加载时,情况会顺利 所以,我得出结论,连接是从mysql的一侧关闭的。 帮助,我错过了什么? 我想在不改变Mysql中的wait_timeout的情况下解决这个问题。 目标 – 稳定的应用程序,如果它发生可以在空闲时间生存:)

Java检查数据库中是否存在该值

你好,我正在研究java和MySQL。 我的实施如下: import javax.swing.JFrame; import javax.swing.JLabel; import java.sql.*; import java.util.Scanner; public class BankingSystem extends JFrame { public static void main(String[] args) throws Exception{ int ur=0; int PIN; String ID; Scanner s=new Scanner(System.in); Class.forName(“com.mysql.jdbc.Driver”); String url = “jdbc:mysql://localhost:3306/BankingSystem”; String user = “root”; String pass=””; Connection con = DriverManager.getConnection(url,user,pass); Statement st = con.createStatement(); System.out.println(“Enter Your 4 digit […]

使用MySQL存储和检索word文档

我需要使用Servlet将MS Word文档存储和检索到MySQL 5.1中。 我有上传文件的代码,但我不知道可以加入表格。 我已经在我要插入.doc文件的字段中使用了BLOB。 这是我上传文件的代码片段: protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType(“text/html;charset=UTF-8”); PrintWriter out = response.getWriter(); try { // get access to file that is uploaded from client Part p1 = request.getPart(“file”); String type=p1.getContentType(); String name=p1.getName(); long size = p1.getSize(); InputStream is = p1.getInputStream(); //FileInputStream fis = is. // read […]