MySql与JDBC

1.MySql

连接数据库

mysql -uroot -p123456 --连接数据库

update mysql.user set authentication_string=password('123456') where user='root' and Host = 'kocalhost'; --修改用户密码
flush privileges;  --刷新限权

---------------------------------------------------
-- 所有的语句都使用;结尾
show databases; --看所有的数据库

mysql> use school -- 切换数据库use数据库名
Database changed

show tables; -- 查看数据库中所有表
describe student; --  显示数据库中所有表的信息

creat database westos; -- 创建一个数据库

exit; -- 退出连接

-- 单行注释(SQL的本来的注释;)
/*    (sql的多行注释
helloi
asdas
*/

操作数据库

1、创建数据库

CREATE DATEBASE [IF NOT EXISTS] westos;

2、删除数据库

DROP DATABASE [IF EXISTS] westos;

3、使用数据库

-- 如果表名或者字段是一个特殊字符,需要带上 ` 
USE `school`;

4、查看数据库

SHOW DATABASE; -- 查看所有的数据库

数据库的列类型

数值

tinyint 十分小的数据 1

smallint 较小的数据 2

mediumint 中等大小的数据 3

int 标准的整数 4 常用的

bigint 较大的整数 8

float 浮点数 4

double 浮点数 8

decimal 字符串形式的浮点数 金融计算时,一般用decimal

字符串

char 字符串固定大小的 0~255

**varchar 可变字符串 0~65535 ** 常用的变量 String

tinytest 微型文本 2^8-1

**text 文本串 2^16-1 ** 保存大文本

时间日期

java.util.Date

date 日期格式 YYYY-MM-DD

time 时间格式 HH: mm: ss

datetime 最常用的时间格式 YYYY-MM-DD HH : mm : ss

**timestamp 时间戳 1970.1.1到现在的毫秒数! **

year 年份表示

null

没有值,未知

注意: 不要使用NULL进行运算结果为NUILL

数据库的字段属性

Unsigned:

无符号的整数

声明了该列不能声明为负数

zerofill:

0填充的

不足的位数,使用0来填充,int(3) , 5—005

自增:

自动在上一条记录的基础上 + 1(默认)

通常用来设计唯一的主键~ index,必须是整数类型

可以自定义设计主键自增的起始值和步长

非空: NULL not null

假设设置为 not null ,如果不给他赋值,就会报错

NUILL , 如果不填写值,默认就是null

默认:

设置默认的值

sex, 默认值为男,如果不指定该列的值,则会有默认的值

SQL

常用的SQL命令

  1. CREAT – 定义基本表

CREAT TABLE <表名>(<列名><数据类型>,……)

实例: 建立一个”学生表”,它由学号Sno、姓名Sname、性别Ssex、年龄Sage、所在系Sdept 5个属性组成

CREAT TABLE Student (Sno CHAR(5) NOT NULL UNIQUE,Sname CHAR(20),Ssex CHAR(1),Sage INT,Sage INT,Sdept CHAR(15));
  1. SELECT – 查询,取出特定记录

SELECT[DISTINCT|ALL]<目标列表达式>,<目标列表达式>……FROM <表名>[,<表明>]……

[WHERE<条件表达式>]

[GROUP BY<列名1>[HAVING<条件表达式>]]

[ORDER BY <列名2>[ASC|DESC]]

选取所有的列使用符号 * :SELECT * FROM <表名>

  1. WHERE 子句

SELECT 列名称 FROM 表名称 WHERE 列 运算符 值

SELECT * FROM Persons WHERE City='’'Beijing'
-- 在Persons表的所有列中查找Being
SELECT * FROM Persons WHERE FirstName = 'Thomas' AND LastName = 'Carter'
-- 使用AND来显示所有姓为“Carters” 并且名为“Thomas”的人
SELECT * FROM Persons WHERE FirstName = 'Thomas' OR LastName = 'Carter'
-- 使用OR来显示所有姓为“Carters” 或者名为“Thomas”的人
  1. INSERT语句

INSERT – 添加一条新记录

格式:

INSERT INTO 表名称 VALUES(值1,值2,……)

INSERT INTO table_name (列1,列2,……) VALUES(值1,值2,……)

例如:将一个新学生记录(学号:95020;姓名:陈轩仔;性别:男;所在系:计算机;年龄:19),插入Student中

INSERT INTO Student VALUES('95020','陈轩仔','男','计算机','19')
  1. UPDATE语句

UPDATE – 数据更新,改变特定记录的值

格式: UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值

例如: 将学生85001的年龄增加1

UPDATE Student SET Sage = Sage + 1 WHERE Sno = 95001
  1. DELETE语句

DELETE – 删除特定的记录

格式: DELETE FROM <表名> WHERE <条件>

例如: 删除计算机系所有学生的选课记录

DELETE FROM SC WHERE 'CS' = (SELECT Sdep FROM Student WHERE Student.Sno = SC.Sno);

2.JDBC连接数据库

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-A5lkV4g8-1602066940201)(C:\Users\13088\AppData\Roaming\Typora\typora-user-images\image-20201001180408463.png)]


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4QhF8sjJ-1602066940205)(C:\Users\13088\AppData\Roaming\Typora\typora-user-images\image-20201001180426929.png)]

3.DML语言

1.INSERT

--插入语句
--insert into 表名([字段名1,字段2,字段3,……])values('值1'),('值2'),……
INSERT INTO `grade`(`gradename`) VALUES('大四')

-- 数据和字段要一一对应

-- 插入多个字段
INSERT INTO `grade` VALUES (`gradename`)
VALUES('大一'),('大二')


2.UPDATE

update 修改谁 (条件) set 原来的值 = 新值

-- 修改学员名字
UPDATE `student` SET `name` = 'qwer' where id = 1;

-- 如果不指定条件,会改动所有的表
UPDATE `student` SET `name` = 'dddddd'

-- 语法:
-- UPDATE 表名 set colnum_name = value,[colnum_name = value,……] where [条件]

where 子句 运算符 id = 某个值 ,大于某个值,在某个区间内修改……

操作符会返回布尔值

colum_name 是数据库的列,尽量带上 ``

value, 是一个具体的值,也可以是一个变量

条件,筛选的条件,如果么没有指定,则会修改所有的列

多个设置的属性之间,使用英文逗号隔开

3.DELETE 与 TRUNCATE

DELETE FROM `student`

-- 删除指定数据
DELETE FROM `student` WHERE id = 1;
-- TRUNCATE 完全清空一个数据库,表的结果和索引约束不会变

-- 清空 student 表
TRUNCATE `student`

4. DQL查询数据

1. 指定查询字段

-- 查询全部的学生   SELECT  字段  FROM  表
SELECT * FROM student

-- 查询指定字段
SELECT `name`,`age` FROM student

-- 别名,给结果起一个名字  AS  可以给字段起别名,也可以给表起别名
SELECT `name` AS 姓名,`age` AS 年龄 FROM student AS s

-- SELECT 字段 ,…… FROM 表

5.PrepaerdStatement对象

PreparedStatement可以防止SQL注入,效率更高!

1、新增


public class TestInsert{
    public static void main(String[] args){
	Connection con = null;
	PreparedStatement st = null;
    ResultSet rs = null;
        
        //使用 ? 占位符代替参数
    String sql = "insert users (id,`name`,`age`) values (?,?,?)";
    st = con.prepareStatement(sql);//预编译SQL,先写sql,然后不执行
        
        //手动给参数赋值
        st.setInt(1,4);//id
        st.setString(2,"陈宇轩");
        st.setString(3,"33");
        
        //注意点:sql.Date  数据库  java.sql.Date();
        //       util.Date  Java  new Date().getTime() 获得时间戳
        st.setDate(5,new java.sql.Date(new Date().getTime()));
        
        //执行
        int i = st.executeUpdate();
        if(i>0){
            System.out.println("插入成功!")}              
    }
}

2、删除


public class TestInsert{
    public static void main(String[] args){
	Connection con = null;
	PreparedStatement st = null;
        ResultSet rs = null;
        
        //使用 ? 占位符代替参数
    String sql = "delete from users where id=?";
    st = con.prepareStatement(sql);//预编译SQL,先写sql,然后不执行
        
        //手动给参数赋值
        st.setInt(1,4);//id
        
        
        //注意点:sql.Date  数据库  java.sql.Date();
        //       util.Date  Java  new Date().getTime() 获得时间戳
        st.setDate(5,new java.sql.Date(new Date().getTime()));
        
        //执行
        int i = st.executeUpdate();
        if(i>0){
            System.out.println("删除成功!")
        }              
    }
}

3、更新


public class TestInsert{
    public static void main(String[] args){
	Connection con = null;
	PreparedStatement st = null;
        ResultSet rs = null;
        
        //使用 ? 占位符代替参数
    String sql = "update users set `name` = ? where id = ?";
    st = con.prepareStatement(sql);//预编译SQL,先写sql,然后不执行
        
        //手动给参数赋值
        st.setInt(1,4);//id
        st.setString(2,"陈宇轩");
        st.setString(3,"33");
        
        //注意点:sql.Date  数据库  java.sql.Date();
        //       util.Date  Java  new Date().getTime() 获得时间戳
        st.setDate(5,new java.sql.Date(new Date().getTime()));
        
        //执行
        int i = st.executeUpdate();
        if(i>0){
            System.out.println("更新成功!")
        }              
    }
}

4、查询


public class TestInsert{
    public static void main(String[] args){
	Connection con = null;
	PreparedStatement st = null;
        ResultSet rs = null;
        
        //使用 ? 占位符代替参数
    String sql = "select * form users where id = ?";
    st = con.prepareStatement(sql);//预编译SQL,先写sql,然后不执行
        st.setInt(1,2);
        
        //注意点:sql.Date  数据库  java.sql.Date();
        //       util.Date  Java  new Date().getTime() 获得时间戳
        st.setDate(5,new java.sql.Date(new Date().getTime()));
        
        //执行
        rs = st.executeQuery();
        if(rs.next()){
            System.out.println(rs.getString(`name`));
        }              
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: MySQL是一种关系型数据库管理系统,JDBC是Java语言访问数据库的标准接口,Eclipse是一种集成开发环境。要在Eclipse中连接MySQL数据库,需要使用JDBC驱动程序。可以通过在Eclipse中添加JDBC驱动程序来实现连接。首先需要下载并安装MySQL JDBC驱动程序,然后在Eclipse中创建一个新的Java项目,并将JDBC驱动程序添加到项目的类路径中。接下来,可以使用Java代码来连接MySQL数据库并执行SQL查询。 ### 回答2: MySQL是一个流行的开源关系型数据库,而JDBC是Java DataBase Connectivity的简称,是Java连接数据库的标准。Eclipse是一款著名的Java集成开发环境(IDE),支持多种插件和扩展,可以方便地连接到数据库进行开发。 连接MySQL使用JDBC是非常常见的,因为它是Java连接数据库的标准。要连接MySQL数据库,需要使用MySQL Connector/J驱动程序。可以通过在Java程序中使用Class.forName()方法来加载驱动程序。加载MySQL JDBC驱动程序后,可以使用JDBC API连接MySQL数据库进行操作。 在Eclipse中连接MySQL数据库需要执行以下步骤: 1. 打开Eclipse并创建一个新的Java项目。 2. 在项目中创建一个新的类。 3. 在类中添加JDBC连接MySQL数据库所需的代码。 4. 把MySQL Connector/J驱动程序添加到项目的classpath中。 5. 运行程序并测试数据库连接。 要连接MySQL数据库,请使用以下代码: ``` import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class ConnectMySQL { public static void main(String[] args) { Connection conn = null; try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "username", "password"); System.out.println("Connection successful!"); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { try { if (conn != null) { conn.close(); } } catch (SQLException e) { e.printStackTrace(); } } } } ``` 在代码中,使用Class.forName()方法加载MySQL JDBC驱动程序,然后创建一个连接对象。连接URL的格式为"jdbc:mysql://主机名:端口号/数据库名",其中主机名和端口号是MySQL服务器的地址和端口,数据库名是要连接的数据库名。用户名和密码是用于验证连接的凭据。 要在Eclipse中连接MySQL数据库,需要在Java Build Path中添加MySQL Connector/J驱动程序。可以通过以下步骤添加驱动程序: 1. 右键单击项目,选择Build Path->Configure Build Path。 2. 在Libraries选项卡中,单击Add External JARs…。 3. 选择下载的MySQL Connector/J驱动程序(jar文件)。 4. 单击OK,即可添加驱动程序到项目中。 连接MySQL数据库需要在程序中设置正确的UserName和Password才能正常运行,如果连接失败,请验证连接字符串、用户名和密码是否正确。 总之,MySQLJDBC、Eclipse之间的连接是必不可少的,它们配合使用可以实现高效的数据库开发。用户可以通过JDBC API在Java应用程序和MySQL数据库之间传输数据,而通过Eclipse的工具,可以更容易地管理和开发数据库应用程序。 ### 回答3: MySQLJDBC和Eclipse连接是实现Java与数据库相互交互的一种方式。下面从各方面进行介绍: 一、MySQL的连接 MySQL是一种开源的关系型数据库,常用于Web应用程序的后端处理数据。可以通过MySQL提供的Java API(Java Database Connectivity, JDBC)来连接MySQL数据库。需要准备MySQL数据库的JDBC驱动包,可以在MySQL官网上下载jdbc连接器。下载后将下载好的jar包放到项目的classpath中。 二、JDBC的连接 JDBC是Java的一个连接数据库的API,它提供了一套标准接口,方便开发人员和各种不同的关系型数据库进行交互。通过JDBC,Java程序可以访问各种类型的数据库,包括MySQLJDBC连接MySQL需要以下步骤: 1. 安装MySQL驱动程序 - 安装MySQL驱动程序有不同的方法。但是,常用的方法是将驱动程序jar包复制到您的Java项目中。 2. 导入引用——导入驱动程序jar包。 3. 从Java程序中连接MySQL数据库——通过调用JDBC API中的Java类和方法来实现。 4. 编写代码——使用Java中的连接对象(Connection),创建并执行SQL语句,将结果存储在一个ResultSet对象中,最后关闭连接。 三、Eclipse的连接 Eclipse是一个开放源代码的集成开发环境,可用于开发软件、编写代码,并与各种类型的数据库进行交互。 Eclipse的建议配置如下: 1. Eclipse 4.2.2或更高版本。 2.有一个数据库管理系统,如MySQL。 3. Eclipse SQL插件:Eclipse SQL插件是一种比较流行的插件,可以帮助您轻松地创建和管理数据库。可以在Eclipse市场中查找和下载。 4. 安装JDBC Driver:如果您使用的是MySQL,则需要下载mysql-connector-java.jar文件并将其添加到类路径中。 在Eclipse中连接MySQL: 1.打开Eclipse 2. 在程序中右键单击"工程",选择"Build Path> Configure Build Path"> Libraries"。 3. 单击"Add External JARS",然后浏览并选择MySQL驱动程序jar文件。 4. 单击"OK",将mysql驱动程序添加到类路径中。 5. 在Eclipse中,新建Java类,并创建MySQL连接。 以上是MySQLJDBC和Eclipse连接的一些简单介绍及实现方法,可以满足在实际开发中的需求,实现Java与关系型数据库的交互。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值