java JDBC连接过程与简单数据库操作
来源:互联网 发布:ubuntu拷贝文件 改名 编辑:程序博客网 时间:2024/06/16 07:26
1.JDBC
1)JDBC简介
- JDBC就是Java中连接数据库方式
- 我们可以通过JDBC来执行SQL语句。
2)获取数据库连接 - java.sql.Connection 数据库连接 - 我们队数据库的一切操作都是从获取Connection开始 - 获取数据库连接的四个参数: 1.数据库的地址 url 语法:jdbc:子协议:厂商内容 MySQl的格式:jdbc:mysql://主机名:端口号/数据库名字 例子:jdbc:mysql://localhost:3306/test 2.用户名 user 连接数据库使用的用户名 3.密码 password 数据库的密码 4.数据库驱动全类名 driverClass - 基本步骤: 1.导入数据库驱动的jar包 mysql-connector-java-5.1.37-bin.jar 2.准备四个参数 - url - user - password - driverClass 3.加载数据库驱动 Class.forName(driverClass) 4.通过DriverManager来获取数据库连接 static Connection getConnection(String url, String user, String password) - 核心类: - java.sql.DriverManager - 数据库驱动的管理器,负责加载数据库的驱动获取数据库连接 - static Connection getConnection(String url, String user, String password) - getConnection方法用来通过url地址,用户名,密码等参数来获取数据库连接的 - java.sql.Connection - 数据库连接 - Statement createStatement() - 创建一个Statement对象,通过Statement对象来执行SQL语句 - java.sql.Statement - SQL语句的执行器 - boolean execute(String sql) - 执行一条SQL语句,并返回一个布尔值,执行成功返回true,执行失败返回false。用的不多 - ResultSet executeQuery(String sql) - 执行查询的SQL语句,并返回一个结果集 - int executeUpdate(String sql) - 执行修改数据的SQL语句(增删改),并返回受影响的行数 - java.sql.ResultSet - 查询到的数据的结果集,我们通过JDBC查询数据库获得的数据,都封装在ResultSet中 - boolean next() - 控制光标向下移动一行,如果光标当前位置是afterLast则返回false,告诉你没数据了,就别读了。 如果光标移动以后,没有在afterLast则返回true,可以读取数据。 - 在ResultSet有很多getXxx(int),比如getString(),getInt(),getByte()。 通过这些方法可以读取当前行的数据,它们需要一个int值作为参数, int指的是读取数据的列数。 列数是从1开始的。 - 在ResultSet中还有很多getXxx(String),它和上边的方法的作用一致, 只不过它们需要的都是String类型的参数,参数代表的是当前的列名, 比如:我们要获取id的值 getInt("id") 要获取name的值 getString("name") 注意:如果查询的SQL使用了别名,则列名以别名为准。3)数据的增删改 //创建一个SQL执行器 Statement stat = conn.createStatement(); //创建一个SQL语句 String sql = "INSERT INTO t_stu(`name` , age) VALUES('沙僧',28)"; //执行SQL语句 //executeUpdate用来执行一条修改SQL的语句 //它需要一个String类型sql作为参数,并会返回一个int型的值,该值表示SQL语句执行以后影响到的行数 int count = stat.executeUpdate(sql);4)数据的查询 //创建Statement对象 Statement stmt = conn.createStatement(); //创建一个SQL语句 String sql = "SELECT id, name sname, age FROM t_stu WHERE id=2"; //执行查询 ResultSet rs = stmt.executeQuery(sql); //控制光标下移一行 //如果当前行有数据,则读取 if(rs.next()){ //获取id,name,age int id = rs.getInt("id"); String name = rs.getString("sname"); int age = rs.getInt("age"); System.out.println(id+"--"+name+"--"+age); } > 查询操作和修改的主要不同的是,查询使用executeQuery(), 它会返回ResultSet结果集,我们需要对结果集进行读取。 > 当我们只需要读取一个数据时,用if。 当需要读取全部数据时,用while > 代码的规范: - Connection、Statement、ResultSet,这些资源都是需要和数据建立连接的 这些资源我们并不是总需要使用,当我们不适用这些资源,需要将这些资源关闭。 - 关闭资源顺序: 从后往前关: 先关 ResultSet 在关 Statement 最后关 Connection - 示例代码: //定义三个变量 Connection conn = null; Statement stmt = null; ResultSet rs = null; try{ }catch(Exception e){ e.printStackTrace(); }finally{ if(rs!=null){ //关闭ResulSet try { rs.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if(stmt != null){ try { stmt.close(); } catch (SQLException e) { e.printStackTrace(); } } if(conn != null){ try { conn.close(); } catch (SQLException e) { e.printStackTrace(); } } }
DAO(Data Access Object) 数据访问对象:
在Java中使用DAO类,来去和数据库交互,而其他类不再需要编写JDBC相关的代码,
而是直接调用DAO。
在实际上开发中,我们所有的JDBC相关的代码都应该写在DAO中,
java.sql这个包下的内容不应该出现在DAO以外的地方
t_user CREATE TABLE t_user( id INT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(100), `password` VARCHAR(100), email VARCHAR(100), nickname VARCHAR(50) )创建UserDao(负责User对象和数据库相关的操作) User getUserByUsername(String username) --> 根据用户查找用户 int saveUser(User user); --> 将用户对象插入进数据库 User getUserByUsernameAndPassword(String username , String password) --> 根据用户名和密码查找用户登录: 登录实际上就是这么一条SQL语句: SELECT * FROM t_user WHERE username='' AND password=''
阅读全文
0 0
- java JDBC连接过程与简单数据库操作
- java jdbc 连接操作数据库
- java 数据库Mysql 简单连接与操作。
- java之 jdbc连接数据库与操作excel文件代码
- JDBC-数据库的连接和简单操作
- JDBC连接数据库过程
- JDBC连接数据库过程
- JDBC连接数据库过程
- JDBC连接数据库过程
- JDBC连接数据库过程
- JDBC连接数据库过程
- java采用jdbc连接操作数据库
- JAVA采用JDBC连接操作数据库详解
- JDBC连接数据库操作步骤(JAVA)
- Java操作Sqlite数据库-jdbc连接
- java 中 JDBC 连接数据库操作
- java中jdbc连接数据库操作
- java 连接数据库简单操作
- 函数一
- 【T-SQL基础】01.单表查询-几道sql查询题
- 加static的区别
- 关于jar包的一切——java笔记
- Spark中加载本地(或者hdfs)文件以及SparkContext实例的textFile使用
- java JDBC连接过程与简单数据库操作
- MySQL索引介绍
- 第十一章 会打电话 天涯变咫尺 不会打电话 咫尺变天涯
- SMOJ 2202 怪物 (整体二分+BIT)
- 剑指Offer 二叉树的镜像
- 【Computer】学生信息管理系统——数据库配置
- 一致性hash算法的Java实现
- connect获取
- jsp入门