在java项目的开发过程中,数据库的支持是必不可少的,因此如何与数据库建立安全有效的连接就变的非常重要。JDBC是数据库连接技术的简称,通过JDBC,用户便可以访问各式各样的数据库了。下面就来说说JDBC连接数据库,也当时自己的一个复习吧: 首先我们下载数据库连接驱动,名称类似于mysql-connector-java-X.X.X.zip,通过解压我们可以的到jar包,这个jar包非常重要,JDBC通过这个jar包才能正确的连接到Mysql数据库。jar包得到了,我们把他放入项目中,然后开始编写代码。一、调用Class.forName()方法加载驱动程序: Class.forName("com.mysql.jdbc.Driver");二、定义数据库连接的地址,不同数据库连接地址不一样(我们这里演示的是mysql数据库): String mysqlURL="jdbc:mysql://localhost:port/dbname";
在这里解释下localhost是指你数据库的IP,如果你是本地数据库那么就写localhost或者127.0.0.1,port代表端口,一般为3306,具体看情况;dbname是指你数据库的名字。三、调用getConnection()方法建立连接:
Connection conn=DriverMannager.getConnection(URL,"数据库用户名","数据库密码");
四、使用createStatement方法创建Statement语句对象:
Statement stmt=conn.createStatement();
使用Connection接口的prepareStatement()方法创建PrepareStatement语句对象,该对象用来传送SQL语句:
PreparedStatement psm=conn.prepareStatement("数据库语句");
使用Connection接口的prepareCall方法创建一个CallableStatement语句对象,该对象用于调用储存过程:
CallableStatement csm=conn.prepareCall("{call validate(?,?)}");
其中,validate是储存过程名。五、执行数据库语句:Statement提供了executeQuery、executeUpdate和execute三个方法,分别用于查询语句、插入删除修改语句和通用语句(既可查询又可增删改),这里我们只说第一个方法:
String sql="select * from dbname"; ResultSet rs=stmt.executeQuery(sql);
其中dbname是你的数据库名称。六、对数据库返回的结果集ResultSet进行处理:
String sql="select * from dbname"; ResultSet rs=stmt.executeQuery(sql); //对结果进行迭代 while(rs.next()){ a=rs.String(1); b=rs.String(2); System.out.println(a+","+b) }
七、关闭连接,这样可以释放资源:
rs.close(); stmt.close(); conn.close();
这样,我们使用JDBC的过程就是这个样子了,我们归纳下,下面是连续的代码(示例):
public class JDBCTest { public static void main(String[] args) {
String driver = "com.mysql.jdbc.Driver";
String dbName = "spring";
String passwrod = "root";
String userName = "root";
String url = "jdbc:mysql://localhost:3306/" + dbName;
String sql = "select * from users";
try { Class.forName(driver);
Connection conn = DriverManager.getConnection(url, userName, passwrod);
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
System.out.println("id : " + rs.getInt(1) + " name : " + rs.getString(2) + " password : " +
rs.getString(3)); }
// 关闭记录集 if (rs != null) { try { rs.close(); }
catch (SQLException e) { e.printStackTrace(); } }
// 关闭声明 if (ps != null) { try { ps.close(); }
catch (SQLException e) { e.printStackTrace(); } }
// 关闭链接对象 if (conn != null) { try { conn.close(); }
catch (SQLException e) { e.printStackTrace(); } } }
catch (Exception e) { e.printStackTrace(); } } }