zoukankan      html  css  js  c++  java
  • 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。以上就是一个简单的例子。结束。

  • 相关阅读:
    [转]Maven类包冲突终极三大解决技巧
    python chardet 模块
    python pretty-errors模块
    认识执行时机
    python对象销毁顺序
    python字符串驻留
    python绘图练习
    小练习2
    小练习
    4G 内存处理 10G 大小的文件
  • 原文地址:https://www.cnblogs.com/yanyu01/p/8998579.html
Copyright © 2011-2022 走看看