Java程序连接到MySQL数据库
假设在MySQL中有book表,其属性有两个,分别为bookid和 name,类型都为String
连接数据库的一般步骤:
1.调用Class.forName()方法加载相应的数据库驱动程序
Class.forName(“com.mysql.jdbc.Driver”);
2.定义要连接数据库的地址URL,要注意不同数据库的连接地址不同,地址URL的格式为:jdbc:<子协议>:<子名称>
String mysqlURL = “jdbc:mysql://localhost:port/dbName”; //dbname是数据库名
3.使用适当的驱动程序类建立与数据库的连接,调用DriverManager对象的getConnection方法,获得一个Connection对象,它表示一个打开的连接
Connection conn = DriverManager.getConnection(URL,”数据库用户名”,”密码”);
4.创建语句对象
使用Connection接口的createStatement方法创建一个statement语句对象,该对象用于传递简单的不带参数的sql语句给数据库管理系统来执行
Statement stmt = conn.createStatement();
使用Connection 接口prepareStatement方法创建一个PreparedStatement语句对象,该对象用于传递带有一个或多个输入参数的sql语句
PreparedStatement psm = conn.prepareStatement(“INSERT INTO book(bookid,name) VALUES(?,?)”);
使用Connection接口的prepareCall方法创建一个CallableStatement语句对象,该对象用于调用存储过程
CallableStatement csm = conn.prepareCall(“{call validate(?,?)}”); //validate是存储过程名
5.执行语句
Statement接口提供了3个方法执行sql语句,分别是executeQuery、executeUpdate和execute
executeQuery方法用于执行SELECT查询语句,并返回单个结果集,保存在ResultSet对象中
String sql = “SELECT * FROM book”;
ResultSet rs = stmt.executeQuery(sql);
executeUpdate方法用于执行SQL DML语句,即INSERT,UPDATE和DELETE语句,此时返回sql语句执行时操作的数据表中受到影响的行数,返回值是一个整数。executeUpdate方法还可用于执行sql DDL语句,如CREATE TABLE, DROP TABLE等。此时返回值为0.
String sql = “DELETE FROM book WHERE bookid=“+” ’12’ ”;
Int n = stmt.executeUpdate(sql);
Execute方法既可以执行查询语句,也可以执行更新语句,常用于动态处理类型未知的SQL语句
6.对返回的结果集ResultSet对象进行处理
resultSet对象包含了sql语句的执行结果,它使用一组get方法实现对结果行中每列数据的访问,使用new访问用于移动到ResultSet下一行,使其成为当前行。
String sql = “SELECT * FROM book”;
ResultSet rs = stmt.executeQuery(sql);
//对结果集进行迭代
While(rs.next()) {
bookid = rs.getString(1);
name = rs.getString(2);
System.out.println(bookid+”,”+name);
}
7.关闭连接。
关闭所有的jdbc对象,释放资源,关闭结果集,关闭语句对象和连接对象