dljd_004_jdbc编程步骤(1)

一、建库及表语句(简单测试用)

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();
                }
            }
        }
    }
}

执行结果截图:

  

  

猜你喜欢

转载自www.cnblogs.com/aeon/p/10066686.html