Tag: sql server 2008

SQL Server的timestamp2应该如何在JDBC中运行?

我在SQL Server 2008中尝试使用timestamp2而不是Timestamp时遇到了一些麻烦。显然,rs.getTimestamp在timestamp和timestamp2之间的行为非常不同。 但是,我找不到任何文件说明应该存在差异,或者我应该使用不同的东西。 我想知道我是否只是做错了什么。 环境: 试用SQL Express 2008(10.0)和SQL Server 2008 R2(10.5)。 sqljdbc4.jar 3.0版,大小为537,303字节,CRC-32 = a0aa1e25,MD5 = 402130141d5f2cee727f4371e2e8fd8a。 Java 1.6 这是一个演示问题的unit testing。 唯一的“魔法”是“Db.getConnection()”,您可以使用适当的代码替换它。 datetime和datetime2的测试相同,但datetime2测试失败,日期为2天。 我将数据库中的所有时间视为GMT / UTC,并且我没有尝试将时区信息添加到datetime2数据的数据库数据中。 private void testTimestamp(TimeZone gmtTz, Connection conn, String query, Calendar expectedCal) throws SQLException { PreparedStatement stmt = conn.prepareStatement(query); ResultSet rs = stmt.executeQuery(); while (rs.next()) { // Note the expectedCal […]

如何解决“语句没有返回结果集错误”?

当语句没有返回结果集时,我试图处理SQLServerException。 我还是java新手,所以我无法找到解决问题的方法。 请问任何人都可以建议我如何解决错误? 我遇到困难的地方是这个存储过程没有返回任何结果集,我想显示“找不到记录”之类的东西。 我该如何解决? stmt = conn.prepareCall(“{call p_GetAllowedPublicIPs(?,?,?)}”); @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //processRequest(request, response); PrintWriter out = response.getWriter(); String IsLoginDisabled = null; String BankID =null; String publicip=null; try { //processRequest(request, response); Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”); Connection conn = null; CallableStatement myStmt = null; int count =0; conn = DriverManager.getConnection(“jdbc:sqlserver://MPESA\\SQL2012;user=realm;password=friend;database=ElmaTest”); if(conn!=null) […]

jdbc.SQLServerException:任何用户的用户登录失败

我试图测试与本地sql DB的连接。 我有这个代码: try{ Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”).newInstance(); DriverManager.getConnection(“jdbc:sqlserver://localhost:1433;databaseName=SocialFamilyTree;user=SOSCOMP”); }catch(Exception e){ System.out.println(“Couldn’t get database connection.”); e.printStackTrace(); } 我试了很多用户。 我的Windows用户是SOSCOMP,没有密码。 我也知道SQL 2008创建用户为“sys”“dbo”,我也试过这些。 我总是得到: Couldn’t get database connection. com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user ‘SOSCOMP’. at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:196) at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:246) at com.microsoft.sqlserver.jdbc.TDSParser.parse(tdsparser.java:83) at com.microsoft.sqlserver.jdbc.SQLServerConnection.sendLogon(SQLServerConnection.java:2532) at com.microsoft.sqlserver.jdbc.SQLServerConnection.logon(SQLServerConnection.java:1929) at com.microsoft.sqlserver.jdbc.SQLServerConnection.access$000(SQLServerConnection.java:41) at com.microsoft.sqlserver.jdbc.SQLServerConnection$LogonCommand.doExecute(SQLServerConnection.java:1917) at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4026) at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1416) at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1061) at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:833) at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:716) at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:841) […]

将SQL Server 2008连接到Java:登录失败,表示用户错误

我正在尝试将我的Java代码连接到Microsoft SQL Server 2008 R2 Express数据库。 我已下载Microsoft SQL Server JDBC驱动程序3.0并将sqljdbc4.jar添加到我的类路径中。 我正在使用Netbeans并且在我的项目中也包含了sqljdbc4.jar。 我在SQL Server Management Studio中创建了一个名为TestDB1的数据库,并添加了一些我将用于测试的列和值。 我通过右键单击服务器JACOB = PC \ SQLEXPRESS-> Properties-> Secuity并从Windows身份validation模式更改为SQL Server和Windows身份validation模式,从Windows身份validation模式更改。 然后,我通过右键单击JACOB-PC / SQLEXPRESS-> Secuity Folder-> Logins Folder下的窗口浏览器中的Login文件夹创建了一个新登录,并添加了一个新的登录名。 我给它命名为jhaip2,切换到SQL Server身份validation并将密码设置为jacob。 未选中强制执行密码策略和强制密码过期。 默认数据库设置为TestDB1。 然后在TestDB1-> Secuity-> Users-> jhaip2->数据库角色成员身份我将jhaip2设置为db_owner(我无法在没有这样做的情况下登录管理工作室中的数据库,可能不是正确的事情?)。 然后我重新启动了服务器。 现在对于我的java代码,它基本上是JDBC Driver 3.0示例代码的直接副本,除了没有Windows身份validation。 package databasetest1; import java.sql.*; public class connectURL { public static void main(String[] args) […]

无法在Java应用程序中连接到SQLServer数据库

我已经在我正在尝试开发的JSF Web应用程序中连接到我的数据库。 使用Windows 7,NetBeans 6.9.1,SQLServer 2008,Glassfish 3.3。 我正在使用从我的XP系统复制的sqljdbc4.jar驱动程序,我已成功连接到SQLServer 2005。 我已经validationSQLServer 2008正在我的系统上运行,我可以使用我尝试在应用程序中使用的用户名和密码通过SQL Server Management Studio连接到数据库。 SQL Server配置管理器显示IP连接端口为1433.所以我认为我的数据库设置正确。 我认为我正在做的事情,但我只是无法连接到数据库。 有没有人有任何建议,为什么这是失败的,我可以检查什么? 谢谢。 这是我的连接代码: public void connectDB() { try { String connectionUrl = “jdbc:sqlserver://localhost:1433;databaseName=ROVRDEV;user=rovrdevuser;password=rovrdevuser”; Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”); Connection con = DriverManager.getConnection(connectionUrl); System.out.println(“Database connection = “+con ); } catch( Exception e ) { e.printStackTrace(); System.out.println( “Error connecting to database. Error: “+e.getMessage() ); […]

Java7 sqljdbc4 – getConnection()上的SQL错误08S01

我正在尝试编写一个非常简单的GUI应用程序,用于将一些记录插入数据库,并回读一些记录(没什么特别的,只有1个表有3行,没有关系)。 来源… package EntryProg; import java.sql.*; import com.microsoft.sqlserver.jdbc.*; public class CourseDataEntryHandler { private Connection connect; private CallableStatement callState; private ResultSet rSet; private SQLServerDataSource dSource; public CourseDataEntryHandler() { rSet = null; callState = null; dSource = new SQLServerDataSource(); dSource.setUser(REDACTED); dSource.setPassword(REDACTED); dSource.setServerName(REDACTED); dSource.setPortNumber(REDACTED); dSource.setDatabaseName(REDACTED); dSource.setEncrypt(true); dSource.setTrustServerCertificate(true); try { 这里错了 connect = dSource.getConnection(); 结束错误 } catch (SQLServerException e) […]

Statement.executeUpdate()返回-1时的含义是什么?

在management studio和executeUpdate中运行的查询使得相同的executeUpdate返回-1 ,这在我们可以找到的任何文档中都是未定义的。 它应该只返回rowcount或0 。 这是什么意思? 如果重要,驱动程序是JDBC-ODBC桥。 例: String query = “IF NOT EXISTS (SELECT * FROM animals WHERE animal_name ='” + a +”‘) INSERT INTO ” + table + ” (animal_name, animal_desc, species_id) VALUES (‘” + a + “‘, ‘” + b + “‘, ” + c + “)”; int result = statement.executeUpdate(query); System.out.println(result); […]

MERGE是SQL2008中的primefaces语句吗?

我使用MERGE语句作为UPSERT来添加新记录或更新当前记录。 我有多个线程通过多个连接和多个语句驱动数据库(每个线程一个连接和语句)。 我一次批处理语句50。 在测试过程中,我很惊讶地发现duplicate key违规。 我希望这是不可能的,因为MERGE将作为单个交易执行,或者是它? 我的Java代码如下: private void addBatch(Columns columns) throws SQLException { try { // Set parameters. for (int i = 0; i = MaxBatched) { statement.executeBatch(); batched = 0; } } catch (SQLException e) { log.warning(“addBatch failed ” + sql + ” thread ” + Thread.currentThread().getName(), e); throw e; } } 查询如下所示: […]

从Java连接到SQL Server 2008

我试图从Java连接到SQL Server 2008服务器 这是一个程序 import java.sql.*; public class connectURL { public static void main(String[] args) { // Create a variable for the connection string. String connectionUrl = “jdbc:sqlserver://localhost/SQLEXPRESS/Databases/HelloWorld:1433;”;// + //”databaseName=HelloWorld;integratedSecurity=true;”; // Declare the JDBC objects. Connection con = null; Statement stmt = null; ResultSet rs = null; try { // Establish the connection. Class.forName(“com.microsoft.sqlserver.jdbc.SQLServerDriver”); con […]

如何将表值参数从java传递到sql server存储过程?

我有一个具有以下属性的Student类: Name, Department, Address, Grade. 现在我有一个ArrayList ,其中包含一些像这样的Student对象, List stuList = new ArrayList(); stuList.add(new Student(“Tom”,”Comp”, “123 street”, “A”)); stuList.add(new Student(“Jery”,”Comp”, “456 street”, “A+”)); stuList.add(new Student(“Mac”,”Maths”, “Dum Street”, “B”)); 我需要将此arraylist传递给sql server存储过程并将student对象数据插入表中。 如何在Java中实现这一目标? 我需要有一个存储过程。 Java版本8,Sql Server 2014如果有任何用处。