下篇:JDBC(Eclipse和Microsoft SQL sever Managerment Studio连接)以及实现简单的基本表增删改查

   日期:2020-05-13     浏览:105    评论:0    
核心提示:之后我们打开Eclipse:选择项目->new->folder然后我们将jre7和jre8文件夹的拓展包拖进创建的文件夹之后我们右键这两个文件->build path->add to build path会出现:然后我们创建一个包和两个classJdbcUtil.javapackage com.tedu;/** * @author 作者 E-mail: 64777121@qq.com* @version 创建时间:2020年5月10日 上午10:33:26开发工具

之后我们打开Eclipse:
选择项目->new->folder

然后我们将jre7和jre8文件夹的拓展包拖进创建的文件夹

之后我们右键这两个文件->build path->add to build path会出现:

然后我们创建一个包和两个class

JdbcUtil.java

package com.tedu;

import java.sql.*;
public class JdbcUtil {
  
  public static Connection getConn() throws Exception{
  //1.注册驱动
  Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
  //2.获取连接
  Connection conn =DriverManager.getConnection(
    "jdbc:sqlserver://localhost:1433;DatabaseName=studb",
    "root",
    "123456");
  return conn;
 }
      public static void close(Connection conn,Statement stat,ResultSet rs) {
       if(rs!=null) {
        try {
         rs.close();
        }catch(SQLException e) {
         e.printStackTrace();
        }finally {
         rs=null;
        }
       }
      }
}

StuManager.java

package com.tedu;
import java.sql.*;

import java.util.*;
public class StuManager {
 private static Scanner s1=new Scanner(System.in);
 public static void main(String[] args) {
  stage();
 }
 private static void stage() { 
 System.out.print("a:查询学生信息");
 System.out.print("b:添加学生信息");
 System.out.print("c:修改学生信息");
 System.out.print("d:删除学生信息");
 System.out.print("请输入:");
 String opt=s1.next();
 if(opt.equalsIgnoreCase("a")) {
  findAll();
 }
 else if(opt.equalsIgnoreCase("b")) {
  addStu();
 }
 else if(opt.equalsIgnoreCase("c")) {
  updateStu();
 }
 else if(opt.equalsIgnoreCase("d")) {
  deleteStu();
 }
 else {
  System.out.println("输入有误,请重试");
 }
 }
 private static void findAll() {
  Connection conn=null;
  Statement stat=null;
  ResultSet rs=null;
  try {
   //注册驱动并获取连接
   conn=JdbcUtil.getConn();
   //获取传输器,执行SQL语句
   stat = conn.createStatement();
   String sql ="select * from StudentInfo";
   rs = stat.executeQuery( sql );
   //处理结果
   while(rs.next()) {
    int sno =rs.getInt("sno");
    String sname =rs.getString("sname");
    System.out.println(sno+","+sname);
   }
   //System.out.println("__________________");
  }catch(Exception e) {
   e.printStackTrace();
  }finally {
   //释放资源
   JdbcUtil.close(conn, stat, rs);
  }
  stage();
 }
 private static void addStu() {
  System.out.println("请输入要添加的学号,姓名(空格间隔):");
  int sno =s1.nextInt();
  String sname =s1.next();
  Connection conn=null;
  //Statement stat=null;
  PreparedStatement ps =null;
  ResultSet rs=null;
  try {
   //注册驱动并获取连接
   conn=JdbcUtil.getConn();
   //获取传输器,执行SQL语句
   String sql ="insert into Studentinfo values(?,?,null,null,null)";
   ps = conn.prepareStatement(sql);
   //设置SQL语句参数
   ps.setInt(1, sno);
   ps.setString(2, sname);
   //执行sql语句
   int rows = ps.executeUpdate();//不要二次传入Sql
   if(rows>0) {
    System.out.println("学生信息添加成功!");
   }
   System.out.println("__________________");
  }catch(Exception e) {
   e.printStackTrace();
  }finally {
   //释放资源
   JdbcUtil.close(conn, ps, rs);
  }
  stage();
 }
 private static void updateStu() {
  //提示用户输入修改后的学生信息
  System.out.println("请输入修改的学生学号,姓名(空格隔开):");
  int sno =s1.nextInt();
  String sname =s1.next();
  Connection conn=null;
  //Statement stat=null;
  PreparedStatement ps =null;
  ResultSet rs=null;
  try {
   //注册驱动并获取连接
   conn=JdbcUtil.getConn();
   //获取传输器,执行SQL语句
   String sql ="update Studentinfo set sname=? where sno=?";
   ps = conn.prepareStatement(sql);
   //设置SQL语句参数
   ps.setInt(2, sno);
   ps.setString(1, sname);
   //执行sql语句
   int rows = ps.executeUpdate();//不要二次传入Sql
   if(rows>0) {
    System.out.println("学生信息修改成功!");
   }
   System.out.println("__________________");
  }catch(Exception e) {
   e.printStackTrace();
  }finally {
   //释放资源
   JdbcUtil.close(conn,ps , rs);
  }
  stage();
 }
 private static void deleteStu() {
  System.out.println("请输入要删除的学生学号:");
  int sno =s1.nextInt();
  Connection conn=null;
  PreparedStatement ps =null;
  //Statement stat=null;
  ResultSet rs=null;
  try {
   //注册驱动并获取连接
   conn=JdbcUtil.getConn();
   //获取传输器,执行SQL语句
   String sql ="delete from StudentInfo where sno=?";
   ps = conn.prepareStatement(sql);
   //设置SQL语句参数
   ps.setInt(1, sno);
   //执行sql语句
   int rows = ps.executeUpdate();//不要二次传入Sql
   if(rows>0) {
    System.out.println("学生信息删除成功!");
   }
   System.out.println("__________________");
  }catch(Exception e) {
   e.printStackTrace();
  }finally {
   //释放资源
   JdbcUtil.close(conn, ps, rs);
  }
  stage();
 }
}

这里是建立连接,我们要把这里的数据改成自己数据库的信息:
Connection conn =DriverManager.getConnection(
“jdbc:sqlserver://localhost:1433;DatabaseName=studb”,
“root”,
“123456”);
return conn;
同时运行一般会出现这个错误:
拒绝了对对象‘ ’(‘数据库’*‘,架构’dbo‘) 的 SELECT 权限。

这是因为Microsoft SQL sever Managerment Studio权限没有给够,我们不能够对表进行查询修改等功能。
解决方法:
我们打开我们需要操作的数据库->安全性->架构->dbo

然后对dbo右键属性【权限】->搜索->浏览【public】->确定

对选择的用户进行权限的解锁
之后就可以运行了
运行截图:

参考内容:
https://www.cnblogs.com/lqLove/p/5851011.html
https://b23.tv/BV1ka4y1x7M6

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
更多>相关资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服