超通俗易懂的JDBC之入门使用步骤+解析

JDBC之入门使用步骤 解析

第一步:导入jar包(没有jdbc的jar是无法使用jdbc的)
第二步:注册驱动(可省略)

Class.forName("com.mysql.jdbc.Drive")

第三步:使用DriverManager 类的getConnection() 方法获取Connection 数据库连接对象

COnnection conn = DriverManager.getConnection(“jdbc:数据库名(mysql):\\ip地址:端口号,”“数据库的账户”,“数据库的密码”);
// Driver是驱动的意思。Manager是管理的意思。一起就是驱动管理的意思。所以DriverManager就是驱动管理类

第四步:写sql语句

//1.写DML/DDL语言
String str=“updata 表名 set 列名 = “。。。” where = 筛选条件”;

//2.写DQL语言
String str="select 查询列表 from 表名 where = 筛选条件 "

第五步:使用Connection类的createStatement()方法获取执行sql语句的Statement 对象

Statement state = conn.createStatement();

第六步:使用 Statement 或 PrepareStatement类 的 executeUpdate() 或 executeQuery() 方法执行sql语句execute是执行的意思。Update是修改的意思。Query是查询的意思

  1. 当sql是DML或DDL语言时:使用Statement类的executeUpdate()方法
int count = state.executeUpdate(sql);//传入sql语句。
【注意:如果是PreparedStatement对象是创建时传入sql】

 - 这里的返回值是int类型。表示的是:修改表所影响的行数 

  1. 当sql是DQL语言时:我就要使用Statement类executeQuery()方法
ResultSet res = state.executeQuery();

 - 这里的返回值时一个结果集对象。
 - 结果集对象有两成员方法:
 - 1. public boolean next() 是个游标,用来判断该行是不是最后一行末尾,并向下移动一行。
 - 2.public Xxx getXxx(“可写int类型第几列 或 直接写列名”):用来获取当前行某列的数据。

**第七步:**释放资源
调用close方法

下边演示一波完整的代码并加以分析

		//提高作用域。
		Connection conn = null;
        Statement stmt = null;
        ResultSet res = null;
        
        try {
            //1.注册驱动
            Class.forName("com.mysql.jdbc.Driver");
            
            //2.使用DriverManager 驱动管理类,获取Connection 数据库连接对象
            conn = DriverManager.getConnection();

            //3.获取SQL语句执行对象
            stmt = conn.createStatement();

 
         	 //4.写sql语句
            String sql = "select * from user";

            //5,执行sql语句,返回结果集对象
            res = stmt.executeQuery(sql);
			
			//6.获取结果集里边的数据
			while(res.next()){//判断当前行是不是最后一行末尾
				int id = res.getSring("id");//获取列名是 id 的数据
			}
			System.out.println(id);//打印id
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
	            if (res != null) {//先把小的关了
	            try {
	                res.close();
	            } catch (SQLException e) {
	                e.printStackTrace();
	            }
	        }
	        if (stmt != null) {
	            try {
	                stmt.close();
	            } catch (SQLException e) {
	                e.printStackTrace();
	            }
	        }
	        if (conn != null) {
	            try {
	                conn.close();
	            } catch (SQLException e) {
	                e.printStackTrace();
	            }
	        }
        }

然后就可以获取数据库那边的数据啦~

为了防止sql的注入问题(这里就不说sql的注入是啥了,请百度一下啦~),以后是用不到Statement对象的。相对只会使用PreparedStatement对象
PreparedStatement对象与Statement对象的【不同点】

  • 1.创建时传入sql语句而不是执行时传入。
  • 2.参数用 ? 代替
  • 比如:下边的sql语句
 - String sql="update 表名 set name = "张三" "
  • 如果用的是PreparedStatement对象,就要这样写:
String sql="update 表名 set name =? "//然后调用PreparedStatement对象里边的成员方法
	setXxx(int类型的参数:代表的是第几个问号,Xxx类型的参数”)
		Xxx指的是 ?问号的类型的参数。

JDBC还有数据库连接池的内容,下篇文章会写到。

最后能祝您能快乐的学好JDBC相关知识哦~

发布了4 篇原创文章 · 获赞 4 · 访问量 378

猜你喜欢

转载自blog.csdn.net/javaKingofFuture/article/details/105562219