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\PreparedStatement对象(预编译)
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 | 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类(Data Access Object,数据访问接口)
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();
}
}
}
}
}