【JavaWeb】知识点总结(三)—— JDBC

一、 JDBC

1.1 使用命令行直接建立数据库和表

1. 使用命令行

打开开始菜单找到mysql-点击打开命令行-输入使用的密码:123456(机房使用root)

2. 建立数据库

-使用命令create建立数据库:“create database shop(数据库名); ”注意每一句命令后面使用分号结束-使用“use shop”打开数据库(这一句比较特殊不用加分号,不输入这句没办法打开数据库使用来创建表)

3. 创建数据表

-创建表:“create table t_user(id int auto_increment primary key,username varchar(20) not null,password varchar(20) not null,age int(3) default 0,description text);”

使用id自动增长来标识id(如果字段太长可以使用分号换行输入,只要不使用分号就会继续输入) ;char和varchar的区别在于char是定长的,varchar是变长的,char如果只有6个字节,则其余的会用空格补齐,而varchar是设置最长的字节,有多少字节就是多少字节,不会加空格补齐;auto_increment 是设置自动增长;not null不空属性,必须要有,这个属性一般是在程序实现验证不使用数据库验证,避免插入为空时不能往数据库插入导致出错没办法控制;int的默认长度是11;default 0是设置缺省值为0,没有输入时默认为0。

Ok就是提示成功了,error就要重新查看代码问题(这里直接使用键盘的上下箭头,可以直接重新调出代码,直接修改有问题的语句就可以了)

4. 查看

-剩下数据的操作就在程序里面去操作了-使用“show tables;”查看表建好没有-使用“desc t_user;”查看表的结构属性(字段,长度等); “select * from t_user; ”查看表的具体数据

5. 完整代码

  1. 打开mysql5.7,输入密码:“123456”
  2. “create database shop(数据库名);  ”  //建立数据库
  3. “use shop ”//打开使用数据库
  4. “create table t_user(id int auto_increment primary key,username varchar(20) not null,password varchar(20) not null,age int(3) default 0,description text);” //建表
  5. show tables;//查看表有哪些
  6. desc t_user;//查看表的结构
  7. select * from t_user; //查看表的数据

2.2 JDBC项目

新建项目jdbc-直接点击完成-配置服务器-调试,访问http://localhost:8080/jdbc检查项目启动-打开index.jsp,修改pageEncoding为UTF-8-编写项目:

2.1. 数据库访问的步骤

2.1.1 导入数据库驱动jar包(将jar包复制到WEB-INF/lib文件夹)

导入jar有很多种方式可以创建自己的userlib,我们这里使用的jar包只适用于5.几的数据库,不适合其他8.几的数据库,我们将文件ctrl+c ctrl+v到lib下面,这里成功后会产生一个Web App Libraries,下面的jar包是无法展开的,但我们可以通过这个文件查看jar包的结构;如果没有出现上面的文件,可以右键jar包,点击Build Path,Add to Build Path来添加

2.1.2 加载驱动

使用Class.forName(className)把驱动器类加载到内存中去,就可以使用它了,className是驱动器名称,不同的数据库包括mysql不同版本的名称都比一样,“域名的倒序.产品名.类名”:

Class.forName("com.mysql.jdbc.Driver");

2.1.3 获得连接

因为我们要使用驱动,所以需要导入mysql包,所有mysql的包都是在java.sql.*下面,所以我们在import中导入或者在写一条page指令,所有数据库访问的包都在这下面(在servlet中导包方式就不一样,因为有实现类和实现接口,导的时候就要导导接口,而不是实现类,因为要注意面向接口编程)

<%@ page language="java" import="java.util.*,java.sql.*" page

Encoding="UTF-8"%>

获得数据库的连接Connection:

   String url = "jdbc:mysql://localhost:3306/shop";

   String user = "root";

   String password = "123456";

Connection connection = DriverManager.getConnection(url, user, password);

使用的是访问数据库唯一的类,选择有三个参数的get方法,并在上面定义这三个属性:

连接的url:http协议+域名/IP地址(端口号)+数据库名称;不同的数据库有不同的url,修改这三个属性可以使用不同的数据库“jdbc:mysql://”就是jdbc的协议,所有的数据库访问都是这个,只是mysql有变化;mysql默认端口是3306;http协议+域名(IP地址+端口号)访问到机器,然后再加上数据库的名称:“String url = "jdbc:mysql://localhost:3306/shop";”;局域网里面直接IP地址就可以了,互联网要访问数据库需要域名,本地就使用localhost;连接的用户user,连接的密码password

2.1.4 获得句子对象(Statement)

Statement st = connection.createStatement();

2.1.5 通过句子对象执行SQL语句

          三个方法: execute(sql) 几乎不用;executeQuery(sql) 用来执行select语句,只要是select就使用这个,其它全部是executeUpdate,executeQuery(sql)返回一个ResultSet对象(结果集),查询的结果数据都存放在它里面;executeUpdate(sql) 用来执行除select语句之外的SQL语句,增加、删除、修改,返回值与前面不同,返回的是一个整数,表示SQL语句影响的记录条数。

String sql = "insert into t_user(username,password,age,description) value('user1','123456',20,'test')";

int count = st.executeUpdate(sql);

if(count==1){

     out.print("数据插入成功");

}else{

     out.print("数据插入失败");

}

2.1.6 完整代码及效果

  <body>

    <%

        /**

           1.导入数据库驱动jar包(将jar包复制到WEB-INF/lib文件夹)

        */

        //2.加载驱动  

        Class.forName("com.mysql.jdbc.Driver");

       //3.获得连接Connection

       String url = "jdbc:mysql://localhost:3306/shop";

       String user = "root";

       String password = "123456";

       Connection connection = DriverManager.getConnection(url, user, password);

       //4.获得句子对象(Statement)

       Statement st = connection.createStatement();

       //5.通过句子对象执行SQL语句

       //三个方法 execute(sql) 几乎不用

       //executeQuery(sql) 用来执行select语句

       //executeUpdate(sql) 用来执行除select语句之外的SQL语句,返回一个整数,表示SQL语句影响的记录条数

       String sql = "insert into t_user(username,password,age,descript

ion)value('user1','123456',20,'test')";

        int count = st.executeUpdate(sql);

        if(count==1){

           out.print("数据插入成功");

        }else{

           out.print("数据插入失败");

        }

     %>

  </body>

导完了包之后一定要重启服务器,再访问http://localhost:8080/jdbc,显示“数据插入成功”,完成后还要在命令行输入“select * from t_user;”查看表格是否增加了新的数据

2.2 编写项目

复制index.jsp页面命名为list.jsp࿰

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值