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

之后我们打开Eclipse:
选择项目->new->folder
在这里插入图片描述
然后我们将jre7和jre8文件夹的拓展包拖进创建的文件夹
在这里插入图片描述
之后我们右键这两个文件->build path->add to build path会出现:
在这里插入图片描述
然后我们创建一个包和两个class
在这里插入图片描述
JdbcUtil.java

package com.tedu;
/** 
* @author 作者 E-mail: 64777121@qq.com
* @version 创建时间:2020年5月10日 上午10:33:26 
* 类说明 
*/
import java.sql.*;
public class JdbcUtil {
  /**
   * 获取数据库连接对象并返回
   * @return Connection对象
   * @throws Exception
   */
  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.*;
/** 
* @author 作者 E-mail: 64777121@qq.com
* @version 创建时间:2020年5月10日 上午10:32:20 
* 基于jdbc和sql server
*/
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

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值