【MySQL】JDBC编程

打印 上一主题 下一主题

主题 864|帖子 864|积分 2592



  

  
接待关注个人主页:逸狼

  
  
创造不易,可以点点赞吗~

  
如有错误,接待指出~

  
  
  目录
  
  代码连接数据库的 前期准备 
  通过代码利用JDBC的API
  创建数据源对象
  给数据源对象设置必要属性
   setUrl
  setUser
  setPassword
  建立网络连接
  发送到服务器 实行
  释放资源
  完整代码 插入数据
   用户自行输入内容
  查询操纵代码
   ​编辑
  
  
  代码连接数据库的 前期准备 

针对数据库的操纵,现实工作中 很少会直接通过 命令行/图形化 客户端来操纵数据库,更多是通过代码(C++,Java,Python,Go.....)操纵数据库,前提数据库要提供一组API(Application Programming Interface 应用程序编程接口,在库中的类/方法/函数就可以称为API)供其他程序来利用
每个数据库的api都是自成一套体系,Java自身指定了一套API,其他数据库都要把自己的API转换成和Java这一套兼容的API(即JDBC),对于Java程序员,只需要学习一套api就可以应对各种数据库了
mysql官方提供了一个mysql-connector第三方库 将MySQL原生的C的API转换成 兼容JDBC的Java的API
mysql-connector 是第三方库,需要自己下载,推荐取maven中央仓库下载
以下是下载步调:

如果mysql 服务器是8系列,connector 也必须利用8版本(5版本同理) 


下载好jar包 ,在idea里创建一个项目,拷贝到自己创建的一个目录(这里演示的是'lib' ),右键这个目录,选择 add as library(告诉idea,这个lib目录是一个'库'目录),添加完 '库'后,此时idea就能自动分析出jar包里的内容

通过代码利用JDBC的API

下面通过演示 用代码操纵数据库 并 插入数据的效果
创建数据源对象

由于DataSource是一个Interface,不能new出来,需要实现这个接口的子类(MysqlDataSource())

  1.         //1.创建数据源对象
  2.         DataSource dataSource =new MysqlDataSource();
  3.         //给数据源对象 设置必要的属性
  4.         ((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/test1?characterEncoding=utf8&useSSL=false");
  5.         ((MysqlDataSource) dataSource).setUser("root");
  6.         ((MysqlDataSource) dataSource).setPassword("111111");
复制代码
给数据源对象设置必要属性

 setUrl

设置 数据库服务器的 位置
URL称为 "唯一资源定位符" 用来描述一个 网络上的资源的位置,数据库也可以明白为一种网络资源
代码中setUrl里的: jdbc:mysql://127.0.0.1:3306/test1characterEncoding=utf8&usesSL=false(不用记,知道含义就行)

setUser

设置 访问服务器的账户
root 是 mysql自带用户,管理员用户,权限是最高的
setPassword

设置 访问服务的密码  (你安装数据库时 设置的密码)
建立网络连接

  1.         //2.和数据服务器建立网络连接
  2.         dataSource.getConnection();
  3.         Connection connection =dataSource.getConnection();
  4.         System.out.println(connection);
复制代码



构造sql语句

  1.         //3.程序构造sql语句
  2.         String sql ="insert into student values(1,'张三')";
  3.         PreparedStatement statement = connection.prepareStatement(sql);
复制代码
 
发送到服务器 实行

  1.         //把sql语句发送到服务器上,让服务器执行
  2.         int n=statement.executeUpdate();//n表示执行的语句数量
  3.         System.out.println(n);//查看要几行被影响了
复制代码
 
释放资源

释放资源的顺序要和创建资源的顺序 相反
  1.         //5.释放上述资源
  2.         statement.close();
  3.         connection.close();
复制代码
完整代码 插入数据

update/ delete 代码完全一样,只是把string sql里的内容换了
  1.     public static void main(String[] args) throws SQLException {        //1.创建数据源对象
  2.         DataSource dataSource =new MysqlDataSource();
  3.         //给数据源对象 设置必要的属性
  4.         ((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/test1?characterEncoding=utf8&useSSL=false");
  5.         ((MysqlDataSource) dataSource).setUser("root");
  6.         ((MysqlDataSource) dataSource).setPassword("111111");        //2.和数据服务器建立网络连接
  7.         dataSource.getConnection();
  8.         Connection connection =dataSource.getConnection();
  9.         System.out.println(connection);        //3.程序构造sql语句        String sql ="insert into student values(1,'张三')";        //4.把sql语句发送到服务器上,让服务器实行        PreparedStatement statement = connection.prepareStatement(sql);        int n=statement.executeUpdate();        //5.释放上述资源
  10.         statement.close();
  11.         connection.close();    }
复制代码
插入数据后,检察数据库,插入成功

 用户自行输入内容

在上面完整代码中 添加两处代码
  1.         //0.让用户输入id 和name
  2.         Scanner scanner= new Scanner(System.in);
  3.         System.out.println("请输入id: ");
  4.         int id = scanner.nextInt();
  5.         System.out.println("请输入name: ");
  6.         String name =scanner.next();
复制代码
  1.         //3.程序构造sql语句
  2.         String sql ="insert into student values(?,?)";
  3.         //把sql语句发送到服务器上,让服务器执行
  4.         PreparedStatement statement = connection.prepareStatement(sql);
  5.         statement.setInt(1,id);//1说明替换第一个问号
  6.         statement.setString(2,name);
  7.         int n=statement.executeUpdate();
复制代码

查询操纵代码

select 操纵和上面操纵相比 都了个"遍历效果集合" 步调
  1.     //查询    public static void main(String[] args) throws SQLException {        //1.创建数据源对象
  2.         DataSource dataSource =new MysqlDataSource();
  3.         //给数据源对象 设置必要的属性
  4.         ((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/test1?characterEncoding=utf8&useSSL=false");
  5.         ((MysqlDataSource) dataSource).setUser("root");
  6.         ((MysqlDataSource) dataSource).setPassword("111111");        //2.和数据服务器建立网络连接        dataSource.getConnection();        Connection connection =dataSource.getConnection();        //3.程序构造sql语句        String sql ="select * from student";        PreparedStatement statement = connection.prepareStatement(sql);        //4.实行sql        ResultSet resultSet=statement.executeQuery();        //5.遍历效果集合        while(resultSet.next()){            //循环 针对一行数据进行处理            System.out.println(resultSet.getInt("id"));            System.out.println(resultSet.getString("name"));        }                //6.释放上述资源        resultSet.close();        statement.close();        connection.close();    }
复制代码

 



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

兜兜零元

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表