使用jdbc链接数据库,并进行数据库操作

一、导入commons-dbutils-1.6.jar和mysql-connector-java-5.1.37-bin.jar包

二、创建User实体类

package Domian;

public class User {
	private int uid;
	private String username;

	public User() {
	}

	public User(int uid, String username) {
		super();
		this.uid = uid;
		this.username = username;
	}

	@Override
	public String toString() {
		return "User [uid=" + uid + ", username=" + username + "]";
	}

	public int getUid() {
		return uid;
	}

	public void setUid(int uid) {
		this.uid = uid;
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

}

三、创建DBUtils包,进行获取资源和关闭资源

在这里就要使用mysql-connector-java-5.1.37-bin.jar包,

注意:导包的时候只能导入java.sql.*包,不要导入com.mysql.jdbc.*

package DBUtils;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

//封装一个获取资源的方法
public class JDBCUtil {
    // 1.创建一个静态的连接方法,直接调用就OK
    public static Connection getConnection() {
        
        try {
            // 1.注册驱动
            Class.forName("com.mysql.jdbc.Driver");
            // 2.获取连接
            Connection conn =DriverManager.getConnection("jdbc:mysql://localhost:3306/school", "root","123456");
            System.out.println(conn);
            return conn;
        } catch (ClassNotFoundException | SQLException e) {
            e.printStackTrace();
        }
        return null;
    }

    // 2.创建一个静态的关闭资源的方法,直接调用就可以关闭
    public static void closeAllResource(Connection conn, Statement st, ResultSet rs) {
        if (conn != null) {
            try {
                conn.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        if (st != null) {
            try {
                st.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        if (rs != null) {
            try {
                rs.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

}

三、最基本的数据库操作的方法

package DBUtils;

import java.sql.*;
import java.util.ArrayList;

import Domian.User;
//这个是jdbc最原始的方法
public class dao1 {
	// inseert,update,delete使用这个方法,(IUD)
	public boolean IUD(String sql) {
		// 1.连接数据库
		Connection conn = JDBCUtil.getConnection();
		Statement st;
		try {
			// 2.获取执行sql语句对象
			st = conn.createStatement();
			// 增、删、改使用update方法
			int count = st.executeUpdate(sql);
			// 3.关闭资源
			JDBCUtil.closeAllResource(conn, st, null);
			if (count >= 1) {
				return true;
			} else {
				return false;
			}
		} catch (SQLException e) {
			e.printStackTrace();
			System.out.println("失败了");
		}

		return false;

	}

	// select使用这个方法
	public ArrayList<User> Search() {

		// 1.连接数据库
		Connection conn = JDBCUtil.getConnection();
		// 2.获取执行sql语句对象
		Statement st;
		ArrayList<User> list = new ArrayList<User>();
		String sql = "SELECT * FROM USER";
		try {
			// 2.获取执行sql语句对象
			st = conn.createStatement();
			// 3.获得结果
			ResultSet rs = st.executeQuery(sql);
			// 4.遍历结果集
			while (rs.next()) {
				int uid = rs.getInt("uid");
				String username = rs.getString("username");
				list.add(new User(uid, username));
			}
			// 4.关闭资源
			JDBCUtil.closeAllResource(conn, st, null);
			return list;

		} catch (SQLException e) {
			e.printStackTrace();
			System.out.println("失败了");
		}
		return null;
	}
}

四、使用QueryRunner方法进行数据库操作

注意:如果要进行查询操作,记得在实体类中创建一个空参构造函数。

package DBUtils;

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;

import Domian.User;

//使用dbutils.jar包
public class dao2 {
	// 增删改
	public boolean add(int uid,String username) {
		// 1.获取资源
		Connection conn = JDBCUtil.getConnection();
		// 2.创建了一个QueryRunner对象
		QueryRunner qr = new QueryRunner();
		// 3.调用QueryRunner的query方法.
		List<User> list;
		try {
			String sql="INSERT INTO USER VALUE(?,?)";
			Object[]parms= {uid,username};//parms会自动配置数据进入sql语句中
			int count=qr.update(conn,sql,parms);
			JDBCUtil.closeAllResource(conn, null, null);
			if(count>=1) {
				return true;
			}else {
				return false;
			}
		} catch (SQLException e) {
			e.printStackTrace();
			System.out.println("失败了");
		}

		return false;

	}

	// 查询
	public ArrayList<User> Search() {
		// 1.获取资源
		Connection conn = JDBCUtil.getConnection();
		// 2.创建sql语句
		String sql = "SELECT * FROM USER";
		// 3.创建了一个QueryRunner对象
		QueryRunner qr = new QueryRunner();
		// 4.调用QueryRunner的query方法.
		List<User> list;
		try {
			// 这条语句只能用于查询语句,最后一个参数会自动生成一个User的集合
			//注意事项,在User类中要创建一个无参数构造方法
			list = qr.query(conn, sql, new BeanListHandler<User>(User.class));// 参1 连接 参2 sql 参3 转换器
			JDBCUtil.closeAllResource(conn, null, null);
			return (ArrayList<User>) list;
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.out.println("失败了");
		}
		return null;
	}

}

DUButil工具的介绍和使用教程

https://www.cnblogs.com/lihanxiang/p/8475548.html;

好了,这就是我今天学的,为了方便,可以直接复制方法二使用.

发布了20 篇原创文章 · 获赞 13 · 访问量 9514

猜你喜欢

转载自blog.csdn.net/qq_35653657/article/details/103430755