我是靠谱客的博主 苹果火龙果,最近开发中收集的这篇文章主要介绍使用JDBC链接MySQL数据库、如何在Java中创建事务MySQLJDBC下载与使用Java与MySQL建立链接创建一个事务Demo 自定义JDBCUtils工具类,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

MySQLJDBC下载与使用

Java与MySQL建立链接

创建一个事务Demo 

自定义JDBCUtils工具类


MySQLJDBC下载与使用

没有MySQL的jar包的可以去我网盘下载:

链接:https://pan.baidu.com/s/1ptMNriEOfAUq-N6LRsqJng 
提取码:oe8o 

1.导入jar包步骤

①打开下载的jar包,找到mysql-connector-java-8.0.29.jar,并复制,然后在自己的项目里新建一个文件夹lib,将复制的mysql-connector-java-8.0.29.jar粘贴到lib目录下

②右击刚导入的jar包,Add as Library,

③开始书写代码

Java与MySQL建立链接

public class JDBCDemo01 {
    public static void main(String[] args) throws Exception {
        // 1.导入驱动jar包
        // 2.注册驱动,mysql 5 之后可以自动加载驱动
        //Class.forName("com.mysql.jdbc.Driver");
        // 3.获取数据库链接对象
        Connection conn = DriverManager.getConnection("jdbc:mysql://IP:端口号/要使用的数据库名","root","数据库密码");
        // 4.定义sql语句
        String str = "UPDATE student2 SET phone = 5 WHERE id = 3";//修改student2表中phone=5,当id=3时;
        // 5.获取执行sql对象
        Statement statement = conn.createStatement();
        // 6.执行sql语句
        int i = statement.executeUpdate(str);
        // 7.处理结果
        System.out.println(i);//这里输出一下做个演示
        // 8.释放资源
        statement.close();
        conn.close();
    }
}

创建一个事务Demo 

public class JDBCDemo10 {

	    public static void main(String[] args) {
	        Connection conn = null;
	        PreparedStatement pstmt1 = null;
	        PreparedStatement pstmt2 = null;
	
	        try {
	            //1.获取连接
	            conn = JDBCUtils.getConnection();
	            //开启事务
	            conn.setAutoCommit(false);
	
	            //2.定义sql--在提前建立好数据库表的情况下
	            //2.1 张三 - 500
	            String sql1 = "update account set balance = balance - ? where id = ?";
	            //2.2 李四 + 500
	            String sql2 = "update account set balance = balance + ? where id = ?";
	            //3.获取执行sql对象
	            pstmt1 = conn.prepareStatement(sql1);
	            pstmt2 = conn.prepareStatement(sql2);
	            //4. 设置参数
	            pstmt1.setDouble(1,500);//将pstmt1中第1个?设置为500
	            pstmt1.setInt(2,1);//将pstmt1中第2个?设置为1
	
	            pstmt2.setDouble(1,500);//将pstmt2中第1个?设置为500
	            pstmt2.setInt(2,2);//将pstmt1中第2个?设置为2
	            //5.执行sql
	            pstmt1.executeUpdate();
	            // 手动制造异常,如果出现异常事务将会回滚,两个sql语句的执行结果都不会被提交
	            int i = 3/0;
	
	            pstmt2.executeUpdate();
	            //提交事务
	            conn.commit();
	        } catch (Exception e) {
	            //事务回滚
	            try {
	                if(conn != null) {
	                    conn.rollback();
	                }
	            } catch (SQLException e1) {
	                e1.printStackTrace();
	            }
	            e.printStackTrace();
	        }finally {
                //JDBC工具类,简化了代码的书写
	            JDBCUtils.close(pstmt1,conn);
	            JDBCUtils.close(pstmt2,null);
	        }
	
	    }
	
	}

自定义JDBCUtils工具类

简化了代码的书写

public class JDBCUtils {
    private static String url;
    private static String user;
    private static String password;
    private static String driver;
    /**
     * 文件的读取,只需要读取一次即可拿到这些值。使用静态代码块
     */
    static{
        //读取资源文件,获取值。
        try {
            //1. 创建Properties集合类。
            Properties pro = new Properties();

            //获取src路径下的文件的方式--->ClassLoader 类加载器
            ClassLoader classLoader = JDBCUtils.class.getClassLoader();
            URL res  = classLoader.getResource("jdbc.properties");
            String path = res.getPath();
            
            //2. 加载文件
            pro.load(new FileReader(path));

            //3. 获取数据,赋值
            url = pro.getProperty("url");
            user = pro.getProperty("user");
            password = pro.getProperty("password");
            driver = pro.getProperty("driver");
            //4. 注册驱动
            Class.forName(driver);
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
    }
    /**
     * 获取连接
     * @return 连接对象
     */
    public static Connection getConnection() throws SQLException {

        return DriverManager.getConnection(url, user, password);
    }

    /**
     * 释放资源
     * @param stmt
     * @param conn
     */
    public static void close(Statement stmt,Connection conn){
        if( stmt != null){
            try {
                stmt.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }

        if( conn != null){
            try {
                conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }


    /**
     * 释放资源
     * @param stmt
     * @param conn
     */
    public static void close(ResultSet rs,Statement stmt, Connection conn){
        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();
            }
        }
    }

}

最后

以上就是苹果火龙果为你收集整理的使用JDBC链接MySQL数据库、如何在Java中创建事务MySQLJDBC下载与使用Java与MySQL建立链接创建一个事务Demo 自定义JDBCUtils工具类的全部内容,希望文章能够帮你解决使用JDBC链接MySQL数据库、如何在Java中创建事务MySQLJDBC下载与使用Java与MySQL建立链接创建一个事务Demo 自定义JDBCUtils工具类所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(57)

评论列表共有 0 条评论

立即
投稿
返回
顶部