dljd_(004_005)_jdbc编程步骤
一、建库及表语句(简单测试用)
drop database db_test; create database db_test; use db_test; create table user( userId int(5) primary key comment '用户id', userName varchar(16) comment '用户姓名', userPw varchar(16) comment '用户密码' ); insert into user(userId,userName,userPw) values(10001,'user1','user1'); insert into user(userId,userName,userPw) values(10002,'user2','user2'); insert into user(userId,userName,userPw) values(10003,'user3','user3'); insert into user(userId,userName,userPw) values(10004,'user4','user4'); insert into user(userId,userName,userPw) values(10005,'user5','user5');
这里我将sql语句保存到了一个.sql的文件中、直接在命令行通过命令导入、命令如下:
source 盘符:\sql文件名.sql
二、jdbc连接mysql数据库示例代码
package edu.aeon.jdbc; import java.sql.Connection; import java.sql.Driver; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; /** * [说明]:使用jdbc连接mysql数据库 * @author aeon * 连接mysql数据库的步骤: * 一、准备工作 * 1.1新建一个java项目 * 1.2在该项目下新建一个lib(外部类库)文件夹(new->folder) * 1.3将我们的mysql驱动放到lib文件夹下 * 1.4将mysql驱动(即这个jar文件)添加(右键->build path->add to build path)到eclipse的构建路径里(作用同我们的环境变量) * 这样的话eclipse可以识别mysql驱动中的字节码文件。 * 1.5建包和类 * 二、正式步骤 * 2.1加载/注册驱动驱动(目的是让jvm可以使用驱动类) * 2.2获取和数据库服务器的连接(java程序是客户端 mysql是个服务器) * 2.2.1指定要连接到mysql服务器的相关信息(用户名&&密码&&url+端口+数据库名) * 2.3连接服务器 * 2.4通过连接对象获取执行sql语句的对象 * 2.5通过获取到的sql语句对象来执行sql * 2.6遍历输出结果 * 2.7关闭流 遵循原则后打开的先关闭 */ public class TestJdbc { public static void main(String[] args) { Connection connection=null; Statement statement=null; ResultSet resultSet=null; try { //2.1加载/注册驱动 //driver是jdbc声明的标准接口、com.mysql.jdbc.Driver是mysql数据库厂商根据这个标准做的实现、注意这两个Driver是有区别的。 Driver driver=new com.mysql.jdbc.Driver(); //接口声明引用指向实现类的对象 DriverManager.registerDriver(driver); //2.2获取和数据库服务器的连接(java程序是客户端 mysql是个服务器) String username="root"; //用户名 String password="root"; //密码 //url中的jdbc:mysql说明:jdbc是由sun公司制定的一套网络协议 jdbc:mysql是指jdbc协议下的mysql子协议。 String url="jdbc:mysql://localhost:3306/db_test"; //2.3连接服务器 Connection是jdbc规范中声明的接口 connection=DriverManager.getConnection(url, username, password); //2.4通过连接对象获取执行sql语句的对象 statement=connection.createStatement(); String sql="select * from user"; //2.5通过获取到的sql语句对象来执行sql resultSet=statement.executeQuery(sql);//executeQuery对应的去执行DQL语句 //2.6遍历输出结果 System.out.println("用户id\t用户名\t用户密码"); while(resultSet.next()){//初始时指向表前面、和游标相似 .next()方法表示移动到下一条记录并判断有没有数据。如果有则结果为true。否则false //resultSet.getString(1);//根据记录下标来获取该下标所对应的字段值、不推荐 int userId=resultSet.getInt("userId");//根据表字段名获取该行记录上的字段名所对应的字段值 String userName=resultSet.getString("userName"); String userPw=resultSet.getString("userpw");//数据库中的字段不区分大小写 System.out.println(userId+"\t"+userName+"\t"+userPw); } } catch (SQLException e) { e.printStackTrace(); }finally{ //关闭流 遵循原则后打开的先关闭 if(null!=resultSet){ try { resultSet.close(); } catch (SQLException e) { System.out.println("关闭流失败!--->resultSet"); e.printStackTrace(); } } if(null!=statement){ try { statement.close(); } catch (SQLException e) { System.out.println("关闭流失败!--->statement"); e.printStackTrace(); } } if(null!=connection){ try { connection.close(); } catch (SQLException e) { System.out.println("关闭流失败!--->connection"); e.printStackTrace(); } } } } }
执行结果截图: