我想获取给定预准备语句的参数名称和参数类型.我正在使用MySQL数据库.但是当我运行我的程序时,它会抛出一个错误:
Exception in thread "main" java.sql.SQLException: Parameter metadata not available for the given statement
Run Code Online (Sandbox Code Playgroud)
在这条线上
String paramTypeName = paramMetaData.getParameterTypeName(param);
Run Code Online (Sandbox Code Playgroud)
我不知道为什么会这样.如果可能,请有人帮助我.
这是我的代码:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ParameterMetaData;
import java.sql.PreparedStatement;
import java.sql.Statement;
public class Main {
public static void main(String[] args) throws Exception {
Connection conn = getMySqlConnection();
Statement st = conn.createStatement();
String query = "select * from survey where id > ? and name = ?";
PreparedStatement pstmt = conn.prepareStatement(query);
ParameterMetaData paramMetaData = pstmt.getParameterMetaData();
if (paramMetaData == null) {
System.out.println("db …
Run Code Online (Sandbox Code Playgroud) 我想将蓝色背景颜色更改为taskpanecontainer的白色.我用过下面这行但没有任何影响.
UIManager.put("TaskPaneContainer.background", Color.LIGHT_GRAY);
Run Code Online (Sandbox Code Playgroud)
请给我一些改变bg颜色的想法.
public class NewJFrame2 extends javax.swing.JFrame {
public NewJFrame2() {
initComponents();
setSize(462, 300);
add(doInit());
setBackground(Color.WHITE);
}
private Component doInit() {
JXTaskPaneContainer taskpanecontainer = new JXTaskPaneContainer();
//taskpanecontainer.setLayout(new VerticalLayout(2));
JXTaskPane taskpane1 = new JXTaskPane();
taskpane1.setTitle("First TaskPane");
JXTable table = new JXTable();
DefaultTableModel model = new DefaultTableModel();
model.addColumn("ParameterName");
model.addColumn("ParameterType");
model.addColumn("Operation");
model.addRow(new Object[]{"Request", "String", "Delete"});
model.addRow(new Object[]{"Request", "String", "Delete"});
table.setModel(model);
((JComponent) taskpane1.getContentPane()).setBorder(BorderFactory.createEmptyBorder(0,5,0,5));
taskpane1.add(table);
taskpanecontainer.add(taskpane1);
taskpanecontainer.setBorder(javax.swing.BorderFactory.createEmptyBorder(0,0,0,0));
return taskpanecontainer;
}
}
Run Code Online (Sandbox Code Playgroud)
我也在分享图像,所以我已经清除了你的想法..
谢谢
基于设计的方法是:新项目 - >其他项目类型 - > Visual Studio解决方案 - >空白解决方案
我必须在C#中以编程方式创建一个空白解决方案,并在此解决方案中添加新的空项目和文件.我在网上使用DTE发现了很多代码,但他们在现有的解决方案资源管理器中添加了我的空项目,所以请给我一些参考代码.
如何在C#中使用EnvDTE以编程方式打开文件.
我想在JTree
节点右键单击时显示弹出框,而不是整个JTree
组件.当用户右键单击JTree节点时,弹出框出现.如果他右键单击一个空格,JTree
那么它就不会出现.那么为什么我只能为JTree
节点检测鼠标事件.我已多次搜索网络,但找不到解决方案,所以请帮助我.
谢谢.
我已经下载了Oracle快捷11克版并安装that.Now我想将它从Java应用程序连接.这是我的连接代码: -
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:example", "example","password123");
Run Code Online (Sandbox Code Playgroud)
但是当我试图连接它时,它会向我显示以下异常.
java.sql.SQLException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:419)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:536)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:228)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:521)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at javaapplication3.JavaApplication3.main(JavaApplication3.java:40)
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试连接"xe"数据库时,它已连接.
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "example","password123");
Run Code Online (Sandbox Code Playgroud)
我不知道为什么会这样?请给我一些参考或提示.
当我运行我的代码然后JLabel
在后面看JPanel
.为什么会这样?我必须在面板顶部显示标签.
public class ColoredRect extends JPanel{
public double x, y, width, height;
public JLabel name;
public ColoredRect(double x,double y,String label)
{
name = new JLabel(label);
this.x = x;
this.y = y;
this.width = 100;
this.height =40;
setLocation((int)x,(int)y);
setSize((int)width,(int)height);
setBackground(Color.red);
add(name);
}
public void paintComponent(Graphics g) {
// Draw all the rects in the ArrayList.
super.paintComponent(g); // Fills with background color, white.
name.setForeground(Color.BLACK);
name.setVisible(true);
name.setLocation((int)x+3, (int)y+3);
name.setSize(20, 20);
name.repaint();
}
public void setnewPosition(double x, double y) …
Run Code Online (Sandbox Code Playgroud) 我有一个mysql存储过程.
DELIMITER //
CREATE PROCEDURE GetRecordsByAge(IN Age INT)
BEGIN
SELECT * FROM test1 WHERE age = Age;
END //
DELIMITER ;
Run Code Online (Sandbox Code Playgroud)
当我通过java运行这个存储过程然后它给出了表的所有记录.
但如果我在select语句中有条件.为什么会这样?
这是我的代码行: -
CallableStatement cStmt = null;
cStmt = con.prepareCall("{ CALL GetSpecificRecord(?) }");
cStmt.setInt(1, 25);
cStmt.execute();
ResultSet rs1 = cStmt.getResultSet();
Run Code Online (Sandbox Code Playgroud)
当我打印此结果集时,这将给出表的所有记录.
问题出在哪儿?
谢谢
我已经创建了一个矩形,现在我必须将一个JLabel放入其中.那我怎么能把JLabel放在矩形里面呢.
代码在这里: -
public class ColoredRect extends JPanel
{
private double x, y, width, height;
public ColoredRect(double x,double y)
{
this.x = x;
this.y = y;
width = 100;
height =40;
rect = new Rectangle2D.Double(this.x , this.y,width,height);
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
g2.setColor(Color.cyan);
g2.fill(rect);
}
}
Run Code Online (Sandbox Code Playgroud)
请给我一些实现这个的想法.
提前致谢.
java ×7
swing ×4
add-in ×2
c# ×2
jlabel ×2
mysql ×2
connection ×1
envdte ×1
graphics ×1
graphics2d ×1
jpopupmenu ×1
jtree ×1
jxtaskpane ×1
metadata ×1
oracle ×1
sql ×1
sqlexception ×1
swingx ×1