数据库和java连接语句_JDBC数据库连接JAVA和一些基本语句

连接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=''

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值