zoukankan      html  css  js  c++  java
  • MYSQL 之 JDBC(十八): IDEA用Maven连接MySQL的jdbc驱动,并操作数据库

    来源:https://www.cnblogs.com/dadian/p/11938707.html

    1、在IDEA里创建Maven项目

    1.1、点击Create New Project

     
    1.2、选择Maven,JDK这里用的是1.8,点击Next

     1.3、填入“组织名”、“项目名”,版本是默认的,点击Next
     
    1.4、选择创建路径,点击Finsh
     
    1.5、这是创建完成的界面
     

    2、用Maven连接Mysql的JDBC驱动

    2.1、打开src下的pom.xml文件, 在里面添加Mysql的jdbc包的引用,代码如下

    复制代码
    1 <dependencies>
    2     <dependency>
    3         <groupId>mysql</groupId>
    4         <artifactId>mysql-connector-java</artifactId>
    5         <version>8.0.18</version>
    6     </dependency>
    7 </dependencies>
    复制代码

    2.2、添加完成后,IDEA右下角会出现下图提示,点击提示中的Import Changes,Maven就会开始下载资源

     

    2.3、下载时页面左下角出现正在下载的提示

     

    2.4、下载完成变成绿勾

     

    3、连接数据库第一种方式:直接注册驱动,向数据库插入数据(不推荐使用)

    3.1、在src——main——java目录下,新建一个LinkDatabaseInsert的类

    复制代码
     1 import java.sql.Connection;
     2 import java.sql.DriverManager;
     3 import java.sql.PreparedStatement;
     4 import java.sql.SQLException;
     5 
     6 public class LinkDatabaseInsert {
     7     public static void main(String[] args) throws ClassNotFoundException, SQLException {
     8         //1.注册数据库的驱动
     9         Class.forName("com.mysql.jdbc.Driver");
    10         //2.获取数据库连接(里面内容依次是:"jdbc:mysql://主机名:端口号/数据库名","用户名","登录密码")
    11         Connection connection = DriverManager.getConnection("jdbc:mysql://rm-uf6lgkv4fd9776rxego.mysql.rds.aliyuncs.com:3306/study","root","whmilyY123!");
    12         //3.需要执行的sql语句(?是占位符,代表一个参数)
    13         String sql = "insert into stu(id,name,age) values(?,?,?)";
    14         //4.获取预处理对象,并依次给参数赋值
    15         PreparedStatement statement = connection.prepareCall(sql);
    16         statement.setInt(1,12); //数据库字段类型是int,就是setInt;1代表第一个参数
    17         statement.setString(2,"小明");    //数据库字段类型是String,就是setString;2代表第二个参数
    18         statement.setInt(3,16); //数据库字段类型是int,就是setInt;3代表第三个参数
    19         //5.执行sql语句(执行了几条记录,就返回几)
    20         int i = statement.executeUpdate();
    21         System.out.println(i);
    22         //6.关闭jdbc连接
    23         statement.close();
    24         connection.close();
    25     }
    26 }
    复制代码

    3.2、运行程序,返回1,说明插入成功

     

    4、连接数据库第二种方式——新建数据库配置文件,获取配置文件信息后,再注册数据库驱动

    4.1、利用反射获取新建的数据库配置文件db.properties里的信息

    4.1.1、在src——main——resources目录下,新建db.properties文件

    1 driver=com.mysql.jdbc.Driver
    2 url=jdbc:mysql://rm-uf6lg6rxego.mysql.rds.aliyuncs.com:3306/study
    3 user=root
    4 password=wY123!

     4.1.2、新建util包,然后在里面创建JdbcUtil类,利用反射获取db.properties文件信息,最后返回数据库连接

    复制代码
     1 package util;
     2 
     3 import java.io.InputStream;
     4 import java.sql.Connection;
     5 import java.sql.DriverManager;
     6 import java.util.Properties;
     7 
     8 //获取到db.properties文件中的数据库信息
     9 public class JdbcUtil {
    10     //私有变量
    11     private static String driver;
    12     private static String url;
    13     private static String user;
    14     private static String password;
    15 
    16     //静态块
    17     static{
    18         try{
    19             //1.新建属性集对象
    20             Properties properties = new Properties();
    21             //2通过反射,新建字符输入流,读取db.properties文件
    22             InputStream input = JdbcUtil.class.getClassLoader().getResourceAsStream("db.properties");
    23             //3.将输入流中读取到的属性,加载到properties属性集对象中
    24             properties.load(input);
    25             //4.根据键,获取properties中对应的值
    26             driver = properties.getProperty("driver");
    27             url = properties.getProperty("url");
    28             user = properties.getProperty("user");
    29             password = properties.getProperty("password");
    30         }catch(Exception e){
    31             e.printStackTrace();
    32         }
    33     }
    34 
    35     //返回数据库连接
    36     public static Connection getConnection(){
    37         try{
    38             //注册数据库的驱动
    39             Class.forName(driver);
    40             //获取数据库连接(里面内容依次是:主机名和端口、用户名、密码)
    41             Connection connection = DriverManager.getConnection(url,user,password);
    42             //返回数据库连接
    43             return connection;
    44         }catch (Exception e){
    45             e.printStackTrace();
    46         }
    47         return null;
    48     }
    49 }
    复制代码

     4.1.3、在java目录下创建LinkMysql类,调用JdbcUtil类返回的数据库连接操作数据库

    复制代码
     1 import util.JdbcUtil;
     2 
     3 import java.sql.Connection;
     4 import java.sql.PreparedStatement;
     5 import java.sql.SQLException;
     6 
     7 public class LinkMysql {
     8     public static void main(String[] args) throws ClassNotFoundException, SQLException {
     9         //获取数据库连接
    10         Connection connection = JdbcUtil.getConnection();
    11         //需要执行的sql语句
    12         String sql = "insert into stu(id,name,age) values(?,?,?)";
    13         //获取预处理对象,并给参数赋值
    14         PreparedStatement statement = connection.prepareCall(sql);
    15         statement.setInt(1,14);
    16         statement.setString(2,"李四");
    17         statement.setInt(3,16);
    18         //执行sql语句(插入了几条记录,就返回几)
    19         int i = statement.executeUpdate();  //executeUpdate:执行并更新
    20         System.out.println(i);
    21         //关闭jdbc连接
    22         statement.close();
    23         connection.close();
    24     }
    25 }
    复制代码

     

    4.2、通过ResourceBundle类获取新建的数据库配置文件db.properties里的信息

    4.2.1、在util包里面创建创建JdbcUtil2类,ResourceBundle类获取db.properties文件信息,最后返回数据库连接

    复制代码
     1 package util;
     2 
     3 import java.sql.*;
     4 import java.util.ResourceBundle;
     5 
     6 public class JdbcUtil2 {
     7     //私有变量
     8     private static String driver;
     9     private static String url;
    10     private static String user;
    11     private static String password;
    12 
    13     //静态块
    14     static{
    15         try{
    16             //2.3通过ResourceBundle类拿到数据库连接信息
    17             ResourceBundle resourceBundle = ResourceBundle.getBundle("db");
    18             driver = resourceBundle.getString("driver");
    19             url = resourceBundle.getString("url");
    20             user = resourceBundle.getString("user");
    21             password = resourceBundle.getString("password");
    22         }catch(Exception e){
    23             e.printStackTrace();
    24         }
    25     }
    26 
    27     //返回数据库连接
    28     public static Connection getConnection(){
    29         try{
    30             //注册数据库的驱动
    31             Class.forName(driver);
    32             //获取数据库连接(里面内容依次是:主机名和端口、用户名、密码)
    33             Connection connection = DriverManager.getConnection(url,user,password);
    34             //返回数据库连接
    35             return connection;
    36         }catch (Exception e){
    37             e.printStackTrace();
    38         }
    39         return null;
    40     }
    41 
    42     //关闭结果集
    43     public static void closeResultSet(ResultSet resultSet) {
    44         if (resultSet != null) {
    45             try {
    46                 resultSet.close();
    47             } catch (SQLException e) {
    48                 e.printStackTrace();
    49             }
    50         }
    51     }
    52 
    53     //关闭预处理对象
    54     public static void closeStatement(Statement statement) {
    55         if (statement != null) {
    56             try {
    57                 statement.close();
    58             } catch (SQLException e) {
    59                 e.printStackTrace();
    60             }
    61         }
    62     }
    63 
    64     //关闭数据库连接
    65     public static void closeConnection(Connection connection){
    66         if(connection != null){
    67             try {
    68                 connection.close();
    69             } catch (SQLException e) {
    70                 e.printStackTrace();
    71             }
    72         }
    73     }
    74 
    75     //一次性关闭上面三个
    76     public static void closeResource(ResultSet resultSet,Statement statement,Connection connection){
    77         closeResultSet(resultSet);
    78         closeStatement(statement);
    79         closeConnection(connection);
    80     }
    81 }
    复制代码

    4.2.2、在java目录下创建LinkMysql2类,调用JdbcUtil2类返回的数据库连接操作数据库

    复制代码
     1 import util.JdbcUtil2;
     2 
     3 import java.sql.Connection;
     4 import java.sql.PreparedStatement;
     5 import java.sql.SQLException;
     6 
     7 public class LinkMysql2 {
     8     public static void main(String[] args) throws ClassNotFoundException, SQLException {
     9         //获取数据库连接
    10         Connection connection = JdbcUtil2.getConnection();
    11         //需要执行的sql语句
    12         String sql = "insert into stu(id,name,age) values(?,?,?)";
    13         //获取预处理对象,并给参数赋值
    14         PreparedStatement statement = connection.prepareCall(sql);
    15         statement.setInt(1,19);
    16         statement.setString(2,"王五");
    17         statement.setInt(3,16);
    18         //执行sql语句(执行了几条记录,就返回几)
    19         int i = statement.executeUpdate();  //executeUpdate:执行并更新
    20         System.out.println(i);
    21         //关闭jdbc连接
    22         JdbcUtil2.closeResource(null,statement,connection);
    23     }
    24 }
    25 import util.JdbcUtil2;
    26 
    27 import java.sql.Connection;
    28 import java.sql.PreparedStatement;
    29 import java.sql.SQLException;
    30 
    31 public class LinkMysql2 {
    32     public static void main(String[] args) throws ClassNotFoundException, SQLException {
    33         //获取数据库连接
    34         Connection connection = JdbcUtil2.getConnection();
    35         //需要执行的sql语句
    36         String sql = "insert into stu(id,name,age) values(?,?,?)";
    37         //获取预处理对象,并给参数赋值
    38         PreparedStatement statement = connection.prepareCall(sql);
    39         statement.setInt(1,19);
    40         statement.setString(2,"王五");
    41         statement.setInt(3,16);
    42         //执行sql语句(执行了几条记录,就返回几)
    43         int i = statement.executeUpdate();  //executeUpdate:执行并更新
    44         System.out.println(i);
    45         //关闭jdbc连接
    46         JdbcUtil2.closeResource(null,statement,connection);
    47     }
    48 }
    复制代码
     

    5、连接数据库的第三种方式:新建数据库配置文件,获取配置文件信息后,再通过DButils工具包连接数据库

    5.1、打开src下的pom.xml文件, 在里面添加DButils的引用,代码如下
    复制代码
    1 <dependency>
    2     <groupId>commons-dbutils</groupId>
    3     <artifactId>commons-dbutils</artifactId>
    4     <version>1.5</version>
    5 </dependency>
    复制代码

     5.2、创建DbutilsInsert类,往数据库内插入数据,代码如下
    复制代码
     1 import org.apache.commons.dbutils.QueryRunner;
     2 import util.JdbcUtil2;
     3 
     4 import java.sql.Connection;
     5 import java.sql.SQLException;
     6 
     7 public class DbutilsInsert {
     8     public static void main(String[] args) throws SQLException {
     9         //创建dbUtils里面的QueryRunner对象
    10         QueryRunner queryRunner = new QueryRunner();
    11         //sql语句
    12         String sql = "insert into stu(id,name,age) values(?,?,?)";
    13         //存参数值的数组
    14         Object[] objects = {20,"小红",11};
    15         //获取数据库连接
    16         Connection connection = JdbcUtil2.getConnection();
    17         //执行sql语句,并返回影响的行数
    18         int i = queryRunner.update(connection,sql,objects);
    19         System.out.println(i);
    20         //关闭数据库连接
    21         connection.close();
    22     }
    23 }
    复制代码

     

  • 相关阅读:
    CentOS的SSH,Putty配置说明
    关于QString::toWCharArray 无法解析的外部符号
    CentOS最常用命令及快捷键整理
    Ali相关面试题
    C#几个例子[静态构造函数,继承,虚方法]
    SQL 2005 中查询或执行另外的数据库操作的方法
    DataTable Select Top
    SQL中行列转换 Pivot UnPivot
    ASP.NET页面生命周期描述
    Jquery checkbox, select 取值
  • 原文地址:https://www.cnblogs.com/qiu-hua/p/14312179.html
Copyright © 2011-2022 走看看