JDBC 数据库连接

2017/01/28

JDBC 编程步骤

加载驱动程序

Class.forName(driverClass)
//加载MySql驱动
Class.forName("com.mysql.jdbc.Driver")
//加载Oracle驱动
Class.forName("oracle.jdbc.driver.OracleDriver")

获得数据库连接

DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/message", "root", "qweasd123");

创建Statement对象(预编译)

conn.createStatement();
conn.prepareStatement(sql);

PreparedStatement对象常用方法

方法 返回值 作用
execute() boolean 执行 SQL 语句,该语句可以是任何种类的 SQL 语句
executeQuery() ResultSet 执行 SQL 查询,并返回该查询生成的 ResultSet 对象。用来执行SELECT 语句
executeUpdate() int 用于执行 INSERT、UPDATE 或 DELETE 语句以及 SQL DDL(数据定义语言)语句。创建表,改变表,删除表都是 DDL 语句

常用数据库的连接

数据库名称 DRIVEN URL
MySQL com.mysql.jdbc.Driver jdbc:mysql://localhost:3306/DBname
Oracle SQL oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:@localhost:1521:DBname
SQL Server 2008 com.microsoft.sqlserver.jdbc.SQLServerDriver jdbc:sqlserver://localhost:1433;DataBaseName=DBname

参考代码

DBHelper数据库连接类

public class DBHelper {
    private static final String driver = "com.mysql.jdbc.Driver"; //数据库驱动
    //连接数据库的URL地址
    private static final String url="jdbc:mysql://localhost:3306/shopping?useUnicode=true&characterEncoding=UTF-8";
    private static final String username="root";//数据库用户名
    private static final String password="qweasd123";//数据库的密码
    private static Connection conn=null;
    //静态代码块负责加载驱动
    static
    {
        try
        {
            Class.forName(driver);
        }
        catch(Exception ex)
        {
            ex.printStackTrace();
        }
    }
    //单例模式返回数据库连接对象
    public static Connection getConnection() throws Exception
    {
        if(conn==null)
        {
            conn = DriverManager.getConnection(url, username, password);
            return conn;
        }
        return conn;
    }
}

DAO数据访问对象类

public class ItemsDAO {
    //获得所有的商品信息
    public ArrayList<Items> getAllItems() {
        Connection conn = null;
        PreparedStatement ptmt = null;
        ResultSet rs = null;
        ArrayList<Items> list = new ArrayList<Items>(); //商品集合
        try {
            conn = DBHelper.getConnection();
            String sql = "select * from items;"; // SQL语句
            ptmt = conn.prepareStatement(sql);
            rs = ptmt.executeQuery();
            while (rs.next()) {
                Items item = new Items();   
                item.setId(rs.getInt("id"));
                item.setName(rs.getString("name"));
                item.setCity(rs.getString("city"));
                item.setNumber(rs.getInt("number"));
                item.setPrice(rs.getInt("price"));
                item.setPicture(rs.getString("picture"));
                list.add(item);// 把一个商品加入集合
            }
            return list; //返回集合
        } catch (Exception ex) {
            ex.printStackTrace();
            return null;
        } finally {
            // 释放数据集对象
            if (rs != null) {
                try {
                    rs.close();
                    rs = null;
                } catch (Exception ex) {
                    ex.printStackTrace();
                }
            }
            // 释放语句对象
            if (ptmt != null) {
                try {
                    ptmt.close();
                    ptmt = null;
                } catch (Exception ex) {
                    ex.printStackTrace();
                }
            }
        }
    }
}

Post Directory