当前位置:   article > 正文

java与sqlerver 数据库连接_java怎么连接数据库sql server

java怎么连接数据库sql server
  • eclipse中的程序去连接sqlserver数据库的步骤

(sqljdbc.jar)这个jdbc需要的可以加我,发给你

1.连接前的准备工作

①打开服务,打开数据库软件,进行登录

②进行建数据库,创表

③打开eclipse,创建Java项目(注意:必须为lib包)

④先将指定数据库的驱动包存放到Java程序中

       在项目专门创建一个文件夹存储
    (右击项目-new--folder--命名lib)
    找到驱动包(sqljdbc.jar) copy到该文件夹内

⑤右击驱动包加载到Java程序
        build path----add build  path   

2.测试Java程序连接数据库

①自定义类编写主程序的入口
②加载驱动利用Class.forName  会有异常
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
③利用DriverManager实现与数据库连接并且会返回Connection连接对
Connection conn =DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=db_stu_1202", "sa", "123");

  •  如何使用eclipse进行数据库的增删改查操作?如下所示:

1、启动服务
2、建库 建表
3、新建项目
4、导入驱动包
5、加载驱动

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

6、创建连接(其实就一步)

①定义连接字符串

String url="jdbc:sqlserver://localhost:1433;DatabaseName=jdbc12_07";

注意:数据库的名字必须相同,账号密码也一致

②创建连接  Connection con = DriverManager.getConnection(url,"sa","123");

7、获得执行对象,传入参数 ?或者是字符串拼接+

PreparedStatement ps=con.prepareStatement("update tb_stu set sname='李四' where sname='张三'");

8、进行

①增、删、改 

会用到     ps.executeUpdate();----所影响的表行数

增、删、改返 回结果 int 类型

②查询:ps.executeQuery();
        得到结果集ResultSet rs

  1. 循环while(rs.next()){
  2. System.out.print("学号:"+rs.getInt(1)+"\t");
  3. System.out.println();
  4. }

9、关闭连接操作

ps.cloes;
con.cloes;
url.cloes;
注意:关闭数据库连接时要按照ps,con,url这个顺序关闭

10.查看数据库是否连接成功!!

  1. import java.sql.Connection;
  2. import java.sql.DriverManager;
  3. public class JDBCDemo {
  4. public static void main(String[] args) {
  5. // 注意事项:sql包中所需要用到的类都会有异常出现
  6. // 需求:Java程序与数据库建立连接
  7. // 1.让加载的驱动包在本类中进行使用 Class.forName();
  8. // SQLServerDriver
  9. try {
  10. // 加载驱动
  11. Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
  12. // 2.让Java程序连接数据库 通过DriverManager类
  13. // 第一个参数url的作用:连接sqlserver的规则
  14. // 1433 代表sqlserver的端口号 任何一个程序都有一个独一无二的端口号
  15. Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=db_student", "sa", "123");
  16. //判断conn连接对象是否为空即可知道程序是否连上数据库?
  17. System.out.println(conn!=null?"连接成功":"连接失败");
  18. } catch (Exception e) {
  19. e.printStackTrace();
  20. }
  21. }
  22. }

11.增删改查操作:

①增加操作

  1. try {
  2. //1.加载驱动
  3. Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
  4. //2.建立连接
  5. localhost 你的数据库的服务器名称 db_stutent数据库名称 sa你数据库的账号 123你数据库的密码!
  6. Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=db_Student", "sa", "123");
  7. //3.提供数据(通过Scanner优化)
  8. Scanner sc = new Scanner(System.in);
  9. System.out.println("请输入姓名: ");
  10. String sname = sc.next();
  11. System.out.println("请输入性别: ");
  12. String ssex = sc.next();
  13. System.out.println("请输入年龄: ");
  14. int sage = sc.nextInt();
  15. System.out.println("请输入地址: ");
  16. String saddress = sc.next();
  17. System.out.println("请输入电话: ");
  18. String stelphone = sc.next();
  19. //4.定义sql语句 值先不传,使用"?"占位置。 ?表示占位符
  20. String sql = "insert into tb_student values(?,?,?,?,?)";
  21. //5.将定义的sql语句传入指定的方法 并且会返回一个执行对象出来
  22. PreparedStatement ps = conn.prepareStatement(sql);
  23. //6.为占位符的位置进行重新赋值 通过执行对象
  24. ps.setString(1, sname);
  25. ps.setString(2, ssex);
  26. ps.setInt(3, sage);
  27. ps.setString(4, saddress);
  28. ps.setString(5, stelphone);
  29. //7.开车(调用方法并且返回所影响的行数)就是将数据转入数据库
  30. int n = ps.executeUpdate();
  31. System.out.println(n>0?"OK":"NO");ok 说明数据 加入数据库成功 no数据加入失败
  32. //8.关闭数据库连接
  33. ps.close();
  34. conn.close();
  35. } catch (Exception e) {
  36. e.printStackTrace();
  37. }

②删除操作

  1. package com.zking.test;
  2. import java.sql.Connection;
  3. import java.sql.DriverManager;
  4. import java.sql.PreparedStatement;
  5. import java.util.Scanner;
  6. public class DeleteTest {
  7. public static void main(String[] args) {
  8. /*
  9. * 删除操作
  10. */
  11. try {
  12. //1.加载驱动
  13. Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
  14. //2.建立数据库连接
  15. Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=db_student", "sa", "123");
  16. Scanner sc = new Scanner(System.in);
  17. System.out.println("请输入删除学生的学号: ");
  18. int sid = sc.nextInt();
  19. //3.编写删除的sql语句
  20. String sql = "delete from tb_student where sid = "+sid;
  21. //4.将sql语句通过conn连接对象传入方法返回执行对象ps
  22. PreparedStatement ps = conn.prepareStatement(sql);
  23. //5.开车(调用方法返回所影响的行数)
  24. int n = ps.executeUpdate();
  25. System.out.println(n>0?"OK":"NO");
  26. ps.close();
  27. conn.close();
  28. } catch (Exception e) {
  29. e.printStackTrace();
  30. }
  31. }
  32. }

③修改操作

  1. import java.sql.Connection;
  2. import java.sql.DriverManager;
  3. import java.sql.PreparedStatement;
  4. import java.util.Scanner;
  5. public class UpdateTest {
  6. public static void main(String[] args) {
  7. // 修改操作
  8. try {
  9. Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
  10. Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=db_stu_1202", "sa", "123");
  11. String sql = "update tb_student set sname = ? , ssex = ? , sage = ? , saddress = ? , stelphone = ? where sid = ?";
  12. PreparedStatement ps = conn.prepareStatement(sql);
  13. Scanner sc = new Scanner(System.in);
  14. System.out.println("请输入需要修改学生信息的学号: ");
  15. int sid = sc.nextInt();
  16. System.out.println("请输入修改后的姓名: ");
  17. String sname = sc.next();
  18. System.out.println("请输入修改后的性别: ");
  19. String ssex = sc.next();
  20. System.out.println("请输入修改后的年龄: ");
  21. int sage = sc.nextInt();
  22. System.out.println("请输入修改后的地址: ");
  23. String saddress = sc.next();
  24. System.out.println("请输入修改后的电话: ");
  25. String stelphone = sc.next();
  26. //给占位符(?)进行赋值
  27. ps.setString(1, sname);
  28. ps.setString(2, ssex);
  29. ps.setInt(3, sage);
  30. ps.setString(4, saddress);
  31. ps.setString(5, stelphone);
  32. ps.setInt(6, sid);
  33. int n = ps.executeUpdate();
  34. 判断是否添加成功!
  35. System.out.println(n>0?"OK":"NO");
  36. 关闭数据库与eclipse 的连接
  37. ps.close();
  38. conn.close();
  39. } catch (Exception e) {
  40. e.printStackTrace();
  41. }
  42. }
  43. }

④查询操作

查询数据之前得找一个容器(Student)将查找到的数据保存在其中,方便查看

注意的是:属性要与数据库中的一样且顺序一样(完全一致)

  1. package com.zking.test;
  2. /**
  3. * 学生类,存储数据库中的每一行记录
  4. * @author Zkingzz
  5. *
  6. * 类:数据库是什么 这个类就是什么 顺序一致,属性名一致
  7. *
  8. */
  9. public class Student {
  10. private int sid;
  11. private String sname;
  12. private String ssex;
  13. private int sage;
  14. private String saddress;
  15. private String stelphone;
  16. public Student() {
  17. // TODO Auto-generated constructor stub
  18. }
  19. public Student( String sname, String ssex, int sage, String saddress, String stelphone) {
  20. super();
  21. this.sname = sname;
  22. this.ssex = ssex;
  23. this.sage = sage;
  24. this.saddress = saddress;
  25. this.stelphone = stelphone;
  26. }
  27. public Student(int sid, String sname, String ssex, int sage, String saddress, String stelphone) {
  28. super();
  29. this.sid = sid;
  30. this.sname = sname;
  31. this.ssex = ssex;
  32. this.sage = sage;
  33. this.saddress = saddress;
  34. this.stelphone = stelphone;
  35. }
  36. public int getSid() {
  37. return sid;
  38. }
  39. public void setSid(int sid) {
  40. this.sid = sid;
  41. }
  42. public String getSname() {
  43. return sname;
  44. }
  45. public void setSname(String sname) {
  46. this.sname = sname;
  47. }
  48. public String getSsex() {
  49. return ssex;
  50. }
  51. public void setSsex(String ssex) {
  52. this.ssex = ssex;
  53. }
  54. public int getSage() {
  55. return sage;
  56. }
  57. public void setSage(int sage) {
  58. this.sage = sage;
  59. }
  60. public String getSaddress() {
  61. return saddress;
  62. }
  63. public void setSaddress(String saddress) {
  64. this.saddress = saddress;
  65. }
  66. public String getStelphone() {
  67. return stelphone;
  68. }
  69. public void setStelphone(String stelphone) {
  70. this.stelphone = stelphone;
  71. }
  72. @Override
  73. public String toString() {
  74. return "Student [sid=" + sid + ", sname=" + sname + ", ssex=" + ssex + ", sage=" + sage + ", saddress="
  75. + saddress + ", stelphone=" + stelphone + "]";
  76. }
  77. }

开始操作:

  1. import java.sql.Connection;
  2. import java.sql.DriverManager;
  3. import java.sql.PreparedStatement;
  4. import java.sql.ResultSet;
  5. import java.util.ArrayList;
  6. import java.util.List;
  7. public class SelectTest4 {
  8. public static void main(String[] args) {
  9. List list = new ArrayList();集合框架 用于装载数据库中的数据!
  10. //操作:查询所有 高级版本
  11. try {
  12. //1.加载驱动
  13. Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
  14. //2.建立连接
  15. Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=db_stu_1202", "sa", "123");
  16. //3.编写sql语句
  17. String sql = "select * from tb_student";
  18. //4.将sql传入执行对象中并返回
  19. PreparedStatement ps = conn.prepareStatement(sql);
  20. //5.调用方法将数据库中的所有数据返回到一个ResultSet结果集对象中
  21. ResultSet rs = ps.executeQuery();
  22. //ResultSet结果集对象类似集合容器 获取这个结果集对象中的所有数据,遍历即可。 while
  23. //6.遍历结果集对象
  24. while(rs.next()) {//如果结果集中存在下一条数据
  25. //
  26. Student stu = new Student(rs.getInt(1), rs.getString(2), rs.getString(3), rs.getInt(4), rs.getString(5),rs.getString(6));
  27. // System.out.println(stu);
  28. list.add(stu);
  29. }
  30. //7.关闭
  31. rs.close();
  32. ps.close();
  33. conn.close();
  34. } catch (Exception e) {
  35. e.printStackTrace();
  36. }
  37. //遍历集合
  38. for (Student student : list) {
  39. System.out.println(student);
  40. }
  41. }
  42. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/314294
推荐阅读
相关标签
  

闽ICP备14008679号