JDBC访问数据库步骤

  最近开始复习JAVASE,下面就看看一些之前忘记的点。

  JDBC访问数据库是之前自己比较迷糊的,现在正好来复习一下。数据库连接首先要有一个JDBC驱动程序,还要有一个数据库,这里两者不属于JAVA的知识,不再介绍。就只是介绍JDBC编程。

  JDBC编程有6步,分别是1.加载sql驱动,2.使用DriverManager获取数据库连接,3.使用Connecttion来创建一个Statement对象 Statement对象用来执行SQL语句,4.执行SQL语句,5.操作结果集,6.回收数据库资源。以上就是大部分JDBC编程的步骤,也可以看自己的情况减少自己的步骤。因为是复习,所以代码中的注释还是比较多的。这里就不再累述了。代码如下:

package JDBCtrain;

import java.sql.*;

public class demo1 {
	public static void main(String[] args) throws Exception {
		// 1.加载sql驱动
		// 加载驱动,利用反射知识
		Class.forName("com.mysql.jdbc.Driver");
		try (
		/*
		 * 2.使用DriverManager获取数据库连接 返回的conn代表着java程序和数据库的连接 这里要注意导入的包,
		 * 这里还是要注意root@localhost和root@'127.0.0.1'是两个不同用户。还有就是账户和密码的问题
		 * Access denied for user '123'@'localhost' (using password: YES)   就是密码出错
		 */
		Connection conn = DriverManager.getConnection(
				"jdbc:mysql://127.0.0.1:3306/javatrain", "123", "123456");
		/*
		 * 3.使用Connecttion来创建一个Statement对象 Statement对象用来执行SQL语句
		 */
		Statement stmt = conn.createStatement();
		/*
		 * 4.执行SQL语句
		 * Statement有三种执行SQL语句的方式
		 * (1)executeQuery(sql) 执行select语句,返回查询到的结果集
		 * (2)execute(sql) 可执行任何的SQL语句,返回一个boolean值
		 * 如果执行第一个结果是ResultSet,返回true,否则返回false
		 * (3)executeUpdate(sql)执行DML语句,返回一个整数(代表SQL语句影响的行数)
		 */
		ResultSet rs=stmt.executeQuery("select * from demo1");
		)
		/*
		 * java7的特性,可以使用try语句来自动关闭数据库的各种资源
		 */
		{
			//5.操作结果集
			/*
			 * ResultSet就是返回的结果集,get()是获得特定列的值 next是下一行
			 */
			while (rs.next()) 
			{
				System.out.println("姓名为:"+rs.getInt(1)+",密码为:"+rs.getInt(2)+"。");
			}
		}
	}

}

  下面就说一下代码中要注意的,因为数据库的不同,获取数据库连接时的代码不一定一样,这里我因为数据库密码的原因卡了好久(一定要记得自己数据库的密码),还有就是第六步,代码中没有写出来,其实是JAVA7的特性,允许try块中放置数据库资源,在结束时系统会自动回收数据库资源。这个也是企业中比较推荐的写法。还有就是第三步,一定要注意Statement没法防止SQL注入(常见的Cracker入侵方式,利用SQL语句的漏洞来入侵),登录中可以使用PreparedStatement。以上就是一个简单的例子。结束。

猜你喜欢

转载自www.cnblogs.com/yanyu01/p/8998579.html