P1 数据库编程基础
1 使用Navicat设计一个测试表
为了接下来的测试,用Navicat先新建一个数据库,设计一个简单的表,由于MySQL中没有boolean,所以使用bit来表示,默认1为男,0为女,varchar是最大长度的意思:
表中记录:
NaviCat中检索:
接下来的就要从java中,连接到数据库,并对表中的内容进行增删查改
2 导入第三方jar包,ODBC与JDBC连接模式
java可以连接到不同的数据库,如Oracle,SQLServer,MySQL等,连接不同的数据库需要不同的第三方提供的工具包,这里使用专门为MySQL连接提供服务的jar包
其中有一个类Driver.class,这是用来启动和连接MySQL的数据库驱动类
连接分为两种模式:ODBC(桥接模式)和JDBC(直连模式)
桥接模式即数据库和操作系统先连接起来,操作系统提供统一的接口,Java与操作系统提供的接口相连
直连模式即绕过操作系统,直接和数据库连接
3 导入驱动,产生连接
package com.mec.test.database;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Test {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//导入一个MySQL驱动
Class.forName("com.mysql.jdbc.Driver");
//产生数据库连接,需要指明详细信息
//连接协议,连接主机,端口号,登录名,登录密码
Connection connection = DriverManager.getConnection(
"jdbc:mysql://127.0.0.1:3306/test_info",
"root",
"111");
}
}
4 用Java语句访问数据库,查询,插入
查询表中内容:
//导入一个MySQL驱动
Class.forName("com.mysql.jdbc.Driver");
//产生数据库连接,需要指明详细信息,连接协议,连接主机,端口号,登录名,登录密码
Connection connection = DriverManager.getConnection(
"jdbc:mysql://127.0.0.1:3306/test_info",
"root",
"111");
//准备SQL语句
String sql = "SELECT id, password, sex FROM user_info";
//SQL语句的准备
PreparedStatement statement = connection.prepareStatement(sql);
//将查询结果存储到结果集
ResultSet rs = statement.executeQuery();
//遍历结果集,取出列名对应的值
while(rs.next()) {
String id = rs.getString("id");
String password = rs.getString("password");
String sex = rs.getString("sex");
System.out.println(id + "," + password + "," + sex);
}
运行结果显示成功查询了表中的内容:
向表中插入内容:
//导入一个MySQL驱动
Class.forName("com.mysql.jdbc.Driver");
//产生数据库连接,需要指明详细信息,连接协议,连接主机,端口号,登录名,登录密码
Connection connection = DriverManager.getConnection(
"jdbc:mysql://127.0.0.1:3306/test_info",
"root",
"111");
//准备SQL语句
String sql = "INSERT INTO user_info(id, sex, password)"
+ " VALUE('202005','1','12354')";
//SQL语句的准备
PreparedStatement statement = connection.prepareStatement(sql);
//将查询结果存储到结果集
statement.executeUpdate();
查询结果显示正确地插入了一个记录
注意:在只查询时,需要使用executeQuery(),在进行表更改时使用executeUpdate()
5 连接步骤小结
1,导入驱动
Class.forName("com.mysql.jdbc.Driver");
2,产生连接
Connection connection =
DriverMangener.getConnection("jdbc:mysql://127.0.0.1:3306/表名",
"用户名","密码");
3,准备SQL语句
String sql = "SELECT....";
PreparedStatement statement = connection.prepareStatement(sql);
4,执行SQL语句,存储到结果集
ResultSet rs = statement.executeQuery();
5,遍历打印结果集
while(rs.next()) {
String id = rs.getString("id");
}
注意:
1,SQL语句并不是由Java来执行,而是直接传递给了数据库来执行
2,数据库大体上说有两种操作,一种是检索(SELECT),另一种是更改(INSERT,UPDATE,DELETE),对于检索的SQL语句执行时使用executeQuery(),对于更改的SQL语句执行时使用executeUpdate()