Tag: sql

从UNKNOWN到UNKNOWN的转换不受支持

我得到以下运行存储过程的exception: com.microsoft.sqlserver.jdbc.SQLServerException:不支持从UNKNOWN到UNKNOWN的转换。 该过程定义如下: CREATE PROCEDURE spTest ( @p1 varchar(1024) , @p2 varchar(1024) , @p3 char(1) , @p4 varchar(254), @p5 varchar(254), @debug bit ) 我在Java中的参数定义如下: Object [] params = {“1,2,3”,“d”,“2”,“”,“”,1}; 我认为这是由角色造成的。 有什么想法吗?

在没有预准备语句的情况下防止SQL注入(JDBC)

我有一个数据库日志appender,每隔一段时间就会将可变数量的日志行插入到数据库中。 我想以防止SQL注入的方式创建一个SQL语句,但不使用服务器端预处理语句(因为我在每个选择中都有可变数量的行,缓存它们不会有帮助,但可能会损害性能) 。 我也喜欢准备好的陈述的便利,并且更喜欢他们串起来。 有没有像“客户端准备好的声明”?

为什么Oracle的DECODE给我的价值与NVL不同?

这个查询: select nvl(0.75,0) from dual 给我0.75 (数字),但这个查询: select decode(1,0,null,0.75) from dual 给我’.75′ (字符串)。 为什么? 我试图通过将第二个查询更改为: select decode(1,0,null,to_char(0.75,’0.99′)) from dual 但在我的实际代码中,0.75将是一个字段(NUMBER),可能有不同的小数位数,我不想添加/删除该值的任何内容。 有关如何修复缺失零问题但仍支持所有可能的小数长度的任何想法?

将一个String转换为sql时间

我们如何在java中使用mysql将字符串转换为时间类型So String ——-> java.sql.time 谢谢。

防止JPA中的N + 1选择

我有JPA实体订单与Customer的ManyToOne关系。 它是双向的,因此Customer也有一个OneToMany字段订单。 这两个关系都使用EAGER获取(或者在OpenJPA fetchplan中)。 当我从Order中选择时,我得到1个订单选择,N选择Customer.orders字段。 令我惊讶的是,OpenJPA,EclipseLink和Hibernate存在这个问题,即使我使用JOIN FETCH(它确实在单向情况下工作)。 有没有好办法解决这个问题? 有没有解决更复杂图形的N + 1选择问题的解决方案? 编辑:我自己的研究结果: – 对于OpenJPA(我正在使用)我还不知道解决方案 – 对于Hibernate @Fetch(FetchMode.SUBSELECT)解决了这个问题。 使用@BatchSize也有帮助,它同时选择给定数量的customer.orders字段。 – 对于EclipseLink,我发现了一个类似的function@BatchFetch(value = BatchFetchType.IN)但在这种情况下没有帮助,我想它无法在双向关系中有效地处理这个问题。

Sql Database连接使用JDBC驱动程序和android

我正在尝试使用Android应用程序连接到SQL Server使用JDBC。 我将sqljdbc4.jar导入到我的应用程序中,但是当我到达时 conn = DriverManager.getConnection(connString); 我得到以下错误:连接字符串是 JDBC:SQLSERVER://xxx.xxx.xxx.xxx:1433;加密= FASLE;用户=用户名,密码=密码; 谁能告诉我出了什么问题? 如果我将相同的代码放入常规的Java应用程序中,它运行正常。 基础Java public class Test { public void dbConnect(String db_connect_string, String db_userid, String db_password) { try { Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”); Connection conn = DriverManager.getConnection(db_connect_string, db_userid, db_password); System.out.println(“connected”); Statement statement = conn.createStatement(); String queryString = “select * from sysobjects where type=’u'”; ResultSet rs = statement.executeQuery(queryString); while (rs.next()) { […]

JDBC返回空结果集

我正在使用JDBC进行非常简单的数据库连接。 我创建了我的连接/语句并执行了查询。 我在调试器中检查语句的查询对象以确认它正在发送正确的查询。 然后我仔细检查数据库上的查询(直接从调试器复制)以确保它返回数据。 但是,返回的结果集在.next()上给出了false 这里有什么常见的陷阱,我错过了吗? public List getGroups() { myDB.sendQuery(“select distinct group_name From group_members where username='” + this.username + “‘”); ResultSet results = myDB.getResults(); List returnList = new ArrayList(); try { while (results.next()) { returnList.add(new InterestGroup(results.getString(“group_name”), myDB)); } return returnList; } catch (SQLException e) { e.printStackTrace(); return null; } } 和myDB类(简单的包装器,让我将连接/语句代码放入任何项目) public void sendQuery(String […]

是否有一个尊重fetchSize的mysql JDBC?

我正在使用MySQL并希望利用setFetchSize属性。 默认的MySQL JDBC实现并不真正尊重它。 如果你将fetchsize设置为Integer.MIN_VALUE ,它将分别获取每一行,但考虑到我想使用fetchSize的原因是我有足够的数据将我的内存使用量放到2 G范围内,每行必须进行一次查询永远。 我想插入一个可以与MySQL一起工作的JDBC实现并正确地考虑获取大小,允许我设置10,000的提取量或其他一些更高的限制。 任何人都可以指向一个可能提供这种实现的jar吗? 失败那是否有任何其他资源允许我合理地以有效的方式进行包含数万个条目的查询,但是在内存和所需的sql查询数量方面。

Java SQL Server 2012无法打开数据库错误

我似乎遇到了错误: Cannot open database requested by the login. The login failed. Cannot open database requested by the login. The login failed. 将我的SQL Server数据库连接到用netbeans编写的Java应用程序时。 我读了很多文章并做了以下工作: 在UDP和TCP下允许1433端口到防火墙 将SQL Server配置管理器TCP / IP端口设置为1433 将SQL Server Management Studio中的服务器身份validation更改为混合身份validation SQL Server Management Studio中允许的远程连接 我的连接字符串如下: jdbc:sqlserver://localhost\\SQLEXPRESS:1433;DatabaseName = SASS; IntegratedSecurity=true; Trusted_Connection=true; 我仍然收到以下错误: Cannot open database “SASS” requested by the login. The login failed. […]

以下Oracle错误意味着什么:无效的列索引

测试一些代码时出现以下错误: SQLException:列索引无效 这到底是什么意思呢? 是否有在线文档解释所有Oracle错误代码和语句?