JDBC之用IDEA连接SQLServer数据库实用教程

Posted Aricl.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JDBC之用IDEA连接SQLServer数据库实用教程相关的知识,希望对你有一定的参考价值。

目录

前言

一、数据库准备

1.通过SQLServer配置管理器打开TCP/IP协议,设置状态为已启用

2.数据库登录模式设置为身份验证登录(如果已经设置可忽略此步骤)

3.下载SQLServer驱动jar包

二、IDEA准备

1.导入SQLServer驱动jar包

 2.编写测试代码,向SQLServer数据库发动SQL语句请求

 三、连接报错解决方案

四、小结


前言

最近Java学完了JDBC,在连接数据库这件事情上,也找了网上很多博主的文章,期间也遇到了不少问题,最终经历一番曲折解决了数据库连接问题。我也理解新手在接触JDBC时,尤其是在建立数据库连接上非常令人头疼。为此,博主花了晚上一个半小时,精心准备了这篇教程来解答。

一、数据库准备

1.通过SQLServer配置管理器打开TCP/IP协议,设置状态为已启用

按照步骤:此电脑-->管理-->服务和应用程序-->SQLServer配置管理器-->SQLServer网络配置

-->选择打开你本机SQLServer的实例的协议-->TCP/IP协议

注意:如果TCP/IP协议已被禁用则需要右键选中打开,将其设置为已启用状态,否则会影响到后面的数据库连接操作!启用之后要重新启动SQLServer服务:打开SQLServer配置管理器里面的SQLServer服务,右键SqlServerAnalysisServices(黄色图标)重新启动,耐心等待即可完成刚才的配置。

双击IP地址-->IPALL(下拉到最后)-->把TCP端口改为1433(1433为SQLServer数据库的默认端口号,不同的数据库有不同的默认端口号)

2.数据库登录模式设置为身份验证登录(如果已经设置可忽略此步骤)

打开数据库实例-->安全性-->登录名-->右键sa-->属性-->勾选SQLServer身份验证并设置密码

再打开状态,授予连接到数据库引擎和启用登录名

(注:一般默认如此,但是不排除在安装SQLServer数据库时设置了拒绝和禁用因素,所以查看一下确保最后的连接能够成功)

 再右键数据库实例打开服务器属性,打开安全性,配置如下

 下面重启数据库使得上述配置生效即可。

(关闭重开或者右键服务器点击重新启动数据库服务即可)

3.下载SQLServer驱动jar包

已上传百度网盘:

链接:https://pan.baidu.com/s/1oYYEzXJt-22fKssHl4C7Ag 
提取码:o999

(注:里面有三个驱动包,读者根据自己SQLServer版本选择,本人目前用的是SQLServer2012)

二、IDEA准备

1.导入SQLServer驱动jar包

左上角Files-->Project Structure-->Libraries-->点击 + 号-->选择Java-->选择刚刚下载的SQLServer驱动包的路径-->OK

 2.编写测试代码,向SQLServer数据库发动SQL语句请求

以下测试代码建立在数据库中已经建立了名为school的数据库,并且在里面创建一张student表

 测试代码:

import java.sql.*;
public class sql2 
    public static void main(String args[])
            Connection con;
            Statement st;
            ResultSet rs;
            String dbURL="jdbc:sqlserver://localhost:1433;DatabaseName=school";
            String userName="sa";
            String userPwd="123456";
            String sql="select * from student";
            try 
                con = DriverManager.getConnection(dbURL, userName, userPwd);
                st = con.createStatement();
                rs = st.executeQuery(sql);
                while (rs.next()) 
                    String sno = rs.getString(1);
                    String sname = rs.getString(2);
                    String ssex = rs.getString(3);
                    String sbir = rs.getString(4);
                    String sclass = rs.getString(5);
                    System.out.println("学号:" + sno + "\\n姓名:" + sname + "\\n性别:" + ssex
                            + "\\n出生日期:" + sbir + "\\n班号:" + sclass);
                
                rs.close();
                st.close();
                con.close();
            catch(SQLException e)
                e.printStackTrace();
                System.out.println("数据库连接失败!!!");
            

    

运行结果:

能够打印出从数据库中查询到的数据,那么恭喜你,数据库已经连接成功啦!

 三、连接报错解决方案

请借鉴这位博主的文章,挺详细的

2种解决方案

四、小结

        作为程序员,自行解决问题的能力非常重要,即所谓的Debug能力。网上很流行的一句话:“程序员工作三连:查Bug,改Bug,写Bug......”,当然这是调侃,但也很现实。

        凡是遇到问题先不要慌,勇于探索解决它。就像这个数据库连接问题,我一开始搞也遇到了很多问题,历经曲折终于解决了,并成功帮助两个室友成功连接数据库,十分钟左右就搞定了。

        所以只有十分努力,才能看起来毫不费力。诚如斯言!

-----------------------------------------

最后如果你觉得本文对你有帮助的话,别忘记点赞加关注哦。

如果连接仍有问题,可以私信我,有空必回。

idea从零到精通(11)之用JDBC连接Mysql数据库

作者简介

作者名:编程界明世隐
简介:CSDN博客专家,从事软件开发多年,精通Java、JavaScript,博主也是从零开始一步步把学习成长、深知学习和积累的重要性,喜欢跟广大ADC一起打野升级,欢迎您关注,期待与您一起学习、成长、起飞!

引言

我本来是一直用eclipse和myeclipse的老程序员了,很多我的粉丝小伙伴都说他们要用idea,问我怎么不用idea,其实明哥觉得用啥开发工具都不是重点,重点是要跟着明哥多学Java知识、多练习,但是作为一个宠粉的人,我怎么能拒绝粉丝的要求呢,于是我偷偷的去学习了一波(拿来吧你),然后就写了这个系列,希望小伙伴们能有所收获,明哥会努力更新的。

导航

✪ idea从零到精通目录索引
◄上一篇  【10】JDK下载安装与配置
►下一篇待更新     

热门专栏推荐

【1】Java小游戏(俄罗斯方块、飞机大战、植物大战僵尸等)
【2】JavaWeb项目实战(图书管理、在线考试、宿舍管理等)
【3】JavaScript精彩实例(飞机大战、贪吃蛇、验证码等)
【4】Java小白入门200例
【5】从零学Java、趣学Java
【6】Idea从零到精通

一、创建web项目

File – NEW – Project – Java Enterprise – Next

填入好工程名,点击完成

二、加入Mysql驱动

打开项目,一次打开目录,web–WEB-INF–lib 加入Mysql的驱动jar包。

File – Project Structure… – Libraies


点击“加号” – Java

选择好你项目中lib下的驱动jar包,点击OK

加入后效果图如下,点击OK

三、编写查询代码

  1. 创建数据库连接类

  2. 加载JDBC驱动程序
    在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过java.lang.Class类的静态方法forName(String className)实现。
    在新创建的类中编写代码如下:

import java.sql.Connection;

public class DBConnection 

  //获取数据库连接
  public Connection getConnection()
    Connection conn = null;//定义返回
    try//加载MySql的驱动类
      Class.forName("com.mysql.jdbc.Driver") ;
    catch(ClassNotFoundException e)
      System.out.println("找不到驱动程序类 ,加载驱动失败!");
      e.printStackTrace() ;
    

    //返回
    return conn;
  

  1. 创建数据库的连接
    要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象,该对象就代表一个数据库的连接。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DBConnection 

  //获取数据库连接
  public Connection getConnection() 
    Connection conn = null;//定义返回
    try //加载MySql的驱动类
      Class.forName("com.mysql.jdbc.Driver");
     catch (ClassNotFoundException e) 
      System.out.println("找不到驱动程序类 ,加载驱动失败!");
      e.printStackTrace();
    
    //连接MySql数据库,用户名和密码都是root
    String url = "jdbc:mysql://localhost:3306/library";
    String username = "root";
    String password = "root";

    try 
      conn = DriverManager.getConnection(url, username, password);
     catch (SQLException se) 
      System.out.println("数据库连接失败!");
      se.printStackTrace();
    
    //返回
    return conn;
  


  1. 创建preparedStatement、执行查询、遍历结果集、关闭JDBC对象资源
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class JDBC_Test 

  static Connection conn = null;
  static Statement stmt;

  public static void main(String[] args) 
    query();
  

  /* 查询数据库,输出符合要求的记录的情况*/
  public static void query() 
    ResultSet rs = null;
    conn = new DBConnection().getConnection(); //同样先要获取连接,即连接到数据库
    try 
      String sql = "select * from user";     // 查询数据的sql语句
      stmt = (Statement) conn.createStatement();    //创建用于执行静态sql语句的Statement对象,st属局部变量

      rs = stmt.executeQuery(sql);    //执行sql查询语句,返回查询数据的结果集
      System.out.println("最后的查询结果为:");
      while (rs.next())  // 判断是否还有下一个数据
        // 根据字段名获取相应的值
        String name = rs.getString("name");
        String no = rs.getString("no");

        //输出查到的记录的各个字段的值
        System.out.println("名字:" + name + ",账号 " + no);

      
      conn.close();   //关闭数据库连接

     catch (SQLException e) 
      System.out.println("查询数据失败");
    

    if (rs != null)    // 关闭记录集
      try 
        rs.close();
       catch (SQLException e) 
        e.printStackTrace();
      
    
    if (stmt != null)    // 关闭声明
      try 
        stmt.close();
       catch (SQLException e) 
        e.printStackTrace();
      
    
    if (conn != null)   // 关闭连接对象
      try 
        conn.close();
       catch (SQLException e) 
        e.printStackTrace();
      
    
  


四、测试查询代码

运行以上代码结果如下:

最后的查询结果为:
名字:超级管理,账号 sa
名字:student001,账号 001
名字:student002,账号 002
名字:管理员1,账号 admin
名字:管理员002,账号 admin2

五、编写插入代码

//编写一个插入测试代码
  public static void insert() 
    conn = new DBConnection().getConnection(); //同样先要获取连接,即连接到数据库
    try 
      String sql = "insert into user(no,name,password,sex,phone,role_id,isValid) values(?,?,?,?,?,?,?)";     // sql语句
      PreparedStatement ps = conn.prepareStatement(sql);//创建prepareStatement
      ps.setString(1,"ming");
      ps.setString(2,"编程界明世隐");
      ps.setString(3,"123456");
      ps.setString(4,"1");
      ps.setString(5,"13579");
      ps.setString(6,"0");
      ps.setString(7,"Y");
      ps.executeUpdate();

      conn.close();   //关闭数据库连接
      if (ps != null)    // 关闭声明
        try 
          ps.close();
         catch (SQLException e) 
          e.printStackTrace();
        
      
      if (conn != null)   // 关闭连接对象
        try 
          conn.close();
         catch (SQLException e) 
          e.printStackTrace();
        
      
     catch (SQLException e) 
      System.out.println("插入数据失败");
    
  

但是运行发现是插入到数据库的中文是乱码,需要在获取数据库连接代码的数据库地址做修改,如下(当然前提是你数据库的编码也设置成了UTF-8):

String url = “jdbc:mysql://localhost:3306/library?characterEncoding=utf8”;

调用 insert和query方法

  public static void main(String[] args) 
    insert();
    query();
  

运行结果:

最后的查询结果为:
名字:超级管理,账号 sa
名字:student001,账号 001
名字:student002,账号 002
名字:管理员1,账号 admin
名字:管理员002,账号 admin2
名字:编程界明世隐,账号 ming

可以看到插入的新数据 “编程界明世隐”。

六、编写修改代码

//编写一个修改测试代码
  public static void update() 
    conn = new DBConnection().getConnection(); //同样先要获取连接,即连接到数据库
    try 
      String sql = "update user set no=? where name=?";     // sql语句
      PreparedStatement ps = conn.prepareStatement(sql);//创建prepareStatement
      ps.setString(1,"ming123");
      ps.setString(2,"编程界明世隐");
      ps.executeUpdate();

      conn.close();   //关闭数据库连接
      if (ps != null)    // 关闭声明
        try 
          ps.close();
         catch (SQLException e) 
          e.printStackTrace();
        
      
      if (conn != null)   // 关闭连接对象
        try 
          conn.close();
         catch (SQLException e) 
          e.printStackTrace();
        
      
     catch (SQLException e) 
      System.out.println("修改数据失败");
    
  

在main方法中调用 update 和 query方法

public static void main(String[] args) 
    //insert();
    update();
    query();
  

运行结果

最后的查询结果为:
名字:超级管理,账号 sa
名字:student001,账号 001
名字:student002,账号 002
名字:管理员1,账号 admin
名字:管理员002,账号 admin2
名字:编程界明世隐,账号 ming123

编程界明世隐 对应的账号被改为了 “ming123”

七、编写删除代码

//编写一个测试测试代码
  public static void delete() 
    conn = new DBConnection().getConnection(); //同样先要获取连接,即连接到数据库
    try 
      String sql = "delete from user where name=?";     // sql语句
      PreparedStatement ps = conn.prepareStatement(sql);//创建prepareStatement
      ps.setString(1,"编程界明世隐");
      ps.executeUpdate();

      conn.close();   //关闭数据库连接
      if (ps != null)    // 关闭声明
        try 
          ps.close();
         catch (SQLException e) 
          e.printStackTrace();
        
      
      if (conn != null)   // 关闭连接对象
        try 
          conn.close();
         catch (SQLException e) 
          e.printStackTrace();
        
      
     catch (SQLException e) 
      System.out.println("修改数据失败");
    
  

在main方法中调用

  public static void main(String[] args) 
    //insert();
    //update();
    delete();
    query();
  

运行结果:

最后的查询结果为:
名字:超级管理,账号 sa
名字:student001,账号 001
名字:student002,账号 002
名字:管理员1,账号 admin
名字:管理员002,账号 admin2

可以看到 “编程界明世隐”这条记录被删除。

小结

这节总结了“ 用JDBC连接Mysql数据库 ”,希望能对大家有所帮助,请各位小伙伴帮忙 【点赞】+【收藏】+ 【评论区打卡】, 如果有兴趣跟小明哥一起学习Java的,【关注一波】不迷路哦。

评论区打卡一波让我知道你,明哥会持续关注你的学习进度哦!

导航

✪ idea从零到精通目录索引
◄上一篇  【10】JDK下载安装与配置
►下一篇待更新     

热门专栏推荐

【1】Java小游戏(俄罗斯方块、飞机大战、植物大战僵尸等)
【2】JavaWeb项目实战(图书管理、在线考试、宿舍管理等)
【3】JavaScript精彩实例(飞机大战、贪吃蛇、验证码等)
【4】Java小白入门200例
【5】从零学Java、趣学Java
【6】Idea从零到精通

以上是关于JDBC之用IDEA连接SQLServer数据库实用教程的主要内容,如果未能解决你的问题,请参考以下文章

Java新手入门200例124之用JDBC连接Mysql数据库

JDBC 连接失败,错误:与主机的 TCP/IP 连接失败

IDEA从零到精通(12)之用C3P0连接Mysql数据库

JAVA中如何通过JDBC-ODBC桥来连接SQLServer数据库

idea springboot中整合jdbc连接MySQL中,Schemas中无mybatis怎么解决?

通俗易懂的JDBC教程-JDBC与ORM发展与联系#私藏项目实操分享#