热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

java连不上sqlserver_JavaWeb程序连接SQLserver数据库

声明:一直以来都以为javaweb程序连接数据库是一个很高大上很难的问题,结果今天学习了一下,不到两个小时就解决了,所以总结一篇博客。Ja

声明:一直以来都以为javaweb程序连接数据库是一个很高大上很难的问题,结果今天学习了一下,不到两个小时就解决了,所以总结一篇博客。

JavaWeb程序连接SQLserver数据库分为一下步骤:

2:解压之后,将sqljdbc4.jar复制粘贴到你项目的WEB-INF的lib目录下

ca35bdcaab55892e0d68324ab6454b99.png

3:需要知道一些数据库方面的技术知识:

先举个例子:下面是驱动程序建立连接所需要的步骤:

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

1 try{2 Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");3

4 String URL = "jdbc:sqlserver://localhost:1433;DatabaseName=user";5

6 Connection conn = DriverManager.getConnection(URL, userName, userPwd);//userName是你数据库的用户名如sa,

7 conn.println("连接数据库成功");8 conn.close();9

10 }catch(Exception e){11

12 out.println("数据库连接失败");13

14 }

View Code

1>:Driver接口:java.sql.Driver是所有JDBC驱动程序需要实现的接口,这个接口提供给不同的数据库厂商,他们使用的接口名不同。

-:SQLserver的JDBC驱动的类名:"com.microsoft.sqlserver.jdbc.SQLServerDriver"

-:Oracle的JDBC驱动的类名:"oracle.jdbc.driver.OracleDriver"

-:MySQL的JDBC驱动的类名:"com.mysql.jdbc.Driver"

2>加载与注册JDBC驱动

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");该语句用于加载

3>JDBC连接数据库的URL表现形式通常分为三个部分(通常用:分开):

1:协议:在JDBC中唯一允许的协议只能为jdbc.

2:子协议:子协议用于标识一个数据库驱动程序

3:子名称:具体看下面

-:连接SQLserver: "jdbc:sqlserver://localhost:1433;DatabaseName=user"

-:连接Oracle: "jdbc:thin:@localhost:1521:ORCL"

-:连接MySQL: "jdbc:mysql://localhost:3306/databasename"

4>执行SQL语句接口Statement对象,该对象的常用方法:

-:void close() 关闭释放资源

-:ResultSet executeQuery(String sql):执行某条查询语句并返回结果

-:int execulteUpdate(String sql):可以执行insert,undate或者delete语句

4:看下我第一次写的操作数据库的程序:

1>先创建一个Student类

1 packagecom.ll;2

3 public classStudent {4 privateString name;5 privateString time;6 privateString banji;7 publicString getBanji() {8 returnbanji;9 }10 public voidsetBanji(String banji) {11 this.banji =banji;12 }13 privateString sex;14 publicString getName() {15 returnname;16 }17 public voidsetName(String name) {18 this.name =name;19 }20 publicString getTime() {21 returntime;22 }23 public voidsetTime(String time) {24 this.time =time;25 }26

27 publicString getSex() {28 returnsex;29 }30 public voidsetSex(String sex) {31 this.sex =sex;32 }33

34

35 }

2>写dao层与数据库连接的部分,

1 packagedao;2 import com.ll.Student;//本行及以下是导入SQL以及所需的包

3 importjava.sql.Connection;4 importjava.sql.DriverManager;5 importjava.sql.PreparedStatement;6 importjava.sql.ResultSet;7 importjava.sql.Statement;8 importjava.util.ArrayList;9 public classStudentdao10 {11 public ArrayList queryAllStudents() throwsException12 {//实现对数据库的访问

13 Connection conn = null;14 ArrayList students = new ArrayList();//定义与初始化ArrayList数组,相当于定义数组,但是容量比数组大

15 StringBuffer str= newStringBuffer();16 try{17 //获取连接

18 String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; //加载JDBC驱动

19 String dbURL = "jdbc:sqlserver://localhost:1433;DatabaseName=StudentManagement"; //连接服务器和数据库sample20 //运行SQL语句

21 String userName = "sa"; //默认用户名

22 String userPwd = "zongjin123";23 Class.forName(driverName);24 conn =DriverManager.getConnection(dbURL, userName, userPwd);25 if(conn!=null)26 {27 System.out.println("Connection Successful!"); //如果连接成功 控制台输出

28 }29 else{30

31 System.out.println("Connection fail!");32 returnstudents;33 }34

35 //密码

36 String sql = "select * from student";//SQL语句,选择数据表student中的所有数据

37 Statement stat =conn.createStatement();38 ResultSet rs = stat.executeQuery(sql);//定义ResultSet类,用于接收获取的数据

39 while(rs.next())40 {41 //实例化VO

42 Student student=newStudent();43 student.setName(rs.getString("姓名"));44 student.setBanji(rs.getString("班级"));45 student.setSex(rs.getString("性别"));46 student.setTime(rs.getString("年龄"));47 students.add(student);48 }49 rs.close();50 stat.close();51 }52 catch(Exception e1)53 {54 e1.printStackTrace();55 }56 finally

57 {58 try

59 {//关闭连接

60 if(conn!=null)61 {62 conn.close();63 conn=null;64 }65 }66 catch(Exception ex)67 {68 }69 returnstudents;70 }71 }72 }

3>创建index.jsp文件

background-color: #FFD2BD;

}

JSP Page学生信息如下所示:

ArrayList students=studentDao.queryAllStudents();%>

年龄姓名性别班级

for(int i=0;i

{

Student student=(Student)students.get(i);%>

4>前提是你在你的SQLserver数据库上创建了一个表,并且有数据.

5.结果为:

a718c0355cb223f84069fa8ba6a24896.png



推荐阅读
  • Python SQLAlchemy库的使用方法详解
    本文详细介绍了Python中使用SQLAlchemy库的方法。首先对SQLAlchemy进行了简介,包括其定义、适用的数据库类型等。然后讨论了SQLAlchemy提供的两种主要使用模式,即SQL表达式语言和ORM。针对不同的需求,给出了选择哪种模式的建议。最后,介绍了连接数据库的方法,包括创建SQLAlchemy引擎和执行SQL语句的接口。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
  • 本文介绍了Oracle数据库中tnsnames.ora文件的作用和配置方法。tnsnames.ora文件在数据库启动过程中会被读取,用于解析LOCAL_LISTENER,并且与侦听无关。文章还提供了配置LOCAL_LISTENER和1522端口的示例,并展示了listener.ora文件的内容。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 本文详细介绍了在ASP.NET中获取插入记录的ID的几种方法,包括使用SCOPE_IDENTITY()和IDENT_CURRENT()函数,以及通过ExecuteReader方法执行SQL语句获取ID的步骤。同时,还提供了使用这些方法的示例代码和注意事项。对于需要获取表中最后一个插入操作所产生的ID或马上使用刚插入的新记录ID的开发者来说,本文提供了一些有用的技巧和建议。 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
  • ALTERTABLE通过更改、添加、除去列和约束,或者通过启用或禁用约束和触发器来更改表的定义。语法ALTERTABLEtable{[ALTERCOLUMNcolu ... [详细]
  • 如何在php中将mysql查询结果赋值给变量
    本文介绍了在php中将mysql查询结果赋值给变量的方法,包括从mysql表中查询count(学号)并赋值给一个变量,以及如何将sql中查询单条结果赋值给php页面的一个变量。同时还讨论了php调用mysql查询结果到变量的方法,并提供了示例代码。 ... [详细]
  • 本文讨论了在使用sp_msforeachdb执行动态SQL命令时,当发生错误时如何捕获数据库名称。提供了两种解决方案,并介绍了如何正确使用'?'来显示数据库名称。 ... [详细]
author-avatar
Kanxsg
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有