IDEA用Maven连接MySQL的jdbc驱动,并操作数据库
Posted 打点
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IDEA用Maven连接MySQL的jdbc驱动,并操作数据库相关的知识,希望对你有一定的参考价值。
1、在IDEA里创建Maven项目
1.1、点击Create New Project
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工具包连接数据库
1 <dependency> 2 <groupId>commons-dbutils</groupId> 3 <artifactId>commons-dbutils</artifactId> 4 <version>1.5</version> 5 </dependency>
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 }
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 DbutilsUpdate { 8 public static void main(String[] args) throws SQLException { 9 //创建dbUtils里面的QueryRunner对象 10 QueryRunner queryRunner = new QueryRunner(); 11 //sql语句 12 String sql = "update stu set name=? where id=?"; 13 //存参数值的数组 14 Object[] objects = {"红红",21}; 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 }
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 DbutilsDelete { 8 public static void main(String[] args) throws SQLException { 9 //创建dbUtils里面的QueryRunner对象 10 QueryRunner queryRunner = new QueryRunner(); 11 //sql语句 12 String sql = "delete from stu where id=?"; 13 //存参数值的数组 14 Object[] objects = {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 }
5.5、创建UtilsSelectArrayHandler类,查询数据(ArrayHandler()只会返回第一条记录)
1 import org.apache.commons.dbutils.QueryRunner; 为啥maven编译时不需要jdbc的驱动包IntelliJ IDEA+Mysql connecter/j JDBC驱动连接
(Win10)Java,Maven,Tomcat8.0,Mysql8.0.15安装与环境配置,以及IDEA2019.3使用JDBC连接MySQL创建JavaEE项目